openSUSE Commits
Threads by month
- ----- 2025 -----
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2013
- 1 participants
- 1122 discussions
Hello community,
here is the log from the commit of package ksh for openSUSE:Factory checked in at 2013-11-29 21:25:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksh (Old)
and /work/SRC/openSUSE:Factory/.ksh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksh/ksh.changes 2013-11-29 16:22:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes 2013-11-29 21:25:21.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Nov 29 15:45:44 UTC 2013 - werner(a)suse.de
+
+- Add patch ksh93-pwd.dif to fix crash if cwd is gone (bnc#852160)
+
+-------------------------------------------------------------------
New:
----
ksh93-pwd.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.YStJ3l/_old 2013-11-29 21:25:23.000000000 +0100
+++ /var/tmp/diff_new_pack.YStJ3l/_new 2013-11-29 21:25:23.000000000 +0100
@@ -135,6 +135,8 @@
Patch36: ksh93-fs3d.dif
# PATCH-FIX-UPSTREAM Ouch ... use memmove instead of memcopy on overlapping areas
Patch37: ksh93-sfio.dif
+# PATCH-FIX-SUSE Do not crash wenn cwd is gone [bnc#852160]
+Patch38: ksh93-pwd.dif
Patch42: ksh-locale.patch
%description
@@ -226,6 +228,7 @@
%patch35
%patch36
%patch37
+%patch38
%build
#
++++++ ksh93-pwd.dif ++++++
--- src/cmd/ksh93/sh/subshell.c
+++ src/cmd/ksh93/sh/subshell.c 2013-11-29 14:46:37.966735617 +0000
@@ -549,7 +549,9 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
#ifdef _lib_fchdir
for(xp=sp->prev; xp; xp=xp->prev)
{
- if(xp->pwdfd>0 && strcmp(xp->pwd,shp->pwd)==0)
+ if (!shp->pwd)
+ break;
+ if(xp->pwdfd>0 && xp->pwd && strcmp(xp->pwd,shp->pwd)==0)
{
sp->pwdfd = xp->pwdfd;
break;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-network for openSUSE:Factory checked in at 2013-11-29 21:25:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-network (Old)
and /work/SRC/openSUSE:Factory/.yast2-network.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-network"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-network/yast2-network.changes 2013-11-28 19:09:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-network.new/yast2-network.changes 2013-11-29 21:25:11.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Nov 29 13:38:11 UTC 2013 - jreidinger(a)suse.com
+
+- fix DHCP capable cards client to not break installation
+- 3.1.10
+
+-------------------------------------------------------------------
Old:
----
yast2-network-3.1.9.tar.bz2
New:
----
yast2-network-3.1.10.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-network.spec ++++++
--- /var/tmp/diff_new_pack.JVHVxN/_old 2013-11-29 21:25:12.000000000 +0100
+++ /var/tmp/diff_new_pack.JVHVxN/_new 2013-11-29 21:25:12.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-network
-Version: 3.1.9
+Version: 3.1.10
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-network-3.1.9.tar.bz2 -> yast2-network-3.1.10.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.1.9/VERSION new/yast2-network-3.1.10/VERSION
--- old/yast2-network-3.1.9/VERSION 2013-11-28 16:28:28.000000000 +0100
+++ new/yast2-network-3.1.10/VERSION 2013-11-29 16:22:59.000000000 +0100
@@ -1 +1 @@
-3.1.9
+3.1.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.1.9/package/yast2-network.changes new/yast2-network-3.1.10/package/yast2-network.changes
--- old/yast2-network-3.1.9/package/yast2-network.changes 2013-11-28 16:28:28.000000000 +0100
+++ new/yast2-network-3.1.10/package/yast2-network.changes 2013-11-29 16:22:59.000000000 +0100
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Nov 29 13:38:11 UTC 2013 - jreidinger(a)suse.com
+
+- fix DHCP capable cards client to not break installation
+- 3.1.10
+
+-------------------------------------------------------------------
Thu Nov 28 15:07:16 UTC 2013 - jreidinger(a)suse.com
- fix distribution of client for detection DHCP capable cards
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.1.9/package/yast2-network.spec new/yast2-network-3.1.10/package/yast2-network.spec
--- old/yast2-network-3.1.9/package/yast2-network.spec 2013-11-28 16:28:28.000000000 +0100
+++ new/yast2-network-3.1.10/package/yast2-network.spec 2013-11-29 16:22:59.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-network
-Version: 3.1.9
+Version: 3.1.10
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-network-3.1.9/src/clients/inst_setup_dhcp.rb new/yast2-network-3.1.10/src/clients/inst_setup_dhcp.rb
--- old/yast2-network-3.1.9/src/clients/inst_setup_dhcp.rb 2013-11-28 16:28:28.000000000 +0100
+++ new/yast2-network-3.1.10/src/clients/inst_setup_dhcp.rb 2013-11-29 16:22:59.000000000 +0100
@@ -1,60 +1,63 @@
Yast.import "LanItems"
Yast.import "NetworkInterfaces"
-include Yast
+#enclose client into own namespace to prevent messing global namespace
+module SetupDHCPClient
+ include Yast
+
+ BASH_PATH = Path.new(".target.bash")
+
+ def self.network_cards
+ LanItems.Read
+ LanItems.GetNetcardNames
+ end
-BASH_PATH = Path.new(".target.bash")
+ def self.setup_dhcp card
+ index = LanItems.FindDeviceIndex(card)
-def network_cards
- LanItems.Read
- LanItems.GetNetcardNames
-end
+ if index == -1
+ raise "Failed to save configuration for device #{card}"
+ end
+
+ LanItems.current = index
+ LanItems.SetItem
+
+ #tricky part if ifcfg is not set
+ # yes, this code smell and show bad API of LanItems
+ if !LanItems.IsCurrentConfigured
+ NetworkInterfaces.Add
+ current = LanItems.Items[LanItems.current]
+ current["ifcfg"] = card
+ end
-def setup_dhcp card
- index = LanItems.FindDeviceIndex(card)
+ LanItems.bootproto = "dhcp"
+ LanItems.startmode = "auto"
- if index == -1
- raise "Failed to save configuration for device #{card}"
+ LanItems.Commit
end
- LanItems.current = index
- LanItems.SetItem
-
- #tricky part if ifcfg is not set
- # yes, this code smell and show bad API of LanItems
- if !LanItems.IsCurrentConfigured
- NetworkInterfaces.Add
- current = LanItems.Items[LanItems.current]
- current["ifcfg"] = card
+ def self.get_lease?(card)
+ SCR.Execute(BASH_PATH, "dhcpcd-test '#{card}'") == 0
end
- LanItems.bootproto = "dhcp"
- LanItems.startmode = "auto"
-
- LanItems.Commit
-end
-
-def get_lease?(card)
- SCR.Execute(BASH_PATH, "dhcpcd-test '#{card}'") == 0
-end
-
-def start_dhcp(card)
- SCR.Execute(BASH_PATH, "dhcpcd '#{card}'") == 0
-end
+ def self.start_dhcp(card)
+ SCR.Execute(BASH_PATH, "dhcpcd '#{card}'") == 0
+ end
-def write_configuration
- NetworkInterfaces.Write("")
-end
+ def self.write_configuration
+ NetworkInterfaces.Write("")
+ end
# TODO time consuming, some progress would be nice
-dhcp_cards = network_cards.select { |c| get_lease?(c) }
+ dhcp_cards = network_cards.select { |c| get_lease?(c) }
-dhcp_cards.each do |dcard|
- setup_dhcp(dcard) # make DHCP setup persistent
- start_dhcp(dcard)
-end
+ dhcp_cards.each do |dcard|
+ setup_dhcp(dcard) # make DHCP setup persistent
+ start_dhcp(dcard)
+ end
-write_configuration
+ write_configuration
+end
:next
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package tinyca2 for openSUSE:Factory checked in at 2013-11-29 21:25:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tinyca2 (Old)
and /work/SRC/openSUSE:Factory/.tinyca2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tinyca2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tinyca2/tinyca2.changes 2011-09-23 12:48:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tinyca2.new/tinyca2.changes 2013-11-29 21:25:02.000000000 +0100
@@ -1,0 +2,8 @@
+Fri Nov 29 14:35:37 UTC 2013 - lnussel(a)suse.de
+
+- fix tinyca not starting up (bnc#848907) and some deprecation warnings
+ 0001-fix-paranthesis-use.diff
+ 0002-fix-deprecation-warning.diff
+ 0003-fix-compatibility-with-openssl-1.0.1.diff
+
+-------------------------------------------------------------------
New:
----
0001-fix-paranthesis-use.diff
0002-fix-deprecation-warning.diff
0003-fix-compatibility-with-openssl-1.0.1.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tinyca2.spec ++++++
--- /var/tmp/diff_new_pack.MuSSRt/_old 2013-11-29 21:25:03.000000000 +0100
+++ /var/tmp/diff_new_pack.MuSSRt/_new 2013-11-29 21:25:03.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package tinyca2
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 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
@@ -15,8 +15,6 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: tinyca2
BuildRequires: update-desktop-files
@@ -24,15 +22,20 @@
%define libdir %{_datadir}/TinyCA2/lib
%define templatesdir %{_datadir}/TinyCA2/templates
%define localedir %{_datadir}/locale/
-Group: Productivity/Networking/Security
-License: GPL-2.0+
-Requires: perl perl-Gtk2 perl-MIME-Base64
+Requires: perl
+Requires: perl-Gtk2
+Requires: perl-MIME-Base64
Version: 0.7.5
-Release: 57
+Release: 0
Source0: %{name}-%{version}.tar.bz2
Patch0: 0001-fix-combobox-strings-for-extended-key-usage.diff
Patch1: 0002-add-support-for-Microsoft-extendedKeyUsage-attributes.diff
+Patch2: 0001-fix-paranthesis-use.diff
+Patch3: 0002-fix-deprecation-warning.diff
+Patch4: 0003-fix-compatibility-with-openssl-1.0.1.diff
Summary: A Graphical Tool for Managing a Certification Authority
+License: GPL-2.0+
+Group: Productivity/Networking/Security
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: tinyca:/usr/bin/tinyca
@@ -64,6 +67,9 @@
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
%build
# Configure pristine source
++++++ 0001-fix-paranthesis-use.diff ++++++
>From a4d57b429282b4adcab82666994a5dd75e8709dc Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel(a)suse.de>
Date: Fri, 29 Nov 2013 15:32:02 +0100
Subject: [PATCH 1/3] fix paranthesis use
patch from debian
---
lib/GUI.pm | 14 +++++++-------
lib/GUI/X509_browser.pm | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/GUI.pm b/lib/GUI.pm
index 3ed2eec..67a5c2d 100644
--- a/lib/GUI.pm
+++ b/lib/GUI.pm
@@ -978,7 +978,7 @@ sub create_detail_tree {
$piter = $store->append($root);
$store->set($piter, 0 => $t);
- for my $l qw(CN EMAIL O OU C ST L) {
+ for my $l (qw(CN EMAIL O OU C ST L)) {
if(defined($parsed->{$l})) {
if($l eq "OU") {
foreach my $ou (@{$parsed->{'OU'}}) {
@@ -1003,7 +1003,7 @@ sub create_detail_tree {
$piter = $store->append($root);
$store->set($piter, 0 => $t);
- for my $l qw(CN EMAIL O OU C ST L) {
+ for my $l (qw(CN EMAIL O OU C ST L)) {
if(defined($parsed->{'ISSUERDN'}->{$l})) {
if($l eq "OU") {
foreach my $ou (@{$parsed->{'ISSUERDN'}->{'OU'}}) {
@@ -1029,7 +1029,7 @@ sub create_detail_tree {
$piter = $store->append($root);
$store->set($piter, 0 => $t);
- for my $l qw(STATUS NOTBEFORE NOTAFTER) {
+ for my $l (qw(STATUS NOTBEFORE NOTAFTER)) {
if(defined($parsed->{$l})) {
$citer = $store->append($piter);
$store->set($citer,
@@ -1045,7 +1045,7 @@ sub create_detail_tree {
$store->set($piter, 0 => $t);
- for my $l qw(STATUS SERIAL KEYSIZE PK_ALGORITHM SIG_ALGORITHM TYPE) {
+ for my $l (qw(STATUS SERIAL KEYSIZE PK_ALGORITHM SIG_ALGORITHM TYPE)) {
if(defined($parsed->{$l})) {
$citer = $store->append($piter);
$store->set($citer,
@@ -1060,7 +1060,7 @@ sub create_detail_tree {
$piter = $store->append($root);
$store->set($piter, 0 => $t);
- for my $l qw(FINGERPRINTMD5 FINGERPRINTSHA1) {
+ for my $l (qw(FINGERPRINTMD5 FINGERPRINTSHA1)) {
if(defined($parsed->{$l})) {
$citer = $store->append($piter);
$store->set($citer,
@@ -1249,7 +1249,7 @@ sub show_req_dialog {
# table for request data
my $cc=0;
my $ous = 1;
- if(defined($opts->{'OU'})) {
+ if(defined($opts->{'OU'}) and defined @{$opts->{'OU'}}) {
$ous = @{$opts->{'OU'}} - 1;
}
$reqtable = Gtk2::Table->new(1, 13 + $ous, 0);
@@ -1297,7 +1297,7 @@ sub show_req_dialog {
_("Organization Name (eg. company):"),
\$opts->{'O'}, $reqtable, 10, 1);
- if(defined($opts->{'OU'})) {
+ if(defined($opts->{'OU'}) and defined @{$opts->{'OU'}}) {
foreach my $ou (@{$opts->{'OU'}}) {
$entry = GUI::HELPERS::entry_to_table(
_("Organizational Unit Name (eg. section):"),
diff --git a/lib/GUI/X509_browser.pm b/lib/GUI/X509_browser.pm
index 4fb6cec..8cb1a71 100644
--- a/lib/GUI/X509_browser.pm
+++ b/lib/GUI/X509_browser.pm
@@ -624,7 +624,7 @@ sub selection_cadir {
$dir = $self->{'actdir'};
# cut off the last directory name to provide the ca-directory
- $dir =~ s/\/certs|\/req|\/keys$//;
+ $dir =~ s/(\/certs|\/req|\/keys)$//;
return($dir);
}
--
1.8.1.4
++++++ 0002-fix-deprecation-warning.diff ++++++
>From aaebad85d307eeaf38c7f497efee0b278f0fc317 Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel(a)suse.de>
Date: Fri, 29 Nov 2013 15:32:15 +0100
Subject: [PATCH 2/3] fix deprecation warning
patch from debian
---
lib/GUI.pm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/GUI.pm b/lib/GUI.pm
index 67a5c2d..d9c4064 100644
--- a/lib/GUI.pm
+++ b/lib/GUI.pm
@@ -2521,7 +2521,7 @@ sub about {
my ($aboutdialog, $href, $label);
$aboutdialog = Gtk2::AboutDialog->new();
- $aboutdialog->set_name("TinyCA2");
+ $aboutdialog->set_program_name("TinyCA2");
$aboutdialog->set_version($main->{'version'});
$aboutdialog->set_copyright("2002-2006 Stephan Martin");
$aboutdialog->set_license("GNU Public License (GPL)");
@@ -2534,6 +2534,8 @@ sub about {
_("French: Thibault Le Meur <Thibault.Lemeur\(a)supelec.fr>"));
$aboutdialog->show_all();
+ $aboutdialog->run;
+ $aboutdialog->destroy;
return;
}
--
1.8.1.4
++++++ 0003-fix-compatibility-with-openssl-1.0.1.diff ++++++
>From 85e927728ea21cd9ae30530efe606ba3d95b15a5 Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel(a)suse.de>
Date: Fri, 29 Nov 2013 15:32:32 +0100
Subject: [PATCH 3/3] fix compatibility with openssl 1.0.1
patch from debian
---
lib/OpenSSL.pm | 101 +++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 81 insertions(+), 20 deletions(-)
diff --git a/lib/OpenSSL.pm b/lib/OpenSSL.pm
index 3422bcf..0645bda 100644
--- a/lib/OpenSSL.pm
+++ b/lib/OpenSSL.pm
@@ -22,6 +22,7 @@ package OpenSSL;
use POSIX;
use IPC::Open3;
+use IO::Select;
use Time::Local;
sub new {
@@ -41,7 +42,7 @@ sub new {
close(TEST);
# set version (format: e.g. 0.9.7 or 0.9.7a)
- if($v =~ /\b(0\.9\.[678][a-z]?)\b/) {
+ if($v =~ /\b(0\.9\.[6-9][a-z]?)\b/ || $v =~ /\b(1\.0\.[01][a-z]?)\b/) {
$self->{'version'} = $1;
}
@@ -817,7 +818,7 @@ sub convdata {
my $self = shift;
my $opts = { @_ };
- my ($tmp, $ext, $ret, $file, $pid, $cmd);
+ my ($tmp, $ext, $ret, $file, $pid, $cmd, $cmdout, $cmderr);
$file = HELPERS::mktmp($self->{'tmp'}."/data");
$cmd = "$self->{'bin'} $opts->{'cmd'}";
@@ -830,16 +831,7 @@ sub convdata {
$cmd .= " -outform $opts->{'outform'}";
}
- my($rdfh, $wtfh);
- $ext = "$cmd\n\n";
- $pid = open3($wtfh, $rdfh, $rdfh, $cmd);
- print $wtfh "$opts->{'data'}\n";
- while(<$rdfh>){
- $ext .= $_;
- # print STDERR "DEBUG: cmd ret: $_";
- };
- waitpid($pid, 0);
- $ret = $?>>8;
+ ($ret, $tmp, $ext) = _run_with_fixed_input($cmd, $opts->{'data'});
if($self->{'broken'}) {
if(($ret != 0 && $opts->{'cmd'} ne 'crl') ||
@@ -859,14 +851,15 @@ sub convdata {
}
}
- open(IN, $file) || do {
- my $t = sprintf(_("Can't open file %s: %s"), $file, $!);
- GUI::HELPERS::print_warning($t);
- return;
- };
- $tmp .= $_ while(<IN>);
- close(IN);
-
+ if (-s $file) { # If the file is empty, the payload is in $tmp (via STDOUT of the called process).
+ open(IN, $file) || do {
+ my $t = sprintf(_("Can't open file %s: %s"), $file, $!);
+ GUI::HELPERS::print_warning($t);
+ return;
+ };
+ $tmp .= $_ while(<IN>);
+ close(IN);
+ }
unlink($file);
return($ret, $tmp, $ext);
@@ -1076,4 +1069,72 @@ sub _get_index {
}
}
+
+=over
+
+=item _run_with_fixed_input($cmd, $input)
+
+This function runs C<$cmd> and writes the C<$input> to STDIN of the
+new process (all at once).
+
+While the command runs, all of its output to STDOUT and STDERR is
+collected.
+
+After the command terminates (closes both STDOUT and STDIN) the
+function returns the command's return value as well as everything it
+wrote to its STDOUT and STDERR in a list.
+
+=back
+
+=cut
+
+sub _run_with_fixed_input {
+ my $cmd = shift;
+ my $input = shift;
+
+ my ($wtfh, $rdfh, $erfh, $pid, $sel, $ret, $stdout, $stderr);
+ $erfh = Symbol::gensym; # Must not be false, otherwise it is lumped together with rdfh
+
+ # Run the command
+ $pid = open3($wtfh, $rdfh, $erfh, $cmd);
+ print $wtfh $input, "\n";
+
+ $stdout = '';
+ $stderr = '';
+ $sel = new IO::Select($rdfh, $erfh);
+ while (my @fhs = $sel->can_read()) {
+ foreach my $fh (@fhs) {
+ if ($fh == $rdfh) { # STDOUT
+ my $bytes_read = sysread($fh, my $buf='', 1024);
+ if ($bytes_read == -1) {
+ warn("Error reading from child's STDOUT: $!\n");
+ $sel->remove($fh);
+ } elsif ($bytes_read == 0) {
+ # print("Child's STDOUT closed.\n");
+ $sel->remove($fh);
+ } else {
+ $stdout .= $buf;
+ }
+ }
+ elsif ($fh == $erfh) { # STDERR
+ my $bytes_read = sysread($fh, my $buf='', 1024);
+ if ($bytes_read == -1) {
+ warn("Error reading from child's STDERR: $!\n");
+ $sel->remove($fh);
+ } elsif ($bytes_read == 0) {
+ # print("Child's STDERR closed.\n");
+ $sel->remove($fh);
+ } else {
+ $stderr .= $buf;
+ }
+ }
+ }
+ }
+
+ waitpid($pid, 0);
+ $ret = $?>>8;
+
+ return ($ret, $stdout, $stderr)
+ }
+
1
--
1.8.1.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package moc for openSUSE:Factory checked in at 2013-11-29 21:24:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/moc (Old)
and /work/SRC/openSUSE:Factory/.moc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "moc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/moc/moc.changes 2012-05-29 10:34:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.moc.new/moc.changes 2013-11-29 21:24:49.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Nov 29 14:30:30 UTC 2013 - reddwarf(a)opensuse.org
+
+- Change the pkgconfig(libavformat) BuildRequires for libffmpeg1-devel
+ Unfortunatelly the pkg-config files don't clarify the API version.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ moc.spec ++++++
--- /var/tmp/diff_new_pack.vE7JRb/_old 2013-11-29 21:24:49.000000000 +0100
+++ /var/tmp/diff_new_pack.vE7JRb/_new 2013-11-29 21:24:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package moc
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 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
@@ -42,7 +42,7 @@
BuildRequires: pkgconfig(taglib_c)
BuildRequires: pkgconfig(vorbisfile)
%if %{with ffmpeg}
-BuildRequires: pkgconfig(libavformat)
+BuildRequires: libffmpeg1-devel
%endif
%if %{with mad}
BuildRequires: librcc-devel
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package kiwi for openSUSE:Factory checked in at 2013-11-29 21:24:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kiwi (Old)
and /work/SRC/openSUSE:Factory/.kiwi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kiwi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kiwi/kiwi.changes 2013-11-15 16:56:13.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.changes 2013-11-29 21:24:39.000000000 +0100
@@ -1,0 +2,138 @@
+Fri Nov 29 14:38:42 CET 2013 - ms(a)suse.de
+
+- v5.06.7 released
+
+-------------------------------------------------------------------
+Wed Nov 27 15:49:12 CET 2013 - ms(a)suse.de
+
+- eliminate the use of which in boot code
+ * which is an extra tool, it was packages, splitted, dropped
+ and is handled differently in the pool of distributions.
+ Instead type -p provided as shell builtin is used
+
+-------------------------------------------------------------------
+Sun Nov 24 05:48:09 CET 2013 - magist3r(a)suse.de
+
+- Added xz compression support for initrd
+ * by default gzip compression is in use but you can
+ switch on xz compression with the following entry
+ in the .kiwirc file
+
+ our $IrdZipper = "xz"
+
+-------------------------------------------------------------------
+Fri Nov 22 15:25:40 CET 2013 - ms(a)suse.de
+
+- fixed check for empty destination in cloneImage function
+
+-------------------------------------------------------------------
+Fri Nov 22 11:25:35 CET 2013 - ms(a)suse.de
+
+- fixed OVA creation
+ * when using ovftool extract the created vmdk image and
+ manifest files from the created OVA. This is required to
+ produce streamOptimized vmdk images which can't be
+ generated with qemu
+ * fixed Invalid value 'MB' for element 'VirtualQuantityUnits'
+ for vSphere 5 in the .ovf file
+ * fixed allocated units set in the .ovf, vSphere 5 requires
+ a value here
+
+-------------------------------------------------------------------
+Thu Nov 21 16:08:04 CET 2013 - ms(a)suse.de
+
+- print a name sorted list when calling 'kiwi --list'
+
+-------------------------------------------------------------------
+Thu Nov 21 16:01:25 CET 2013 - ms(a)suse.de
+
+- support for SLE 10 is now deprecated
+
+-------------------------------------------------------------------
+Thu Nov 21 15:57:12 CET 2013 - ms(a)suse.de
+
+- added templates and boot-descriptions for SLE12
+
+-------------------------------------------------------------------
+Thu Nov 21 15:36:33 CET 2013 - ms(a)suse.de
+
+- removed obsolete fbiterm font files from boot descriptions
+ * the bug in fbiterm which provided broken fonts is fixed
+
+-------------------------------------------------------------------
+Thu Nov 21 15:13:34 CET 2013 - ms(a)suse.de
+
+- support for openSUSE 12.1 is now deprecated
+
+-------------------------------------------------------------------
+Thu Nov 21 15:08:51 CET 2013 - ms(a)suse.de
+
+- added templates and boot-descriptions for openSUSE 13.2
+
+-------------------------------------------------------------------
+Thu Nov 21 15:05:09 CET 2013 - thardeck(a)suse.de
+
+- improvements to KIWIAnalyse:
+ + added functions to create a diff of changed configuration files
+ all config files are checked against the rpm database and if they
+ have changed the original packages are downloaded and a diff of
+ them is created. The original config files are stored in the cache
+ to prevent another download of the packages at next invocation.
+ The result is stored in the file 'changed_config.diff'
+
+-------------------------------------------------------------------
+Thu Nov 21 14:56:00 CET 2013 - ms(a)suse.de
+
+- prevent the use of which in the boot code
+ * use type -p instead and provide a function called lookup()
+
+-------------------------------------------------------------------
+Thu Nov 21 12:24:45 CET 2013 - ms(a)suse.de
+
+- fixed setup of /boot/efi directory
+ * instead of checking for boot/efi check for the label EFI
+ in the kiwi_JumpPart partition
+ * even without a seperate boot partition there might be a
+ an EFI partition which should be added into fstab
+
+-------------------------------------------------------------------
+Thu Nov 21 11:15:25 CET 2013 - ms(a)suse.de
+
+- fixed KIWIIsoLinux genisoimage paramter list
+ * if createLegacySortFile does not return a sort file the
+ option -sort should also not be part of the commandline
+ call
+
+-------------------------------------------------------------------
+Thu Nov 21 09:58:29 CET 2013 - ms(a)suse.de
+
+- DB: rebuild documentation
+
+-------------------------------------------------------------------
+Wed Nov 20 07:35:44 CET 2013 - rjschwei(a)suse.de
+
+- add missing " in <user> element doc
+- fix attribute name in <user> element description
+
+-------------------------------------------------------------------
+Mon Nov 18 22:19:07 CET 2013 - cshorler(a)suse.de
+
+- add default gfxmode for GRUB2 if no vga mode was set
+
+-------------------------------------------------------------------
+Mon Nov 18 11:47:42 CET 2013 - ms(a)suse.de
+
+- fixed gfxmode/gfxpayload setup in kiwi grub2 setup
+ * it's possible to set vga="0x<kernel-vesa-mode" in the kiwi
+ XML description. If grub2 was used as bootloader the information
+ was incorrectly transfered into gfxmode and gfxpayload values
+ in the grub.cfg. In addition the values were not handed over
+ to the initrd and the file /etc/default/grub. All this is
+ fixed now
+
+-------------------------------------------------------------------
+Mon Nov 18 10:32:23 CET 2013 - ms(a)suse.de
+
+- fixed company name in analyse report page
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kiwi.spec ++++++
--- /var/tmp/diff_new_pack.uXK9cX/_old 2013-11-29 21:24:42.000000000 +0100
+++ /var/tmp/diff_new_pack.uXK9cX/_new 2013-11-29 21:24:42.000000000 +0100
@@ -26,7 +26,7 @@
Summary: openSUSE - KIWI Image System
License: GPL-2.0
Group: System/Management
-Version: 5.06.6
+Version: 5.06.7
Release: 0
# requirements to build packages
BuildRequires: diffutils
@@ -604,22 +604,24 @@
%doc %{_mandir}/man1/KIWI::config.sh.1.gz
%doc %{_mandir}/man1/KIWI::kiwirc.1.gz
%ifarch %ix86 x86_64
-%exclude %{_datadir}/kiwi/image/suse-12.1-JeOS
%exclude %{_datadir}/kiwi/image/suse-12.2-JeOS
%exclude %{_datadir}/kiwi/image/suse-12.3-JeOS
%exclude %{_datadir}/kiwi/image/suse-13.1-JeOS
-%exclude %{_datadir}/kiwi/image/suse-SLE10-JeOS
+%exclude %{_datadir}/kiwi/image/suse-13.2-JeOS
%exclude %{_datadir}/kiwi/image/suse-SLE11-JeOS
+%exclude %{_datadir}/kiwi/image/suse-SLE12-JeOS
%exclude %{_datadir}/kiwi/image/rhel-05.4-JeOS
%exclude %{_datadir}/kiwi/image/rhel-06.0-JeOS
%endif
%ifarch s390 s390x
%exclude %{_datadir}/kiwi/image/suse-SLE11-JeOS
+%exclude %{_datadir}/kiwi/image/suse-SLE12-JeOS
%endif
%ifarch %arm aarch64
%exclude %{_datadir}/kiwi/image/suse-12.2-JeOS
%exclude %{_datadir}/kiwi/image/suse-12.3-JeOS
%exclude %{_datadir}/kiwi/image/suse-13.1-JeOS
+%exclude %{_datadir}/kiwi/image/suse-13.2-JeOS
%endif
%{_datadir}/kiwi/.revision
%{_datadir}/kiwi/modules
@@ -753,25 +755,28 @@
%files -n kiwi-templates
%defattr(-, root, root)
%ifarch %ix86 x86_64
-%{_datadir}/kiwi/image/suse-12.1-JeOS
%{_datadir}/kiwi/image/suse-12.2-JeOS
%{_datadir}/kiwi/image/suse-12.3-JeOS
%{_datadir}/kiwi/image/suse-13.1-JeOS
-%{_datadir}/kiwi/image/suse-SLE10-JeOS
+%{_datadir}/kiwi/image/suse-13.2-JeOS
%{_datadir}/kiwi/image/suse-SLE11-JeOS
+%{_datadir}/kiwi/image/suse-SLE12-JeOS
%{_datadir}/kiwi/image/rhel-05.4-JeOS
%{_datadir}/kiwi/image/rhel-06.0-JeOS
%endif
%ifarch s390 s390x
%{_datadir}/kiwi/image/suse-SLE11-JeOS
+%{_datadir}/kiwi/image/suse-SLE12-JeOS
%endif
%ifarch %arm aarch64
%{_datadir}/kiwi/image/suse-12.2-JeOS
%{_datadir}/kiwi/image/suse-12.3-JeOS
%{_datadir}/kiwi/image/suse-13.1-JeOS
+%{_datadir}/kiwi/image/suse-13.2-JeOS
%endif
%ifarch ppc ppc64
%{_datadir}/kiwi/image/suse-SLE11-JeOS
+%{_datadir}/kiwi/image/suse-SLE12-JeOS
%endif
%endif
++++++ kiwi-docu.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/kiwi/kiwi-docu.tar.bz2 /work/SRC/openSUSE:Factory/.kiwi.new/kiwi-docu.tar.bz2 differ: char 11, line 1
++++++ kiwi-repo.tar.bz2 ++++++
++++++ kiwi.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/kiwi/kiwi.tar.bz2 /work/SRC/openSUSE:Factory/.kiwi.new/kiwi.tar.bz2 differ: char 11, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package pciutils-ids for openSUSE:Factory checked in at 2013-11-29 21:24:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pciutils-ids (Old)
and /work/SRC/openSUSE:Factory/.pciutils-ids.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pciutils-ids"
Changes:
--------
--- /work/SRC/openSUSE:Factory/pciutils-ids/pciutils-ids.changes 2013-10-18 11:41:13.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pciutils-ids.new/pciutils-ids.changes 2013-11-29 21:24:15.000000000 +0100
@@ -1,0 +2,16 @@
+Tue Nov 26 17:41:47 CET 2013 - jdelvare(a)suse.de
+
+- merge-pciids.pl: Preserve all comments and blank lines. The
+ original code considered blank lines as hard seperators and this
+ resulted in some comments being lost or put in the wrong place.
+- merge-pciids.pl: Better handling of input files. The original
+ code was trying to be smart and generic but as a result it was
+ unable to deal with slight pci.ids format variations, in
+ particular the number of spaces before the device or class name.
+ Intel network drivers do have such variations, which lspci itself
+ handles just fine.
+- merge-pciids.pl: Handle arbitrary case in vendor, device and
+ class ID. Lspci supports upper-case so merge-pciids.pl should
+ handle that properly.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ merge-pciids.pl ++++++
--- /var/tmp/diff_new_pack.7teoPJ/_old 2013-11-29 21:24:16.000000000 +0100
+++ /var/tmp/diff_new_pack.7teoPJ/_new 2013-11-29 21:24:16.000000000 +0100
@@ -6,6 +6,7 @@
# solution of the same problem.
#
# (c) 2007 Martin Mares <mj(a)ucw.cz>, GPLv2
+# (c) 2013 Jean Delvare <jdelvare(a)suse.de>
use strict;
@@ -16,28 +17,39 @@
open F, $fn or die "Unable to open $file: $!";
my @id = ();
my $comm = "";
+ my $class = 0;
sub err($) {
print STDERR "Error in $file, line $.: @_\n";
exit 1;
}
while (<F>) {
- if (/^(#.*)/) {
+ if (/^(#.*|\s*$)/) {
$comm .= $_;
next;
}
chomp;
- if (my ($indent, $id, $ignored, $name) = /^(\t*)(([0-9a-fA-Z]+ ?)*)(( |\t|$)\s*(.*))$/) {
+ if (/^(\t|C\s+|)([0-9a-fA-F]+)\s+(.*)$/ ||
+ (!$class && /^(\t\t)([0-9a-fA-F]+\s+[0-9a-fA-F]+)\s+(.*)$/) ||
+ ($class && /^(\t\t)([0-9a-fA-F]+)\s+(.*)$/)) {
+ my $indent = $1;
+ my $id = lc($2);
+ my $name = $3;
+ if ($indent =~ /^C\s+$/) {
+ $indent = "";
+ $id = "C $id";
+ }
my $depth = length $indent;
$depth <= @id or err "Mismatched indentation";
@id = (@id[0..$depth-1], $id);
+ $class = ($id =~ /^C\s/) if !$depth; # Remember if we are in a vendor or a class section
my $i = join(":", @id);
- my $j = ($i =~ /[A-Z] /) ? "~$i" : $i; # We want to sort special entries last
+ my $j = $class ? "~$i" : $i; # We want to sort special entries last
if (exists $ids{$j} && $ids{$j} ne $name) {
print STDERR "Warning: ID $i has two different definitions, using the one from $file\n";
}
$ids{$j} = $name;
$comments{$j} = $comm if $comm;
- } elsif (!/^$/) {
+ } else {
err "Parse error";
}
$comm = "";
@@ -53,5 +65,5 @@
$j =~ s/.*://g;
$j =~ s/^~//;
print $comments{$id} if $comments{$id};
- print "$i$j$ids{$id}\n";
+ print "$i$j $ids{$id}\n";
}
++++++ pci.ids.bz2 ++++++
++++ 816 lines (skipped)
++++ between pci.ids.bz2
++++ and /work/SRC/openSUSE:Factory/.pciutils-ids.new/pci.ids.bz2
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package util-linux for openSUSE:Factory checked in at 2013-11-29 16:26:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/util-linux (Old)
and /work/SRC/openSUSE:Factory/.util-linux.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "util-linux"
Changes:
--------
--- /work/SRC/openSUSE:Factory/util-linux/util-linux.changes 2013-11-05 13:53:53.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.util-linux.new/util-linux.changes 2013-11-29 16:26:19.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Nov 29 13:46:21 UTC 2013 - werner(a)suse.de
+
+- Add patch
+ tty3270-on-serial-line-of-s390.patch
+ to better support the first and second serial line on s390/x
+
+-------------------------------------------------------------------
New:
----
tty3270-on-serial-line-of-s390.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.gMXXEI/_old 2013-11-29 16:26:20.000000000 +0100
+++ /var/tmp/diff_new_pack.gMXXEI/_new 2013-11-29 16:26:20.000000000 +0100
@@ -110,6 +110,8 @@
Patch12: util-linux-2.23.1-noenc-suse.diff
# PATCH-FIX-UPSTREAM blkdiscard-BLKSSZGET-fills-in-an-int.patch tytso(a)mit.edu
Patch13: blkdiscard-BLKSSZGET-fills-in-an-int.patch
+# PATCH-FIX-SUSE -- better support of S390 in agetty
+Patch14: tty3270-on-serial-line-of-s390.patch
# hack for boot.localfs
Patch20: util-linux-HACK-boot.localfs.diff
@@ -232,6 +234,7 @@
%patch8 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p0
#
%patch20 -p1
#
++++++ tty3270-on-serial-line-of-s390.patch ++++++
Support the special terminal on first serial line on a S/390(x) which
is due legacy reasons a block terminal of type 3270 or higher. Whereas
the second serial line on a S/390(x) is a real character terminal which
is compatible with VT220.
---
agetty.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
--- term-utils/agetty.c
+++ term-utils/agetty.c 2013-11-29 11:57:11.000000000 +0000
@@ -49,6 +49,10 @@
# ifndef DEFAULT_VCTERM
# define DEFAULT_VCTERM "linux"
# endif
+# if defined (__s390__) || defined (__s390x__)
+# define DEFAULT_TTYS0 "ibm327x"
+# define DEFAULT_TTYS1 "vt220"
+# endif
# ifndef DEFAULT_STERM
# define DEFAULT_STERM "vt102"
# endif
@@ -983,6 +987,20 @@ static void open_tty(char *tty, struct t
if (tcgetattr(STDIN_FILENO, tp) < 0)
log_err(_("%s: failed to get terminal attributes: %m"), tty);
+#if defined (__s390__) || defined (__s390x__)
+ if (!op->term) {
+ /*
+ * Special terminal on first serial line on a S/390(x) which
+ * is due legacy reasons a block terminal of type 3270 or
+ * higher. Whereas the second serial line on a S/390(x) is
+ * a real character terminal which is compatible with VT220.
+ */
+ if (strcmp(op->tty, "ttyS0") == 0)
+ op->term = DEFAULT_TTYS0;
+ else if (strcmp(op->tty, "ttyS1") == 0)
+ op->term = DEFAULT_TTYS1;
+ }
+#endif
/*
* Detect if this is a virtual console or serial/modem line.
* In case of a virtual console the ioctl TIOCMGET fails and
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package rdesktop for openSUSE:Factory checked in at 2013-11-29 16:25:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rdesktop (Old)
and /work/SRC/openSUSE:Factory/.rdesktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rdesktop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rdesktop/rdesktop.changes 2013-08-23 11:05:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rdesktop.new/rdesktop.changes 2013-11-29 16:25:43.000000000 +0100
@@ -1,0 +2,16 @@
+Wed Nov 27 12:02:29 UTC 2013 - chris(a)computersalat.de
+
+- update to 1.8.1
+ * Fix a typo in configure.ac
+ * Fix a bug which made rdesktop steal CPU cycles.
+ * Fix issue with reconnect, make use of deactivate variable
+ * Added 4 new disconnect reasons with exit codes
+ * Fix issues of window handling in SeamlessRDP parts of rdesktop
+ * Fix a backward compability with OpenSSL < 0.9.9
+ * Fix a bug when code needs a x window available but there are none.
+ * Fix a sigsegv zeroing memory
+ * Fix a 64bit portability issue
+- remove obsolete patches
+ * tcp_return, 64bit_portability_issue
+
+-------------------------------------------------------------------
Old:
----
rdesktop-1.8.0.tar.gz
rdesktop-64bit_portability_issue.patch
rdesktop-tcp_return.patch
New:
----
rdesktop-1.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rdesktop.spec ++++++
--- /var/tmp/diff_new_pack.AVwUeM/_old 2013-11-29 16:25:44.000000000 +0100
+++ /var/tmp/diff_new_pack.AVwUeM/_new 2013-11-29 16:25:44.000000000 +0100
@@ -21,16 +21,12 @@
License: GPL-3.0+
Group: Productivity/Networking/Other
#Group: Productivity/Networking/Remote Desktop
-Version: 1.8.0
+Version: 1.8.1
Release: 0
Url: http://www.rdesktop.org/
Source: %{name}-%{version}.tar.gz
## FIX-openSUSE: remove "Don't depend on pkg-config"
Patch0: rdesktop-fix_pkgconfig_check.patch
-### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1728/
-Patch1: rdesktop-tcp_return.patch
-### FIX UPSTREAM: http://sourceforge.net/p/rdesktop/code/1729/
-Patch2: rdesktop-64bit_portability_issue.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: alsa-devel
BuildRequires: automake
@@ -50,8 +46,6 @@
%prep
%setup
%patch0
-%patch1
-%patch2
## rpmlint
# incorrect-fsf-address /usr/share/rdesktop/keymaps/convert-map
perl -p -i -e 's|^# Foundation.*|# Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA|' keymaps/convert-map
++++++ rdesktop-1.8.0.tar.gz -> rdesktop-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/configure new/rdesktop-1.8.1/configure
--- old/rdesktop-1.8.0/configure 2013-08-09 08:12:26.000000000 +0200
+++ new/rdesktop-1.8.1/configure 2013-11-18 09:10:00.000000000 +0100
@@ -1,11 +1,9 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for rdesktop 1.8.0.
+# Generated by GNU Autoconf 2.69 for rdesktop 1.8.1.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -134,6 +132,31 @@
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -167,7 +190,8 @@
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -212,21 +236,25 @@
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -328,6 +356,14 @@
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -449,6 +485,10 @@
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -483,16 +523,16 @@
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -504,28 +544,8 @@
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -557,8 +577,8 @@
# Identity of this package.
PACKAGE_NAME='rdesktop'
PACKAGE_TARNAME='rdesktop'
-PACKAGE_VERSION='1.8.0'
-PACKAGE_STRING='rdesktop 1.8.0'
+PACKAGE_VERSION='1.8.1'
+PACKAGE_STRING='rdesktop 1.8.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1197,8 +1217,6 @@
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1284,7 +1302,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 rdesktop 1.8.0 to adapt to many kinds of systems.
+\`configure' configures rdesktop 1.8.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1353,7 +1371,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rdesktop 1.8.0:";;
+ short | recursive ) echo "Configuration of rdesktop 1.8.1:";;
esac
cat <<\_ACEOF
@@ -1491,10 +1509,10 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rdesktop configure 1.8.0
-generated by GNU Autoconf 2.68
+rdesktop configure 1.8.1
+generated by GNU Autoconf 2.69
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1680,7 +1698,7 @@
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -2013,8 +2031,8 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by rdesktop $as_me 1.8.0, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+It was created by rdesktop $as_me 1.8.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2487,7 +2505,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2527,7 +2545,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2580,7 +2598,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2621,7 +2639,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -2679,7 +2697,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2723,7 +2741,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3169,8 +3187,7 @@
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3296,7 +3313,7 @@
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -3513,7 +3530,7 @@
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -3579,7 +3596,7 @@
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -4696,7 +4713,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4739,7 +4756,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4956,7 +4973,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4996,7 +5013,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5186,6 +5203,7 @@
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -5206,7 +5224,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5249,7 +5267,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5317,6 +5335,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GSSGLUE_CFLAGS=`$PKG_CONFIG --cflags "libgssglue" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5333,6 +5352,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GSSGLUE_LIBS=`$PKG_CONFIG --libs "libgssglue" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5352,9 +5372,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libgssglue" 2>&1`
+ GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libgssglue" 2>&1`
else
- GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgssglue" 2>&1`
+ GSSGLUE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libgssglue" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GSSGLUE_PKG_ERRORS" >&5
@@ -5391,7 +5411,7 @@
else
echo
- echo "CredSPP support requires libggsglue, install the dependency"
+ echo "CredSPP support requires libgssglue, install the dependency"
echo "or disable the feature using --disable-credssp."
echo
exit 1
@@ -5417,6 +5437,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XRANDR_CFLAGS=`$PKG_CONFIG --cflags "xrandr" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5433,6 +5454,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XRANDR_LIBS=`$PKG_CONFIG --libs "xrandr" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5452,9 +5474,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xrandr" 2>&1`
+ XRANDR_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xrandr" 2>&1`
else
- XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors "xrandr" 2>&1`
+ XRANDR_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xrandr" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$XRANDR_PKG_ERRORS" >&5
@@ -5516,6 +5538,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCSCLITE_CFLAGS=`$PKG_CONFIG --cflags "libpcsclite" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5532,6 +5555,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCSCLITE_LIBS=`$PKG_CONFIG --libs "libpcsclite" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5551,9 +5575,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpcsclite" 2>&1`
+ PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcsclite" 2>&1`
else
- PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpcsclite" 2>&1`
+ PCSCLITE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcsclite" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$PCSCLITE_PKG_ERRORS" >&5
@@ -5776,6 +5800,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBAO_CFLAGS=`$PKG_CONFIG --cflags "ao" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5792,6 +5817,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBAO_LIBS=`$PKG_CONFIG --libs "ao" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5811,9 +5837,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ao" 2>&1`
+ LIBAO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ao" 2>&1`
else
- LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors "ao" 2>&1`
+ LIBAO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ao" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBAO_PKG_ERRORS" >&5
@@ -5845,6 +5871,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ALSA_CFLAGS=`$PKG_CONFIG --cflags "alsa" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5861,6 +5888,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ALSA_LIBS=`$PKG_CONFIG --libs "alsa" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5880,9 +5908,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "alsa" 2>&1`
+ ALSA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "alsa" 2>&1`
else
- ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors "alsa" 2>&1`
+ ALSA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "alsa" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$ALSA_PKG_ERRORS" >&5
@@ -5914,6 +5942,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBSAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5930,6 +5959,7 @@
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBSAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -5949,9 +5979,9 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "samplerate" 2>&1`
+ LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "samplerate" 2>&1`
else
- LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors "samplerate" 2>&1`
+ LIBSAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "samplerate" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBSAMPLERATE_PKG_ERRORS" >&5
@@ -7274,6 +7304,8 @@
esac
rm -rf conftest*
fi
+
+
fi
@@ -7899,16 +7931,16 @@
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -7968,28 +8000,16 @@
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -8010,8 +8030,8 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by rdesktop $as_me 1.8.0, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+This file was extended by rdesktop $as_me 1.8.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -8063,11 +8083,11 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-rdesktop config.status 1.8.0
-configured by $0, generated by GNU Autoconf 2.68,
+rdesktop config.status 1.8.1
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -8145,7 +8165,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/configure.ac new/rdesktop-1.8.1/configure.ac
--- old/rdesktop-1.8.0/configure.ac 2013-08-09 08:11:22.000000000 +0200
+++ new/rdesktop-1.8.1/configure.ac 2013-11-18 09:08:49.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT(rdesktop, 1.8.0)
+AC_INIT(rdesktop, 1.8.1)
AC_CONFIG_SRCDIR([rdesktop.c])
@@ -142,7 +142,7 @@
AC_DEFINE(WITH_CREDSSP)
else
echo
- echo "CredSPP support requires libggsglue, install the dependency"
+ echo "CredSPP support requires libgssglue, install the dependency"
echo "or disable the feature using --disable-credssp."
echo
exit 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/constants.h new/rdesktop-1.8.1/constants.h
--- old/rdesktop-1.8.0/constants.h 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/constants.h 2013-11-18 08:00:35.000000000 +0100
@@ -454,7 +454,10 @@
#define exDiscReasonOutOfMemory 0x0006
#define exDiscReasonServerDeniedConnection 0x0007
#define exDiscReasonServerDeniedConnectionFips 0x0008
-#define exDiscReasonWindows7Disconnect 0x000b /* unofficial */
+#define exDiscReasonServerInsufficientPrivileges 0x0009
+#define exDiscReasonServerFreshCredentialsRequired 0x000a
+#define exDiscReasonRPCInitiatedDisconnectByUser 0x000b
+#define exDiscReasonByUser 0x000c
#define exDiscReasonLicenseInternal 0x0100
#define exDiscReasonLicenseNoLicenseServer 0x0101
#define exDiscReasonLicenseNoLicense 0x0102
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/ctrl.c new/rdesktop-1.8.1/ctrl.c
--- old/rdesktop-1.8.0/ctrl.c 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/ctrl.c 2013-11-18 08:00:35.000000000 +0100
@@ -406,7 +406,7 @@
break;
}
- if (res >= 0)
+ if (res > 0)
{
/* Check if we got full command line */
char *p;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/doc/ChangeLog new/rdesktop-1.8.1/doc/ChangeLog
--- old/rdesktop-1.8.0/doc/ChangeLog 2013-08-09 10:11:13.000000000 +0200
+++ new/rdesktop-1.8.1/doc/ChangeLog 2013-11-18 09:08:24.000000000 +0100
@@ -1,3 +1,16 @@
+rdesktop (1.8.1)
+ * Fix a typo in configure.ac
+ * Fix a bug which made rdesktop steal CPU cycles.
+ * Fix issue with reconnect, make use of deactivate variable
+ * Added 4 new disconnect reasons with exit codes
+ * Fix issues of window handling in SeamlessRDP parts of rdesktop
+ * Fix a backward compability with OpenSSL < 0.9.9
+ * Fix a bug when code needs a x window available but there are none.
+ * Fix a sigsegv zeroing memory
+ * Fix a 64bit portability issue
+
+ -- Henrik Andersson <hean01(a)users.sourceforge.net> 2013-11-18
+
rdesktop (1.8.0)
* Support for protocol negotiation eg. SSL/TLSv1 and CredSSP
* Support for CredSSP + Kerberos authentication (NLA)
@@ -13,6 +26,8 @@
* Fix crash and memory leak in local drive redirection
* Fixes issues with license files loading/saving
+ -- Henrik Andersson <hean01(a)users.sourceforge.net> 2013-08-09
+
rdesktop (1.7.1)
* Fix clipboard issue when not building with unicode support
* Fix compilation against newer PCSC lite versions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/doc/rdesktop.1 new/rdesktop-1.8.1/doc/rdesktop.1
--- old/rdesktop-1.8.0/doc/rdesktop.1 2013-03-26 10:28:00.000000000 +0100
+++ new/rdesktop-1.8.1/doc/rdesktop.1 2013-11-18 08:00:34.000000000 +0100
@@ -282,6 +282,16 @@
The server denied the connection
.IP "\fB8\fP"
The server denied the connection for security reason
+.IP "\fB9\fP"
+The user cannot connect to the server due to insufficient access
+privileges
+.IP "\fB10\fP"
+The server does not accept saved user credentials and requires that
+the user enter their credentials for each connection
+.IP "\fB11\fP"
+Disconnect initiated by administration tool
+.IP "\fB12\fP"
+Disconnect initiated by user
.IP "\fB16\fP"
Internal licensing error
.IP "\fB17\fP"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/ewmhints.c new/rdesktop-1.8.1/ewmhints.c
--- old/rdesktop-1.8.0/ewmhints.c 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/ewmhints.c 2013-11-18 08:00:35.000000000 +0100
@@ -203,7 +203,7 @@
{
unsigned long nitems_return;
unsigned char *prop_return;
- uint32 *return_words;
+ unsigned long *return_words;
unsigned long item;
RD_BOOL maximized_vert, maximized_horz, hidden;
@@ -212,7 +212,7 @@
if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, &prop_return, 0) < 0)
return SEAMLESSRDP_NORMAL;
- return_words = (uint32 *) prop_return;
+ return_words = (unsigned long *) prop_return;
for (item = 0; item < nitems_return; item++)
{
@@ -226,10 +226,11 @@
XFree(prop_return);
- if (maximized_vert && maximized_horz)
- return SEAMLESSRDP_MAXIMIZED;
- else if (hidden)
+ /* In EWMH, HIDDEN overrides MAXIMIZED_VERT/MAXIMIZED_HORZ */
+ if (hidden)
return SEAMLESSRDP_MINIMIZED;
+ else if (maximized_vert && maximized_horz)
+ return SEAMLESSRDP_MAXIMIZED;
else
return SEAMLESSRDP_NORMAL;
}
@@ -542,6 +543,33 @@
return 0;
}
+RD_BOOL
+ewmh_is_window_above(Window w)
+{
+ unsigned long nitems_return;
+ unsigned char *prop_return;
+ unsigned long *return_words;
+ unsigned long item;
+ RD_BOOL above;
+
+ above = False;
+
+ if (get_property_value(w, "_NET_WM_STATE", 64, &nitems_return, &prop_return, 0) < 0)
+ return False;
+
+ return_words = (unsigned long *) prop_return;
+
+ for (item = 0; item < nitems_return; item++)
+ {
+ if (return_words[item] == g_net_wm_state_above_atom)
+ above = True;
+ }
+
+ XFree(prop_return);
+
+ return above;
+}
+
#endif /* MAKE_PROTO */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/proto.h new/rdesktop-1.8.1/proto.h
--- old/rdesktop-1.8.0/proto.h 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/proto.h 2013-11-18 08:00:34.000000000 +0100
@@ -144,6 +144,7 @@
char *l_to_a(long N, int base);
int load_licence(unsigned char **data);
void save_licence(unsigned char *data, int length);
+void rd_create_ui(void);
RD_BOOL rd_pstcache_mkdir(void);
int rd_open_file(char *filename);
void rd_close_file(int fd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.c new/rdesktop-1.8.1/rdesktop.c
--- old/rdesktop-1.8.0/rdesktop.c 2013-06-27 12:37:42.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.c 2013-11-18 08:00:35.000000000 +0100
@@ -281,7 +281,6 @@
break;
case exDiscReasonAPIInitiatedDisconnect:
- case exDiscReasonWindows7Disconnect:
text = "Server initiated disconnect";
retval = EXRD_API_DISCONNECT;
break;
@@ -321,6 +320,26 @@
retval = EXRD_DENIED_FIPS;
break;
+ case exDiscReasonServerInsufficientPrivileges:
+ text = "The user cannot connect to the server due to insufficient access privileges.";
+ retval = EXRD_INSUFFICIENT_PRIVILEGES;
+ break;
+
+ case exDiscReasonServerFreshCredentialsRequired:
+ text = "The server does not accept saved user credentials and requires that the user enter their credentials for each connection.";
+ retval = EXRD_FRESH_CREDENTIALS_REQUIRED;
+ break;
+
+ case exDiscReasonRPCInitiatedDisconnectByUser:
+ text = "Disconnect initiated by administration tool";
+ retval = EXRD_RPC_DISCONNECT_BY_USER;
+ break;
+
+ case exDiscReasonByUser:
+ text = "Disconnect initiated by user";
+ retval = EXRD_DISCONNECT_BY_USER;
+ break;
+
case exDiscReasonLicenseInternal:
text = "Internal licensing error";
retval = EXRD_LIC_INTERNAL;
@@ -510,7 +529,6 @@
#ifdef WITH_RDPSND
char *rdpsnd_optarg = NULL;
#endif
- int longidx;
#ifdef HAVE_LOCALE_H
/* Set locale according to environment */
@@ -1132,15 +1150,10 @@
DEBUG(("Connection successful.\n"));
memset(password, 0, sizeof(password));
- /* only create a window if we dont have one intialized */
- if (!ui_have_window())
- {
- if (!ui_create_window())
- return EX_OSERR;
- }
-
+ rd_create_ui();
tcp_run_ui(True);
+ deactivated = False;
g_redirect = False;
g_reconnect_loop = False;
rdp_main_loop(&deactivated, &ext_disc_reason);
@@ -1154,7 +1167,7 @@
continue;
/* handle network error and start autoreconnect */
- if (g_network_error)
+ if (g_network_error && !deactivated)
{
fprintf(stderr,
"Disconnected due to network error, retrying to reconnect for %d minutes.\n",
@@ -1732,6 +1745,18 @@
close(fd);
}
+/* create rdesktop ui */
+void
+rd_create_ui()
+{
+ /* only create a window if we dont have one intialized */
+ if (!ui_have_window())
+ {
+ if (!ui_create_window())
+ exit(EX_OSERR);
+ }
+}
+
/* Create the bitmap cache directory */
RD_BOOL
rd_pstcache_mkdir(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.h new/rdesktop-1.8.1/rdesktop.h
--- old/rdesktop-1.8.0/rdesktop.h 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.h 2013-11-18 08:00:35.000000000 +0100
@@ -100,6 +100,10 @@
#define EXRD_OUT_OF_MEM 6
#define EXRD_DENIED 7
#define EXRD_DENIED_FIPS 8
+#define EXRD_INSUFFICIENT_PRIVILEGES 9
+#define EXRD_FRESH_CREDENTIALS_REQUIRED 10
+#define EXRD_RPC_DISCONNECT_BY_USER 11
+#define EXRD_DISCONNECT_BY_USER 12
#define EXRD_LIC_INTERNAL 16
#define EXRD_LIC_NOSERVER 17
#define EXRD_LIC_NOLICENSE 18
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdesktop.spec new/rdesktop-1.8.1/rdesktop.spec
--- old/rdesktop-1.8.0/rdesktop.spec 2013-08-09 08:12:07.000000000 +0200
+++ new/rdesktop-1.8.1/rdesktop.spec 2013-11-18 09:09:45.000000000 +0100
@@ -1,6 +1,6 @@
Summary: Remote Desktop Protocol client
Name: rdesktop
-Version: 1.8.0
+Version: 1.8.1
Release: 1
License: GPL; see COPYING
Group: Applications/Communications
@@ -11,7 +11,7 @@
%description
rdesktop is a client for Remote Desktop Protocol (RDP), used in a number of
Microsoft products including Windows NT Terminal Server, Windows 2000 Server,
-Windows XP and Windows 2003 Server.
+Windows XP, Windows 2003 Server and Windows 2008r2.
%prep
rm -rf $RPM_BUILD_ROOT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdp.c new/rdesktop-1.8.1/rdp.c
--- old/rdesktop-1.8.0/rdp.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdp.c 2013-11-18 08:00:35.000000000 +0100
@@ -1044,6 +1044,9 @@
uint8 type;
uint16 len_src_descriptor, len_combined_caps;
+ /* at this point we need to ensure that we have ui created */
+ rd_create_ui();
+
in_uint32_le(s, g_rdp_shareid);
in_uint16_le(s, len_src_descriptor);
in_uint16_le(s, len_combined_caps);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_dsp.c new/rdesktop-1.8.1/rdpsnd_dsp.c
--- old/rdesktop-1.8.0/rdpsnd_dsp.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdpsnd_dsp.c 2013-11-18 08:00:34.000000000 +0100
@@ -255,7 +255,7 @@
#ifdef HAVE_LIBSAMPLERATE
if (src_converter == NULL)
{
- warning("no samplerate converter available!!\n");
+ warning("no samplerate converter available!\n");
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/rdpsnd_libao.c new/rdesktop-1.8.1/rdpsnd_libao.c
--- old/rdesktop-1.8.0/rdpsnd_libao.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/rdpsnd_libao.c 2013-11-18 08:00:35.000000000 +0100
@@ -111,6 +111,7 @@
{
ao_sample_format format;
+ memset(&format, 0, sizeof(format));
format.bits = pwfx->wBitsPerSample;
format.channels = pwfx->nChannels;
format.rate = 44100;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/sc.c new/rdesktop-1.8.1/sc.c
--- old/rdesktop-1.8.0/sc.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/sc.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-#include <cardmon.h>
-
-int
-main(int argc, char **argv)
-{
- CARD_DATA cd;
- PCARD_DATA pcd;
-
- memset(pcd, 0, sizeof(cd));
-
- return 0;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/scard.c new/rdesktop-1.8.1/scard.c
--- old/rdesktop-1.8.0/scard.c 2013-08-09 07:32:55.000000000 +0200
+++ new/rdesktop-1.8.1/scard.c 2013-11-18 08:00:35.000000000 +0100
@@ -2,8 +2,8 @@
rdesktop: A Remote Desktop Protocol client.
Smart Card support
Copyright (C) Alexi Volkov <alexi(a)myrealbox.com> 2006
- Copyright 2010 Pierre Ossman <ossman(a)cendio.se> for Cendio AB
- Copyright 2011 Henrik Andersson <hean01(a)cendio.se> for Cendio AB
+ Copyright 2010-2013 Pierre Ossman <ossman(a)cendio.se> for Cendio AB
+ Copyright 2011-2013 Henrik Andersson <hean01(a)cendio.se> for Cendio AB
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
@@ -1109,6 +1109,7 @@
MYPCSC_SCARDCONTEXT myHContext;
SERVER_DWORD dwTimeout;
SERVER_DWORD dwCount;
+ SERVER_DWORD dwPointerId;
SERVER_LPSCARD_READERSTATE_A rsArray, cur;
MYPCSC_LPSCARD_READERSTATE_A myRsArray;
long i;
@@ -1133,7 +1134,8 @@
memset(rsArray, 0, dwCount * sizeof(SERVER_SCARD_READERSTATE_A));
for (i = 0, cur = rsArray; i < dwCount; i++, cur++)
{
- in_uint32_le(in, cur->szReader);
+ in_uint32_le(in, dwPointerId);
+ cur->szReader = (char *) (intptr_t) dwPointerId;
in_uint32_le(in, cur->dwCurrentState);
in_uint32_le(in, cur->dwEventState);
in_uint32_le(in, cur->cbAtr);
@@ -1989,26 +1991,6 @@
rv = SCardGetAttrib(myHCard, (MYPCSC_DWORD) dwAttrId, pbAttr, &attrLen);
dwAttrLen = attrLen;
- if (dwAttrId == SCARD_ATTR_VENDOR_NAME && rv != SCARD_S_SUCCESS)
- {
- DEBUG_SCARD(("SCARD: Faking attribute ATTR_VENDOR_NAME\n"));
- pthread_mutex_lock(&hcardAccess);
- PSCHCardRec hcard = hcardFirst;
- while (hcard)
- {
- if (hcard->hCard == hCard)
- {
- dwAttrLen = strlen(hcard->vendor);
- memcpy(pbAttr, hcard->vendor, dwAttrLen);
- rv = SCARD_S_SUCCESS;
- break;
- }
- hcard = hcard->next;
- }
- pthread_mutex_unlock(&hcardAccess);
- DEBUG_SCARD(("[0x%.8x]\n", (unsigned int) rv));
- }
-
if (rv != SCARD_S_SUCCESS)
{
DEBUG_SCARD(("SCARD: -> Failure: %s (0x%08x)\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/seamless.c new/rdesktop-1.8.1/seamless.c
--- old/rdesktop-1.8.0/seamless.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/seamless.c 2013-11-18 08:00:34.000000000 +0100
@@ -437,7 +437,7 @@
s = channel_init(seamless_channel, len);
out_uint8p(s, buf, len) s_mark_end(s);
- DEBUG_SEAMLESS(("SeamlessRDP sending:%s", buf));
+ DEBUG_SEAMLESS(("seamlessrdp sending:%s", buf));
#if 0
printf("seamless send:\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/tcp.c new/rdesktop-1.8.1/tcp.c
--- old/rdesktop-1.8.0/tcp.c 2013-06-28 13:20:08.000000000 +0200
+++ new/rdesktop-1.8.1/tcp.c 2013-11-18 08:00:35.000000000 +0100
@@ -193,7 +193,7 @@
int rcvd = 0, ssl_err;
if (g_network_error == True)
- return;
+ return NULL;
if (s == NULL)
{
@@ -318,7 +318,9 @@
}
options = 0;
+#ifdef SSL_OP_NO_COMPRESSION
options |= SSL_OP_NO_COMPRESSION;
+#endif // __SSL_OP_NO_COMPRESSION
options |= SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
SSL_CTX_set_options(g_ssl_ctx, options);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/xproto.h new/rdesktop-1.8.1/xproto.h
--- old/rdesktop-1.8.0/xproto.h 2013-06-20 14:56:15.000000000 +0200
+++ new/rdesktop-1.8.1/xproto.h 2013-11-18 08:00:34.000000000 +0100
@@ -12,5 +12,6 @@
void ewmh_set_icon(Window wnd, int width, int height, const char *rgba_data);
void ewmh_del_icon(Window wnd, int width, int height);
int ewmh_set_window_above(Window wnd);
+RD_BOOL ewmh_is_window_above(Window w);
void set_keypress_keysym(unsigned int keycode, KeySym keysym);
KeySym reset_keypress_keysym(unsigned int keycode, KeySym keysym);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rdesktop-1.8.0/xwin.c new/rdesktop-1.8.1/xwin.c
--- old/rdesktop-1.8.0/xwin.c 2013-06-20 14:56:16.000000000 +0200
+++ new/rdesktop-1.8.1/xwin.c 2013-11-18 08:00:35.000000000 +0100
@@ -574,14 +574,14 @@
XEvent xevent;
sw_configurenotify_context context;
struct timeval now;
- struct timeval nextsecond;
+ struct timeval future;
RD_BOOL got = False;
context.window = wnd;
context.serial = serial;
- gettimeofday(&nextsecond, NULL);
- nextsecond.tv_sec += 1;
+ gettimeofday(&future, NULL);
+ future.tv_usec += 500000;
do
{
@@ -593,7 +593,7 @@
usleep(100000);
gettimeofday(&now, NULL);
}
- while (timercmp(&now, &nextsecond, <));
+ while (timercmp(&now, &future, <));
if (!got)
{
@@ -4181,20 +4181,21 @@
/* X11 windows must be at least 1x1 */
return;
- sw->xoffset = x;
- sw->yoffset = y;
- sw->width = width;
- sw->height = height;
-
/* If we move the window in a maximized state, then KDE won't
accept restoration */
switch (sw->state)
{
case SEAMLESSRDP_MINIMIZED:
case SEAMLESSRDP_MAXIMIZED:
+ sw_update_position(sw);
return;
}
+ sw->xoffset = x;
+ sw->yoffset = y;
+ sw->width = width;
+ sw->height = height;
+
/* FIXME: Perhaps use ewmh_net_moveresize_window instead */
XMoveResizeWindow(g_display, sw->wnd, sw->xoffset, sw->yoffset, sw->width, sw->height);
}
@@ -4206,6 +4207,7 @@
seamless_window *sw;
XWindowChanges values;
unsigned long restack_serial;
+ unsigned int value_mask;
if (!g_seamless_active)
return;
@@ -4228,25 +4230,43 @@
return;
}
- if (!g_seamless_broken_restack)
+ values.stack_mode = Below;
+ value_mask = CWStackMode | CWSibling;
+ values.sibling = sw_behind->wnd;
+
+ /* Avoid that topmost windows references non-topmost
+ windows, and vice versa. */
+ if (ewmh_is_window_above(sw->wnd))
+ {
+ if (!ewmh_is_window_above(sw_behind->wnd))
+ {
+ /* Disallow, move to bottom of the
+ topmost stack. */
+ values.stack_mode = Below;
+ value_mask = CWStackMode; /* Not sibling */
+ }
+ }
+ else
{
- values.stack_mode = Below;
- values.sibling = sw_behind->wnd;
- restack_serial = XNextRequest(g_display);
- XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display),
- CWStackMode | CWSibling, &values);
- sw_wait_configurenotify(sw->wnd, restack_serial);
+ if (ewmh_is_window_above(sw_behind->wnd))
+ {
+ /* Move to top of non-topmost
+ stack. */
+ values.stack_mode = Above;
+ value_mask = CWStackMode; /* Not sibling */
+ }
}
}
else
{
values.stack_mode = Above;
- restack_serial = XNextRequest(g_display);
- XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), CWStackMode,
- &values);
- sw_wait_configurenotify(sw->wnd, restack_serial);
+ value_mask = CWStackMode;
}
+ restack_serial = XNextRequest(g_display);
+ XReconfigureWMWindow(g_display, sw->wnd, DefaultScreen(g_display), value_mask, &values);
+ sw_wait_configurenotify(sw->wnd, restack_serial);
+
sw_restack_window(sw, behind);
if (flags & SEAMLESSRDP_CREATE_TOPMOST)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package physfs for openSUSE:Factory checked in at 2013-11-29 16:25:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/physfs (Old)
and /work/SRC/openSUSE:Factory/.physfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "physfs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/physfs/physfs.changes 2012-03-06 13:41:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.physfs.new/physfs.changes 2013-11-29 16:25:32.000000000 +0100
@@ -1,0 +2,18 @@
+Tue Nov 26 17:22:01 UTC 2013 - speilicke(a)suse.com
+
+- Remove physfs-2.0.2-gcc46.patch (merged upstream)
+
+-------------------------------------------------------------------
+Fri Nov 15 20:04:27 UTC 2013 - mailaender(a)opensuse.org
+
+- Source code now packaged in a .tar.bz2 instead of .tar.gz.
+- Fixed "make docs" for out-of-tree builds.
+- No longer builds annoying wxWidgets test program by default.
+- Fixed logic bug in UTF-8 string processing.
+- Fixed infinite loop on some .zip files with symlinks.
+- Fixed building of readline support in test program.
+- Fixed .zip archiver losing files in some cases.
+- Corrected copyright dates in license.
+- Other minor tweaks and fixes.
+
+-------------------------------------------------------------------
Old:
----
physfs-2.0.2-gcc46.patch
physfs-2.0.2.tar.gz
New:
----
physfs-2.0.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ physfs.spec ++++++
--- /var/tmp/diff_new_pack.iBPvcc/_old 2013-11-29 16:25:32.000000000 +0100
+++ /var/tmp/diff_new_pack.iBPvcc/_new 2013-11-29 16:25:32.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package physfs
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 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
@@ -17,40 +17,39 @@
%define so_nr 1
+%define desc "PhysicsFS is a library to provide abstract access to various archives.\
+It is intended for use in video games, and the design was somewhat\
+inspired by Quake 3's file subsystem. The programmer defines a "write\
+directory" on the physical filesystem. No file writing done through the\
+PhysicsFS API can leave that write directory, for security. For\
+example, an embedded scripting language cannot write outside of this\
+path if it uses PhysFS for all of its I/O, which means that untrusted\
+scripts can run more safely. Symbolic links can be disabled as well,\
+for added safety. For file reading, the programmer lists directories\
+and archives that form a "search path". Once the search path is\
+defined, it becomes a single, transparent hierarchical filesystem. This\
+makes for easy access to ZIP files in the same way as you access a file\
+directly on the disk, and it makes it easy to ship a new archive that\
+will override a previous archive on a per-file basis. Finally,\
+PhysicsFS gives you platform-abstracted means to determine if CD-ROMs\
+are available, the user's home directory, where in the real filesystem\
+your program is running, etc."\
Name: physfs
-Version: 2.0.2
+Version: 2.0.3
Release: 0
Summary: PhysicsFS file abstraction layer for games
License: (LGPL-2.1+ or CPL-1.0) and Zlib
Group: System/Libraries
Url: http://www.icculus.org/physfs/
-Source0: http://icculus.org/physfs/downloads/%{name}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM %{name}-2.0.2-gcc46.patch reddwarf(a)opensuse.org -- Fixes gcc 4.6 compilation. From upstream trunk.
-Patch0: %{name}-2.0.2-gcc46.patch
+Source: http://icculus.org/physfs/downloads/%{name}-%{version}.tar.bz2
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: zlib-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
-PhysicsFS is a library to provide abstract access to various archives.
-It is intended for use in video games, and the design was somewhat
-inspired by Quake 3's file subsystem. The programmer defines a "write
-directory" on the physical filesystem. No file writing done through the
-PhysicsFS API can leave that write directory, for security. For
-example, an embedded scripting language cannot write outside of this
-path if it uses PhysFS for all of its I/O, which means that untrusted
-scripts can run more safely. Symbolic links can be disabled as well,
-for added safety. For file reading, the programmer lists directories
-and archives that form a "search path". Once the search path is
-defined, it becomes a single, transparent hierarchical filesystem. This
-makes for easy access to ZIP files in the same way as you access a file
-directly on the disk, and it makes it easy to ship a new archive that
-will override a previous archive on a per-file basis. Finally,
-PhysicsFS gives you platform-abstracted means to determine if CD-ROMs
-are available, the user's home directory, where in the real filesystem
-your program is running, etc.
+%{desc}
%package -n lib%{name}%{so_nr}
Summary: PhysicsFS file abstraction layer for games
@@ -60,23 +59,7 @@
Obsoletes: physfs <= 1.0.1
%description -n lib%{name}%{so_nr}
-PhysicsFS is a library to provide abstract access to various archives.
-It is intended for use in video games, and the design was somewhat
-inspired by Quake 3's file subsystem. The programmer defines a "write
-directory" on the physical filesystem. No file writing done through the
-PhysicsFS API can leave that write directory, for security. For
-example, an embedded scripting language cannot write outside of this
-path if it uses PhysFS for all of its I/O, which means that untrusted
-scripts can run more safely. Symbolic links can be disabled as well,
-for added safety. For file reading, the programmer lists directories
-and archives that form a "search path". Once the search path is
-defined, it becomes a single, transparent hierarchical filesystem. This
-makes for easy access to ZIP files in the same way as you access a file
-directly on the disk, and it makes it easy to ship a new archive that
-will override a previous archive on a per-file basis. Finally,
-PhysicsFS gives you platform-abstracted means to determine if CD-ROMs
-are available, the user's home directory, where in the real filesystem
-your program is running, etc.
+%{desc}
%package -n lib%{name}-devel
Summary: Libraries, includes and more to develop PhysicsFS applications
@@ -87,27 +70,10 @@
Obsoletes: physfs-devel <= 1.0.1
%description -n lib%{name}-devel
-PhysicsFS is a library to provide abstract access to various archives.
-It is intended for use in video games, and the design was somewhat
-inspired by Quake 3's file subsystem. The programmer defines a "write
-directory" on the physical filesystem. No file writing done through the
-PhysicsFS API can leave that write directory, for security. For
-example, an embedded scripting language cannot write outside of this
-path if it uses PhysFS for all of its I/O, which means that untrusted
-scripts can run more safely. Symbolic links can be disabled as well,
-for added safety. For file reading, the programmer lists directories
-and archives that form a "search path". Once the search path is
-defined, it becomes a single, transparent hierarchical filesystem. This
-makes for easy access to ZIP files in the same way as you access a file
-directly on the disk, and it makes it easy to ship a new archive that
-will override a previous archive on a per-file basis. Finally,
-PhysicsFS gives you platform-abstracted means to determine if CD-ROMs
-are available, the user's home directory, where in the real filesystem
-your program is running, etc.
+%{desc}
%prep
%setup -q
-%patch0
%build
# just to be sure...
@@ -128,9 +94,6 @@
cd build
make DESTDIR=$RPM_BUILD_ROOT install
-%clean
-rm -rf %{buildroot}
-
%post -n lib%{name}%{so_nr} -p /sbin/ldconfig
%postun -n lib%{name}%{so_nr} -p /sbin/ldconfig
++++++ physfs-2.0.2.tar.gz -> physfs-2.0.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/.hg_archival.txt new/physfs-2.0.3/.hg_archival.txt
--- old/physfs-2.0.2/.hg_archival.txt 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/.hg_archival.txt 2012-10-23 05:41:04.000000000 +0200
@@ -1,5 +1,5 @@
repo: 7672c9962ce627edaaa67ff54fe4ad8f9a46dc2b
-node: 92a35b8603186c536e4cc126458dfc2d2809b19c
+node: f94eec5e90540889a42c34a27931b8266f4af52c
branch: stable-2.0
-latesttag: release-2.0.2
+latesttag: release-2.0.3
latesttagdistance: 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/.hgtags new/physfs-2.0.3/.hgtags
--- old/physfs-2.0.2/.hgtags 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/.hgtags 2012-10-23 05:41:04.000000000 +0200
@@ -14,3 +14,4 @@
df04959950eb3830c39adfa983789f70f86062d7 release-1.1.0
94771621792f838aa4cacf9a1e1f4f86c1cb0711 release-2.0.1
236afd18dd8cae34adb9897024bdcecc1dc8ca5d release-2.0.2
+bf155bd2127befa399105194e13737d7c3496be0 release-2.0.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/CMakeLists.txt new/physfs-2.0.3/CMakeLists.txt
--- old/physfs-2.0.2/CMakeLists.txt 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/CMakeLists.txt 2012-10-23 05:41:04.000000000 +0200
@@ -6,7 +6,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
PROJECT(PhysicsFS)
-SET(PHYSFS_VERSION 2.0.2)
+SET(PHYSFS_VERSION 2.0.3)
# Increment this if/when we break backwards compatibility.
SET(PHYSFS_SOVERSION 1)
@@ -21,6 +21,11 @@
SET(MACOSX TRUE)
ENDIF(APPLE AND NOT MACOSX)
+# For now, Haiku and BeOS are the same, as far as the build system cares.
+IF(HAIKU AND NOT BEOS)
+ SET(BEOS TRUE)
+ENDIF(HAIKU AND NOT BEOS)
+
INCLUDE(CheckIncludeFile)
INCLUDE(CheckLibraryExists)
INCLUDE(CheckCSourceCompiles)
@@ -303,20 +308,19 @@
FIND_LIBRARY(CURSES_LIBRARY NAMES curses ncurses)
SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY})
FIND_LIBRARY(READLINE_LIBRARY readline)
- FIND_LIBRARY(HISTORY_LIBRARY history)
- IF(READLINE_LIBRARY AND HISTORY_LIBRARY)
+ IF(READLINE_LIBRARY)
SET(HAVE_SYSTEM_READLINE TRUE)
SET(TEST_PHYSFS_LIBS ${TEST_PHYSFS_LIBS} ${READLINE_LIBRARY} ${CURSES_LIBRARY})
INCLUDE_DIRECTORIES(${READLINE_H} ${HISTORY_H})
ADD_DEFINITIONS(-DPHYSFS_HAVE_READLINE=1)
- ENDIF(READLINE_LIBRARY AND HISTORY_LIBRARY)
+ ENDIF(READLINE_LIBRARY)
ENDIF(READLINE_H AND HISTORY_H)
ADD_EXECUTABLE(test_physfs test/test_physfs.c)
TARGET_LINK_LIBRARIES(test_physfs ${PHYSFS_LIB_TARGET} ${TEST_PHYSFS_LIBS} ${OTHER_LDFLAGS})
SET(PHYSFS_INSTALL_TARGETS ${PHYSFS_INSTALL_TARGETS} ";test_physfs")
ENDIF(PHYSFS_BUILD_TEST)
-OPTION(PHYSFS_BUILD_WX_TEST "Build wxWidgets test program." TRUE)
+OPTION(PHYSFS_BUILD_WX_TEST "Build wxWidgets test program." FALSE)
MARK_AS_ADVANCED(PHYSFS_BUILD_WX_TEST)
IF(PHYSFS_BUILD_WX_TEST)
SET(wxWidgets_USE_LIBS base core adv)
@@ -342,16 +346,32 @@
FIND_PACKAGE(Doxygen)
IF(DOXYGEN_FOUND)
- ADD_CUSTOM_TARGET(docs ${DOXYGEN_EXECUTABLE} COMMENT "Building documentation")
+ SET(PHYSFS_OUTPUT_DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+ CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile"
+ "${PHYSFS_OUTPUT_DOXYFILE}"
+ COPYONLY
+ )
+ FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "\n\n# Below auto-generated by cmake...\n\n")
+ FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "PROJECT_NUMBER = ${PHYSFS_VERSION}\n")
+ FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}/docs\n")
+ FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "\n# End auto-generated section.\n\n")
+
+ ADD_CUSTOM_TARGET(
+ docs
+ ${DOXYGEN_EXECUTABLE} "${PHYSFS_OUTPUT_DOXYFILE}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ COMMENT "Building documentation in 'docs' directory..."
+ )
ELSE(DOXYGEN_FOUND)
MESSAGE(STATUS "Doxygen not found. You won't be able to build documentation.")
ENDIF(DOXYGEN_FOUND)
IF(UNIX)
- SET(PHYSFS_TARBALL "${CMAKE_CURRENT_SOURCE_DIR}/../physfs-${PHYSFS_VERSION}.tar.gz")
+ SET(PHYSFS_TARBALL "${CMAKE_CURRENT_SOURCE_DIR}/../physfs-${PHYSFS_VERSION}.tar.bz2")
ADD_CUSTOM_TARGET(
dist
- hg archive -t tgz "${PHYSFS_TARBALL}"
+ hg archive -t tbz2 "${PHYSFS_TARBALL}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Building source tarball '${PHYSFS_TARBALL}'..."
)
@@ -385,4 +405,3 @@
ENDIF(PHYSFS_BUILD_TEST)
# end of CMakeLists.txt ...
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/CREDITS.txt new/physfs-2.0.3/CREDITS.txt
--- old/physfs-2.0.2/CREDITS.txt 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/CREDITS.txt 2012-10-23 05:41:04.000000000 +0200
@@ -106,6 +106,9 @@
Bug fixes:
Patrice Mandin
+Bug fixes:
+ Lauri Kasanen
+
Other stuff:
Your name here! Patches go to icculus(a)icculus.org ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/Doxyfile new/physfs-2.0.3/Doxyfile
--- old/physfs-2.0.2/Doxyfile 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/Doxyfile 2012-10-23 05:41:04.000000000 +0200
@@ -22,8 +22,8 @@
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-
-PROJECT_NUMBER = 2.0.2
+# (CMake will set this properly at build time. --ryan.)
+PROJECT_NUMBER = "unknown version (build with 'make docs' next time!)"
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/LICENSE.txt new/physfs-2.0.3/LICENSE.txt
--- old/physfs-2.0.2/LICENSE.txt 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/LICENSE.txt 2012-10-23 05:41:04.000000000 +0200
@@ -1,5 +1,5 @@
- Copyright (c) 2001-2011 Ryan C. Gordon and others.
+ Copyright (c) 2001-2012 Ryan C. Gordon and others.
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/archivers/wad.c new/physfs-2.0.3/archivers/wad.c
--- old/physfs-2.0.2/archivers/wad.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/archivers/wad.c 2012-10-23 05:41:04.000000000 +0200
@@ -245,9 +245,6 @@
PHYSFS_uint32 fileCount;
PHYSFS_uint32 directoryOffset;
WADentry *entry;
- char lastDirectory[9];
-
- lastDirectory[8] = 0; /* Make sure lastDirectory stays null-terminated. */
BAIL_IF_MACRO(!wad_open(name, forWriting, &fh, &fileCount,&directoryOffset), NULL, 0);
info->entryCount = fileCount;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/archivers/zip.c new/physfs-2.0.3/archivers/zip.c
--- old/physfs-2.0.2/archivers/zip.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/archivers/zip.c 2012-10-23 05:41:04.000000000 +0200
@@ -535,6 +535,8 @@
else /* substring match...might be dir or entry or nothing. */
{
+ int i;
+
if (isDir != NULL)
{
*isDir = (thispath[pathlen] == '/');
@@ -544,12 +546,27 @@
if (thispath[pathlen] == '\0') /* found entry? */
return(&a[middle]);
- /* adjust search params, try again. */
- else if (thispath[pathlen] > '/')
- hi = middle - 1;
- else
- lo = middle + 1;
- } /* if */
+
+ /* substring match; search remaining space to find it... */
+ for (i = lo; i < hi; i++)
+ {
+ thispath = a[i].name;
+ if (strncmp(path, thispath, pathlen) == 0)
+ {
+ if (isDir != NULL)
+ {
+ *isDir = (thispath[pathlen] == '/');
+ if (*isDir)
+ return(NULL);
+ } /* if */
+
+ if (thispath[pathlen] == '\0') /* found entry? */
+ return(&a[i]);
+ } /* if */
+ } /* for */
+ break;
+
+ } /* else */
} /* while */
if (isDir != NULL)
@@ -628,6 +645,7 @@
else
{
prevptr = ptr;
+ ptr++;
} /* else */
} /* while */
} /* zip_expand_symlink_path */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/extras/globbing.h new/physfs-2.0.3/extras/globbing.h
--- old/physfs-2.0.2/extras/globbing.h 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/extras/globbing.h 2012-10-23 05:41:04.000000000 +0200
@@ -1,3 +1,6 @@
+#ifndef INCL_PHYSFSEXT_GLOBBING_H
+#define INCL_PHYSFSEXT_GLOBBING_H
+
/** \file globbing.h */
/**
@@ -30,6 +33,9 @@
* \author Ryan C. Gordon.
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* \fn char **PHYSFS_enumerateFilesWildcard(const char *dir, const char *wildcard, int caseSensitive)
@@ -73,5 +79,11 @@
const char *wildcard,
int caseSensitive);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* include-once blocker. */
+
/* end of globbing.h ... */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/extras/ignorecase.c new/physfs-2.0.3/extras/ignorecase.c
--- old/physfs-2.0.2/extras/ignorecase.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/extras/ignorecase.c 2012-10-23 05:41:04.000000000 +0200
@@ -98,7 +98,7 @@
if (*ptr == '\0')
return(0); /* Uh...I guess that's success. */
- while (ptr = strchr(ptr + 1, '/'))
+ while ( (ptr = strchr(ptr + 1, '/')) != NULL )
{
*ptr = '\0'; /* block this path section off */
rc = locateOneElement(buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/extras/ignorecase.h new/physfs-2.0.3/extras/ignorecase.h
--- old/physfs-2.0.2/extras/ignorecase.h 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/extras/ignorecase.h 2012-10-23 05:41:04.000000000 +0200
@@ -1,3 +1,6 @@
+#ifndef INCL_PHYSFSEXT_IGNORECASE_H
+#define INCL_PHYSFSEXT_IGNORECASE_H
+
/** \file ignorecase.h */
/**
@@ -44,6 +47,9 @@
* \author Ryan C. Gordon.
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* \fn int PHYSFSEXT_locateCorrectCase(char *buf)
@@ -71,5 +77,11 @@
*/
int PHYSFSEXT_locateCorrectCase(char *buf);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* include-once blocker. */
+
/* end of ignorecase.h ... */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/physfs.c new/physfs-2.0.3/physfs.c
--- old/physfs-2.0.2/physfs.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/physfs.c 2012-10-23 05:41:04.000000000 +0200
@@ -43,7 +43,7 @@
typedef struct __PHYSFS_ERRMSGTYPE__
{
- PHYSFS_uint64 tid;
+ void *tid;
int errorAvailable;
char errorString[80];
struct __PHYSFS_ERRMSGTYPE__ *next;
@@ -94,7 +94,7 @@
NULL
};
-static const PHYSFS_Archiver *archivers[] =
+static const PHYSFS_Archiver * const archivers[] =
{
&__PHYSFS_Archiver_DIR,
#if (defined PHYSFS_SUPPORTS_ZIP)
@@ -261,14 +261,15 @@
* Quicksort w/ Bubblesort fallback algorithm inspired by code from here:
* http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html
*/
- __PHYSFS_quick_sort(entries, 0, max - 1, cmpfn, swapfn);
+ if (max > 0)
+ __PHYSFS_quick_sort(entries, 0, max - 1, cmpfn, swapfn);
} /* __PHYSFS_sort */
static ErrMsg *findErrorForCurrentThread(void)
{
ErrMsg *i;
- PHYSFS_uint64 tid;
+ void *tid;
if (errorLock != NULL)
__PHYSFS_platformGrabMutex(errorLock);
@@ -416,7 +417,7 @@
static DirHandle *openDirectory(const char *d, int forWriting)
{
DirHandle *retval = NULL;
- const PHYSFS_Archiver **i;
+ const PHYSFS_Archiver * const *i;
const char *ext;
BAIL_IF_MACRO(!__PHYSFS_platformExists(d), ERR_NO_SUCH_FILE, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/physfs.h new/physfs-2.0.3/physfs.h
--- old/physfs-2.0.2/physfs.h 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/physfs.h 2012-10-23 05:41:04.000000000 +0200
@@ -405,7 +405,7 @@
#ifndef DOXYGEN_SHOULD_IGNORE_THIS
#define PHYSFS_VER_MAJOR 2
#define PHYSFS_VER_MINOR 0
-#define PHYSFS_VER_PATCH 2
+#define PHYSFS_VER_PATCH 3
#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/physfs_internal.h new/physfs-2.0.3/physfs_internal.h
--- old/physfs-2.0.2/physfs_internal.h 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/physfs_internal.h 2012-10-23 05:41:04.000000000 +0200
@@ -970,7 +970,8 @@
#define PHYSFS_LIL_ENDIAN 1234
#define PHYSFS_BIG_ENDIAN 4321
-#if defined(__i386__) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || \
+#if defined(__i386__) || defined(__ia64__) || \
+ defined(_M_IX86) || defined(_M_IA64) || defined(_M_X64) || \
(defined(__alpha__) || defined(__alpha)) || \
defined(__arm__) || defined(ARM) || \
(defined(__mips__) && defined(__MIPSEL__)) || \
@@ -1225,8 +1226,7 @@
*
* Not all file types can "tell"; this is to be expected by the caller.
*
- * On error, call __PHYSFS_setError() and return zero. On success, return
- * a non-zero value.
+ * On error, call __PHYSFS_setError() and return -1. On success, return >= 0.
*/
PHYSFS_sint64 __PHYSFS_platformTell(void *opaque);
@@ -1305,12 +1305,12 @@
char *__PHYSFS_platformGetUserDir(void);
/*
- * Return a number that uniquely identifies the current thread.
- * On a platform without threading, (1) will suffice. These numbers are
+ * Return a pointer that uniquely identifies the current thread.
+ * On a platform without threading, (0x1) will suffice. These numbers are
* arbitrary; the only requirement is that no two threads have the same
- * number.
+ * pointer.
*/
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void);
+void *__PHYSFS_platformGetThreadID(void);
/*
* Return non-zero if filename (in platform-dependent notation) exists.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/physfs_platforms.h new/physfs-2.0.3/physfs_platforms.h
--- old/physfs-2.0.2/physfs_platforms.h 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/physfs_platforms.h 2012-10-23 05:41:04.000000000 +0200
@@ -38,7 +38,7 @@
# endif
#elif defined(macintosh)
# error Classic Mac OS support was dropped from PhysicsFS 2.0. Move to OS X.
-#elif defined(unix)
+#elif defined(unix) || defined(__unix__)
# define PHYSFS_PLATFORM_UNIX
# define PHYSFS_PLATFORM_POSIX
#else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/physfs_unicode.c new/physfs-2.0.3/physfs_unicode.c
--- old/physfs-2.0.2/physfs_unicode.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/physfs_unicode.c 2012-10-23 05:41:04.000000000 +0200
@@ -63,12 +63,13 @@
else if (octet < 224) /* two octets */
{
+ (*_str)++; /* advance at least one byte in case of an error */
octet -= (128+64);
octet2 = (PHYSFS_uint32) ((PHYSFS_uint8) *(++str));
if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
- *_str += 2; /* skip to next possible start of codepoint. */
+ *_str += 1; /* skip to next possible start of codepoint. */
retval = ((octet << 6) | (octet2 - 128));
if ((retval >= 0x80) && (retval <= 0x7FF))
return retval;
@@ -76,6 +77,7 @@
else if (octet < 240) /* three octets */
{
+ (*_str)++; // advance at least one byte in case of an error
octet -= (128+64+32);
octet2 = (PHYSFS_uint32) ((PHYSFS_uint8) *(++str));
if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */
@@ -85,7 +87,7 @@
if ((octet3 & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
- *_str += 3; /* skip to next possible start of codepoint. */
+ *_str += 2; /* skip to next possible start of codepoint. */
retval = ( ((octet << 12)) | ((octet2-128) << 6) | ((octet3-128)) );
/* There are seven "UTF-16 surrogates" that are illegal in UTF-8. */
@@ -108,6 +110,7 @@
else if (octet < 248) /* four octets */
{
+ (*_str)++; // advance at least one byte in case of an error
octet -= (128+64+32+16);
octet2 = (PHYSFS_uint32) ((PHYSFS_uint8) *(++str));
if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */
@@ -121,7 +124,7 @@
if ((octet4 & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
- *_str += 4; /* skip to next possible start of codepoint. */
+ *_str += 3; /* skip to next possible start of codepoint. */
retval = ( ((octet << 18)) | ((octet2 - 128) << 12) |
((octet3 - 128) << 6) | ((octet4 - 128)) );
if ((retval >= 0x10000) && (retval <= 0x10FFFF))
@@ -136,6 +139,7 @@
else if (octet < 252) /* five octets */
{
+ (*_str)++; // advance at least one byte in case of an error
octet = (PHYSFS_uint32) ((PHYSFS_uint8) *(++str));
if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
@@ -152,12 +156,13 @@
if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
- *_str += 5; /* skip to next possible start of codepoint. */
+ *_str += 4; /* skip to next possible start of codepoint. */
return UNICODE_BOGUS_CHAR_VALUE;
} /* else if */
else /* six octets */
{
+ (*_str)++; // advance at least one byte in case of an error
octet = (PHYSFS_uint32) ((PHYSFS_uint8) *(++str));
if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
@@ -178,7 +183,7 @@
if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */
return UNICODE_BOGUS_CHAR_VALUE;
- *_str += 6; /* skip to next possible start of codepoint. */
+ *_str += 5; /* skip to next possible start of codepoint. */
return UNICODE_BOGUS_CHAR_VALUE;
} /* else if */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/beos.cpp new/physfs-2.0.3/platform/beos.cpp
--- old/physfs-2.0.2/platform/beos.cpp 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/beos.cpp 2012-10-23 05:41:04.000000000 +0200
@@ -197,9 +197,9 @@
} /* __PHYSFS_platformCalcBaseDir */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
- return((PHYSFS_uint64) find_thread(NULL));
+ return((void *) find_thread(NULL));
} /* __PHYSFS_platformGetThreadID */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/macosx.c new/physfs-2.0.3/platform/macosx.c
--- old/physfs-2.0.2/platform/macosx.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/macosx.c 2012-10-23 05:41:04.000000000 +0200
@@ -16,6 +16,7 @@
#include <IOKit/storage/IOCDMedia.h>
#include <IOKit/storage/IODVDMedia.h>
#include <sys/mount.h>
+#include <sys/stat.h>
/* Seems to get defined in some system header... */
#ifdef Free
@@ -219,12 +220,15 @@
char *__PHYSFS_platformCalcBaseDir(const char *argv0)
{
ProcessSerialNumber psn = { 0, kCurrentProcess };
+ struct stat statbuf;
FSRef fsref;
CFRange cfrange;
CFURLRef cfurl = NULL;
CFStringRef cfstr = NULL;
CFMutableStringRef cfmutstr = NULL;
char *retval = NULL;
+ char *cstr = NULL;
+ int rc = 0;
BAIL_IF_MACRO(GetProcessBundleLocation(&psn, &fsref) != noErr, NULL, NULL);
cfurl = CFURLCreateFromFSRef(cfallocator, &fsref);
@@ -236,27 +240,46 @@
CFRelease(cfstr);
BAIL_IF_MACRO(cfmutstr == NULL, NULL, NULL);
- /* Find last dirsep so we can chop the binary's filename from the path. */
- cfrange = CFStringFind(cfmutstr, CFSTR("/"), kCFCompareBackwards);
- if (cfrange.location == kCFNotFound)
+ /* we have to decide if we got a binary's path, or the .app dir... */
+ cstr = convertCFString(cfmutstr);
+ if (cstr == NULL)
{
- assert(0); /* shouldn't ever hit this... */
CFRelease(cfmutstr);
return(NULL);
} /* if */
- /* chop the "/exename" from the end of the path string... */
- cfrange.length = CFStringGetLength(cfmutstr) - cfrange.location;
- CFStringDelete(cfmutstr, cfrange);
-
- /* If we're an Application Bundle, chop everything but the base. */
- cfrange = CFStringFind(cfmutstr, CFSTR("/Contents/MacOS"),
- kCFCompareCaseInsensitive |
- kCFCompareBackwards |
- kCFCompareAnchored);
+ rc = stat(cstr, &statbuf);
+ allocator.Free(cstr); /* done with this. */
+ if (rc == -1)
+ {
+ CFRelease(cfmutstr);
+ return(NULL); /* maybe default behaviour will work? */
+ } /* if */
- if (cfrange.location != kCFNotFound)
- CFStringDelete(cfmutstr, cfrange); /* chop that, too. */
+ if (S_ISREG(statbuf.st_mode))
+ {
+ /* Find last dirsep so we can chop the filename from the path. */
+ cfrange = CFStringFind(cfmutstr, CFSTR("/"), kCFCompareBackwards);
+ if (cfrange.location == kCFNotFound)
+ {
+ assert(0); /* shouldn't ever hit this... */
+ CFRelease(cfmutstr);
+ return(NULL);
+ } /* if */
+
+ /* chop the "/exename" from the end of the path string... */
+ cfrange.length = CFStringGetLength(cfmutstr) - cfrange.location;
+ CFStringDelete(cfmutstr, cfrange);
+
+ /* If we're an Application Bundle, chop everything but the base. */
+ cfrange = CFStringFind(cfmutstr, CFSTR("/Contents/MacOS"),
+ kCFCompareCaseInsensitive |
+ kCFCompareBackwards |
+ kCFCompareAnchored);
+
+ if (cfrange.location != kCFNotFound)
+ CFStringDelete(cfmutstr, cfrange); /* chop that, too. */
+ } /* if */
retval = convertCFString(cfmutstr);
CFRelease(cfmutstr);
@@ -353,9 +376,9 @@
} /* __PHYSFS_platformSetDefaultAllocator */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
- return( (PHYSFS_uint64) ((size_t) MPCurrentTaskID()) );
+ return( (void *) ((size_t) MPCurrentTaskID()) );
} /* __PHYSFS_platformGetThreadID */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/os2.c new/physfs-2.0.3/platform/os2.c
--- old/physfs-2.0.2/platform/os2.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/os2.c 2012-10-23 05:41:04.000000000 +0200
@@ -649,7 +649,7 @@
} /* __PHYSFS_platformGetLastModTime */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
PTIB ptib;
PPIB ppib;
@@ -659,7 +659,7 @@
* default value (zero might as well do) if it does.
*/
BAIL_IF_MACRO(os2err(DosGetInfoBlocks(&ptib, &ppib)) != NO_ERROR, 0, 0);
- return((PHYSFS_uint64) ptib->tib_ordinal);
+ return((void *) ptib->tib_ordinal);
} /* __PHYSFS_platformGetThreadID */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/pocketpc.c new/physfs-2.0.3/platform/pocketpc.c
--- old/physfs-2.0.2/platform/pocketpc.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/pocketpc.c 2012-10-23 05:41:04.000000000 +0200
@@ -161,9 +161,9 @@
} /* __PHYSFS_platformGetUserDir */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
- return(1); /* single threaded. */
+ return((void *)1); /* single threaded. */
} /* __PHYSFS_platformGetThreadID */
@@ -467,7 +467,7 @@
LowPos = SetFilePointer(Handle, 0, &HighPos, FILE_CURRENT);
if ((LowPos == INVALID_SET_FILE_POINTER) && (GetLastError() != NO_ERROR))
{
- BAIL_MACRO(win32strerror(), 0);
+ BAIL_MACRO(win32strerror(), -1);
} /* if */
else
{
@@ -505,14 +505,18 @@
int __PHYSFS_platformEOF(void *opaque)
{
+ const PHYSFS_sint64 FileLength = __PHYSFS_platformFileLength(opaque);
PHYSFS_sint64 FilePosition;
int retval = 0;
+ if (FileLength == 0)
+ return 1; /* we're definitely at EOF. */
+
/* Get the current position in the file */
- if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0)
+ if ((FilePosition = __PHYSFS_platformTell(opaque)) != -1)
{
/* Non-zero if EOF is equal to the file length */
- retval = FilePosition == __PHYSFS_platformFileLength(opaque);
+ retval = (FilePosition == FileLength);
} /* if */
return(retval);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/posix.c new/physfs-2.0.3/platform/posix.c
--- old/physfs-2.0.2/platform/posix.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/posix.c 2012-10-23 05:41:04.000000000 +0200
@@ -383,7 +383,7 @@
{
PHYSFS_sint64 pos = __PHYSFS_platformTell(opaque);
PHYSFS_sint64 len = __PHYSFS_platformFileLength(opaque);
- return(pos >= len);
+ return((pos < 0) || (len < 0) || (pos >= len));
} /* __PHYSFS_platformEOF */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/unix.c new/physfs-2.0.3/platform/unix.c
--- old/physfs-2.0.2/platform/unix.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/unix.c 2012-10-23 05:41:04.000000000 +0200
@@ -342,7 +342,7 @@
#if (defined PHYSFS_NO_THREAD_SUPPORT)
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) { return(0x0001); }
+void *__PHYSFS_platformGetThreadID(void) { return((void *) 0x0001); }
void *__PHYSFS_platformCreateMutex(void) { return((void *) 0x0001); }
void __PHYSFS_platformDestroyMutex(void *mutex) {}
int __PHYSFS_platformGrabMutex(void *mutex) { return(1); }
@@ -357,24 +357,9 @@
PHYSFS_uint32 count;
} PthreadMutex;
-/* Just in case; this is a panic value. */
-#if ((!defined SIZEOF_INT) || (SIZEOF_INT <= 0))
-# define SIZEOF_INT 4
-#endif
-
-#if (SIZEOF_INT == 4)
-# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint32) (thr)) )
-#elif (SIZEOF_INT == 2)
-# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint16) (thr)) )
-#elif (SIZEOF_INT == 1)
-# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint8) (thr)) )
-#else
-# define PHTREAD_TO_UI64(thr) ((PHYSFS_uint64) (thr))
-#endif
-
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
- return(PHTREAD_TO_UI64(pthread_self()));
+ return( (void *) ((size_t) pthread_self()) );
} /* __PHYSFS_platformGetThreadID */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/platform/windows.c new/physfs-2.0.3/platform/windows.c
--- old/physfs-2.0.2/platform/windows.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/platform/windows.c 2012-10-23 05:41:04.000000000 +0200
@@ -462,6 +462,7 @@
*/
rc = pGetUserProfileDirectoryW(accessToken, &dummy, &psize);
assert(!rc); /* !!! FIXME: handle this gracefully. */
+ (void)rc;
/* Allocate memory for the profile directory */
wstr = (LPWSTR) __PHYSFS_smallAlloc(psize * sizeof (WCHAR));
@@ -559,9 +560,9 @@
} /* __PHYSFS_platformGetUserDir */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
{
- return((PHYSFS_uint64) GetCurrentThreadId());
+ return( (void *) ((size_t) GetCurrentThreadId()) );
} /* __PHYSFS_platformGetThreadID */
@@ -1142,7 +1143,7 @@
if ( (LowPos == PHYSFS_INVALID_SET_FILE_POINTER) &&
(GetLastError() != NO_ERROR) )
{
- BAIL_MACRO(winApiStrError(), 0);
+ BAIL_MACRO(winApiStrError(), -1);
} /* if */
else
{
@@ -1181,14 +1182,18 @@
int __PHYSFS_platformEOF(void *opaque)
{
+ const PHYSFS_sint64 FileLength = __PHYSFS_platformFileLength(opaque);
PHYSFS_sint64 FilePosition;
int retval = 0;
+ if (FileLength == 0)
+ return 1; /* we're definitely at EOF. */
+
/* Get the current position in the file */
- if ((FilePosition = __PHYSFS_platformTell(opaque)) != 0)
+ if ((FilePosition = __PHYSFS_platformTell(opaque)) != -1)
{
/* Non-zero if EOF is equal to the file length */
- retval = FilePosition == __PHYSFS_platformFileLength(opaque);
+ retval = (FilePosition == FileLength);
} /* if */
return(retval);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/test/test_physfs.c new/physfs-2.0.3/test/test_physfs.c
--- old/physfs-2.0.2/test/test_physfs.c 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/test/test_physfs.c 2012-10-23 05:41:04.000000000 +0200
@@ -27,7 +27,7 @@
#define TEST_VERSION_MAJOR 2
#define TEST_VERSION_MINOR 0
-#define TEST_VERSION_PATCH 2
+#define TEST_VERSION_PATCH 3
static FILE *history_file = NULL;
static PHYSFS_uint32 do_buffer_size = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/physfs-2.0.2/test/wxtest_physfs.cpp new/physfs-2.0.3/test/wxtest_physfs.cpp
--- old/physfs-2.0.2/test/wxtest_physfs.cpp 2011-02-18 22:17:31.000000000 +0100
+++ new/physfs-2.0.3/test/wxtest_physfs.cpp 2012-10-23 05:41:04.000000000 +0200
@@ -24,7 +24,7 @@
#define TEST_VER_MAJOR 2
#define TEST_VER_MINOR 0
-#define TEST_VER_PATCH 2
+#define TEST_VER_PATCH 3
//static PHYSFS_uint32 do_buffer_size = 0;
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-IO-Socket-SSL for openSUSE:Factory checked in at 2013-11-29 16:25:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-IO-Socket-SSL (Old)
and /work/SRC/openSUSE:Factory/.perl-IO-Socket-SSL.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-Socket-SSL"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-IO-Socket-SSL/perl-IO-Socket-SSL.changes 2013-11-26 19:25:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-IO-Socket-SSL.new/perl-IO-Socket-SSL.changes 2013-11-29 16:25:10.000000000 +0100
@@ -1,0 +2,9 @@
+Fri Nov 29 11:05:49 UTC 2013 - coolo(a)suse.com
+
+- updated to 1.962
+ - work around problems with older F5 BIG-IP by offering fewer ciphers on the
+ client side by default, so that the client hello stays below 255 byte
+ - IO::Socket::SSL::Utils::CERT_create can now create CA-certificates which
+ are not self-signed (by giving issuer_*)
+
+-------------------------------------------------------------------
Old:
----
IO-Socket-SSL-1.960.tar.gz
New:
----
IO-Socket-SSL-1.962.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-IO-Socket-SSL.spec ++++++
--- /var/tmp/diff_new_pack.lxZZfs/_old 2013-11-29 16:25:10.000000000 +0100
+++ /var/tmp/diff_new_pack.lxZZfs/_new 2013-11-29 16:25:10.000000000 +0100
@@ -17,7 +17,7 @@
Name: perl-IO-Socket-SSL
-Version: 1.960
+Version: 1.962
Release: 0
%define cpan_name IO-Socket-SSL
Summary: Nearly transparent SSL encapsulation for IO::Socket::INET.
++++++ IO-Socket-SSL-1.960.tar.gz -> IO-Socket-SSL-1.962.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/Changes new/IO-Socket-SSL-1.962/Changes
--- old/IO-Socket-SSL-1.960/Changes 2013-11-13 00:46:00.000000000 +0100
+++ new/IO-Socket-SSL-1.962/Changes 2013-11-27 22:08:38.000000000 +0100
@@ -1,3 +1,9 @@
+1.962 2013/11/27
+- work around problems with older F5 BIG-IP by offering fewer ciphers on the
+ client side by default, so that the client hello stays below 255 byte
+1.961 2013/11/26
+- IO::Socket::SSL::Utils::CERT_create can now create CA-certificates which
+ are not self-signed (by giving issuer_*)
1.960 2013/11/12
only documentation enhancements:
- clarify with text and example code, that within event loops not only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/MANIFEST new/IO-Socket-SSL-1.962/MANIFEST
--- old/IO-Socket-SSL-1.960/MANIFEST 2013-11-13 01:09:39.000000000 +0100
+++ new/IO-Socket-SSL-1.962/MANIFEST 2013-11-27 22:19:13.000000000 +0100
@@ -51,4 +51,5 @@
t/mitm.t
t/ecdhe.t
util/export_certs.pl
-META.yml Module meta-data (added by MakeMaker)
+META.yml Module YAML meta-data (added by MakeMaker)
+META.json Module JSON meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/META.json new/IO-Socket-SSL-1.962/META.json
--- old/IO-Socket-SSL-1.960/META.json 1970-01-01 01:00:00.000000000 +0100
+++ new/IO-Socket-SSL-1.962/META.json 2013-11-27 22:19:13.000000000 +0100
@@ -0,0 +1,54 @@
+{
+ "abstract" : "Nearly transparent SSL encapsulation for IO::Socket::INET.",
+ "author" : [
+ "Steffen Ullrich <sullr.org>, Peter Behroozi, Marko Asplund"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "IO-Socket-SSL",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Net::SSLeay" : "1.46",
+ "Scalar::Util" : "0"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "bugtracker" : {
+ "web" : "https://rt.cpan.org/Dist/Display.html?Queue=IO-Socket-SSL"
+ },
+ "homepage" : "https://github.com/noxxi/p5-io-socket-ssl",
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ],
+ "repository" : {
+ "url" : "https://github.com/noxxi/p5-io-socket-ssl"
+ }
+ },
+ "version" : "1.962"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/META.yml new/IO-Socket-SSL-1.962/META.yml
--- old/IO-Socket-SSL-1.960/META.yml 2013-11-13 01:09:39.000000000 +0100
+++ new/IO-Socket-SSL-1.962/META.yml 2013-11-27 22:19:13.000000000 +0100
@@ -1,28 +1,28 @@
---- #YAML:1.0
-name: IO-Socket-SSL
-version: 1.960
-abstract: Nearly transparent SSL encapsulation for IO::Socket::INET.
+---
+abstract: 'Nearly transparent SSL encapsulation for IO::Socket::INET.'
author:
- - Steffen Ullrich <sullr.org>, Peter Behroozi, Marko Asplund
-license: perl
-distribution_type: module
-configure_requires:
- ExtUtils::MakeMaker: 0
+ - 'Steffen Ullrich <sullr.org>, Peter Behroozi, Marko Asplund'
build_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: IO-Socket-SSL
+no_index:
+ directory:
+ - t
+ - inc
requires:
- Net::SSLeay: 1.46
- Scalar::Util: 0
+ Net::SSLeay: 1.46
+ Scalar::Util: 0
resources:
- bugtracker: https://rt.cpan.org/Dist/Display.html?Queue=IO-Socket-SSL
- homepage: https://github.com/noxxi/p5-io-socket-ssl
- license: http://dev.perl.org/licenses/
- repository: https://github.com/noxxi/p5-io-socket-ssl
-no_index:
- directory:
- - t
- - inc
-generated_by: ExtUtils::MakeMaker version 6.57_05
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ bugtracker: https://rt.cpan.org/Dist/Display.html?Queue=IO-Socket-SSL
+ homepage: https://github.com/noxxi/p5-io-socket-ssl
+ license: http://dev.perl.org/licenses/
+ repository: https://github.com/noxxi/p5-io-socket-ssl
+version: 1.962
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/lib/IO/Socket/SSL/Utils.pm new/IO-Socket-SSL-1.962/lib/IO/Socket/SSL/Utils.pm
--- old/IO-Socket-SSL-1.960/lib/IO/Socket/SSL/Utils.pm 2013-11-11 09:27:11.000000000 +0100
+++ new/IO-Socket-SSL-1.962/lib/IO/Socket/SSL/Utils.pm 2013-11-26 15:35:31.000000000 +0100
@@ -7,7 +7,7 @@
use Time::Local;
use Exporter 'import';
-our $VERSION = '0.01';
+our $VERSION = '0.02';
our @EXPORT = qw(
PEM_file2cert PEM_string2cert PEM_cert2file PEM_cert2string
PEM_file2key PEM_string2key PEM_key2file PEM_key2string
@@ -208,32 +208,28 @@
my $key = delete $args{key} || KEY_create_rsa();
Net::SSLeay::X509_set_pubkey($cert,$key);
+ my $issuer_cert = delete $args{issuer_cert};
+ my $issuer_key = delete $args{issuer_key};
if ( delete $args{CA} ) {
- Net::SSLeay::X509_set_issuer_name($cert,
- Net::SSLeay::X509_get_subject_name($cert));
- Net::SSLeay::P_X509_add_extensions($cert,$cert,
- @ext,
- &Net::SSLeay::NID_basic_constraints => 'CA:TRUE',
- ) or die "failed to set extensions";
- Net::SSLeay::X509_sign($cert,$key,$sha1_digest);
+ $issuer_cert ||= $cert;
+ $issuer_key ||= $key;
+ push @ext, &Net::SSLeay::NID_basic_constraints => 'CA:TRUE',
} else {
- my $issuer_cert = delete $args{issuer_cert}
- || croak "no issuer_cert given";
- my $issuer_key = delete $args{issuer_key}
- || croak "no issuer_key given";
- Net::SSLeay::P_X509_add_extensions($cert, $issuer_cert,
- @ext,
+ $issuer_cert || croak "no issuer_cert given";
+ $issuer_key || croak "no issuer_key given";
+ push @ext,
&Net::SSLeay::NID_key_usage => 'digitalSignature,keyEncipherment',
&Net::SSLeay::NID_basic_constraints => 'CA:FALSE',
&Net::SSLeay::NID_ext_key_usage => 'serverAuth,clientAuth',
- &Net::SSLeay::NID_netscape_cert_type => 'server',
- );
- Net::SSLeay::X509_set_issuer_name($cert,
- Net::SSLeay::X509_get_subject_name($issuer_cert));
- Net::SSLeay::X509_sign($cert,$issuer_key,$sha1_digest);
+ &Net::SSLeay::NID_netscape_cert_type => 'server';
}
+ Net::SSLeay::P_X509_add_extensions($cert, $issuer_cert, @ext);
+ Net::SSLeay::X509_set_issuer_name($cert,
+ Net::SSLeay::X509_get_subject_name($issuer_cert));
+ Net::SSLeay::X509_sign($cert,$issuer_key,$sha1_digest);
+
return ($cert,$key);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-Socket-SSL-1.960/lib/IO/Socket/SSL.pm new/IO-Socket-SSL-1.962/lib/IO/Socket/SSL.pm
--- old/IO-Socket-SSL-1.960/lib/IO/Socket/SSL.pm 2013-11-13 01:09:31.000000000 +0100
+++ new/IO-Socket-SSL-1.962/lib/IO/Socket/SSL.pm 2013-11-27 22:06:58.000000000 +0100
@@ -20,7 +20,7 @@
use Carp;
use strict;
-our $VERSION = '1.960';
+our $VERSION = '1.962';
use constant SSL_VERIFY_NONE => Net::SSLeay::VERIFY_NONE();
use constant SSL_VERIFY_PEER => Net::SSLeay::VERIFY_PEER();
@@ -58,7 +58,44 @@
my %DEFAULT_SSL_CLIENT_ARGS = (
%DEFAULT_SSL_ARGS,
- SSL_verify_mode => SSL_VERIFY_PEER
+ SSL_verify_mode => SSL_VERIFY_PEER,
+
+ # older versions of F5 BIG-IP hang when getting SSL client hello >255 bytes
+ # http://support.f5.com/kb/en-us/solutions/public/13000/000/sol13037.html
+ # http://guest:guest@rt.openssl.org/Ticket/Display.html?id=2771
+ # Debian works around this by disabling TLSv12 on the client side
+ # Chrome and IE11 use TLSv12 but use only a few ciphers, so that packet
+ # stays small enough
+ # The following list is taken from IE11, except that we don't do RC4-MD5,
+ # RC4-SHA is already bad enough. Also, we have a different sort order
+ # compared to IE11, because we put ciphers supporting forward secrecy on top
+
+ SSL_cipher_list => join(" ",
+ qw(
+ ECDHE-ECDSA-AES128-GCM-SHA256
+ ECDHE-ECDSA-AES128-SHA256
+ ECDHE-ECDSA-AES256-GCM-SHA384
+ ECDHE-ECDSA-AES256-SHA384
+ ECDHE-ECDSA-AES128-SHA
+ ECDHE-ECDSA-AES256-SHA
+ ECDHE-RSA-AES128-SHA256
+ ECDHE-RSA-AES128-SHA
+ ECDHE-RSA-AES256-SHA
+ DHE-DSS-AES128-SHA256
+ DHE-DSS-AES128-SHA
+ DHE-DSS-AES256-SHA256
+ DHE-DSS-AES256-SHA
+ AES128-SHA256
+ AES128-SHA
+ AES256-SHA256
+ AES256-SHA
+ EDH-DSS-DES-CBC3-SHA
+ DES-CBC3-SHA
+ RC4-SHA
+ ),
+ # just to make sure, that we don't accidentely add bad ciphers above
+ "!EXP !LOW !eNULL !aNULL !DES !MD5 !PSK !SRP"
+ )
);
my %DEFAULT_SSL_SERVER_ARGS = (
@@ -2489,11 +2526,18 @@
=item B<sysread( BUF, LEN, [ OFFSET ] )>
This function behaves from the outside the same as B<sysread> in other
-L<IO::Socket> objects. But in reality it reads not only LEN bytes from the
-underlying socket, but at least one SSL frame. It then returns up to LEN bytes
-it decrypted from the SSL frames. The rest of the decrypted bytes is buffered
-inside the SSL object and will be returned on further calls. So the next sysread
-might not even read from the underlying socket but just return buffered data.
+L<IO::Socket> objects, e.g. it returns at most LEN bytes of data.
+But in reality it reads not only LEN bytes from the underlying socket, but at
+a single SSL frame. It then returns up to LEN bytes it decrypted from this SSL
+frame. If the frame contained more data than requested it will return only LEN
+data, buffer the rest and return it on futher read calls.
+This means, that it might be possible to read data, even if the underlying
+socket is not readable, so using poll or select might not be sufficient.
+
+sysread will only return data from a single SSL frame, e.g. either the pending
+data from the already buffered frame or it will read a frame from the underlying
+socket and return the decrypted data. It will not return data spanning several
+SSL frames in a single call.
Also, calls to sysread might fail, because it must first finish an SSL
handshake.
@@ -2505,8 +2549,15 @@
=item B<syswrite( BUF, [ LEN, [ OFFSET ]] )>
This functions behaves from the outside the same as B<syswrite> in other
-L<IO::Socket> objects. But SSL specific behavior applies if used with
-non-blocking sockets. Pease read the specific section in this documentation.
+L<IO::Socket> objects, e.g. it will write at most LEN bytes to the socket, but
+there is no guarantee, that all LEN bytes are written. It will return the number
+of bytes written.
+syswrite will write all the data within a single SSL frame, which means, that
+no more than 16.384 bytes, which is the maximum size of an SSL frame, can be
+written at once.
+
+For non-blocking sockets SSL specific behavior applies.
+Pease read the specific section in this documentation.
=item B<peek( BUF, LEN, [ OFFSET ])>
@@ -2828,6 +2879,9 @@
you must check, if there are still data in the current SSL frame by calling
C<pending> and if there are no data pending you might check the underlying
socket with select or poll.
+Another way might be if you try to sysread at least 16k all the time. 16k is the
+maximum size of an SSL frame and because sysread returns data from only a single
+SSL frame you guarantee this way, that there are no pending data.
Please see the example on top of this documentation on how to use SSL within a
select loop.
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0