openSUSE Commits
Threads by month
- ----- 2024 -----
- 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
September 2015
- 1 participants
- 1128 discussions
Hello community,
here is the log from the commit of package rubygem-rails-i18n for openSUSE:Factory checked in at 2015-09-19 09:54:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rails-i18n (Old)
and /work/SRC/openSUSE:Factory/.rubygem-rails-i18n.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rails-i18n"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rails-i18n/rubygem-rails-i18n.changes 2015-03-01 14:47:48.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-rails-i18n.new/rubygem-rails-i18n.changes 2015-09-19 09:54:42.000000000 +0200
@@ -1,0 +2,26 @@
+Mon Sep 7 04:31:36 UTC 2015 - coolo(a)suse.com
+
+- updated to version 4.0.5
+ see installed CHANGELOG.md
+
+ ## 4.0.5 (2015-09-06)
+ - Update Portuguese (pt)
+ - Update Korean (ko)
+ - Update Dutch (nl)
+ - Update German (de, de-AT, de-CH)
+ - Update Spanish (es, es-AR, es-CL, es-CO, es-CR, es-PE, es-US, es-VE)
+ - Update French (fr-CA, fr-CH, fr)
+ - Add Luxembourgish (lb)
+ - Add Marathi (mr-IN)
+ - Update Swedish (sv)
+ - Update Arabic (ar)
+ - Update Finnish (fi)
+ - Add Uyghur (ug)
+ - Update Japanese (ja)
+ - Update Russian (ru)
+ - Add Greek transliteration rules (el)
+ - Update Hebrew (he)
+ - Update Italian (it)
+ - Update Greek (el)
+
+-------------------------------------------------------------------
Old:
----
rails-i18n-4.0.4.gem
New:
----
rails-i18n-4.0.5.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-rails-i18n.spec ++++++
--- /var/tmp/diff_new_pack.lpCeat/_old 2015-09-19 09:54:43.000000000 +0200
+++ /var/tmp/diff_new_pack.lpCeat/_new 2015-09-19 09:54:43.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-rails-i18n
-Version: 4.0.4
+Version: 4.0.5
Release: 0
%define mod_name rails-i18n
%define mod_full_name %{mod_name}-%{version}
++++++ rails-i18n-4.0.4.gem -> rails-i18n-4.0.5.gem ++++++
++++ 2025 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package fdupes for openSUSE:Factory checked in at 2015-09-19 07:56:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fdupes (Old)
and /work/SRC/openSUSE:Factory/.fdupes.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fdupes"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fdupes/fdupes.changes 2014-12-29 00:29:42.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fdupes.new/fdupes.changes 2015-09-19 07:56:24.000000000 +0200
@@ -1,0 +2,22 @@
+Tue Aug 4 13:01:47 UTC 2015 - tchvatal(a)suse.com
+
+- By default relink hardlinks too, should fix bnc#940296
+
+-------------------------------------------------------------------
+Mon Aug 3 19:26:55 UTC 2015 - tchvatal(a)suse.com
+
+- Update to upstream git repo on github
+- Refresh patches:
+ * fdupes-makefile.patch
+ * 0008-speedup-the-file-compare.patch
+ * 0010-add-permissions-mode.patch
+ * 0011-add-an-option-to-sort-duplicate-files-by-name.patch
+ * 50_bts284274_hardlinkreplace.dpatch
+- Upstreamed patch:
+ * 0004-Large-file-support-for-2GB-files-bts447601.patch
+- Remove whitespace from fdupes.macros file
+- Cleanup with spec-cleaner
+ - Obey rpm-opt-flags
+ - run test phase
+
+-------------------------------------------------------------------
Old:
----
0004-Large-file-support-for-2GB-files-bts447601.patch
fdupes-1.50-PR2.tar.gz
New:
----
fdupes-1.51.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fdupes.spec ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package fdupes (Version 1.40)
+# spec file for package fdupes
#
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,14 +15,15 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: fdupes
-Version: 1.50
+Version: 1.51
Release: 0
Summary: Identifying or deleting duplicate files
-Url: http://code.google.com/p/fdupes/
-Group: Productivity/Archiving/Compression
License: MIT
-Source0: http://fdupes.googlecode.com/files/fdupes-1.50-PR2.tar.gz
+Group: Productivity/Archiving/Compression
+Url: https://github.com/adrianlopezroche/fdupes
+Source0: https://github.com/adrianlopezroche/%{name}/archive/%{name}-%{version}.tar.…
Source1: macros.fdupes
#PATCH-FIX-SUSE: fix patch according distro's needs
Patch0: fdupes-makefile.patch
@@ -35,8 +36,6 @@
Patch2: 0002-Added-to-escape-minus-signs-in-manpage-lintian-warni.patch
#PATCH-FIX-DEBIAN: dtto
Patch3: 0003-Fix-a-typo-in-a-manpage-bts353789.patch
-#PATCH-FIX-DEBIAN: support for large files
-Patch4: 0004-Large-file-support-for-2GB-files-bts447601.patch
#PATCH-FIX-DEBIAN: manpage fix
Patch5: 0005-add-summarize-to-manpage-bts481809.patch
#PATCH-FIX-DEBIAN: dtto
@@ -53,24 +52,18 @@
Patch11: 0011-add-an-option-to-sort-duplicate-files-by-name.patch
#PATCH-FIX-DEBIAN: add -L/--linkhard
Patch20: 50_bts284274_hardlinkreplace.dpatch
-
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?centos_version} || 0%{?rhel_version} || 0%{?fedora_version}
-BuildRequires: which
-%endif
%description
FDUPES is a program for identifying or deleting duplicate files
residing within specified directories
%prep
-%setup -q -n %name-%{version}-PR2
+%setup -q -n %{name}-%{name}-%{version}
%patch0
-
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
@@ -81,16 +74,19 @@
%patch20 -p1
%build
-echo -e "#!/bin/bash\n`which %__cc` \"\$@\"" >gcc
-chmod 755 gcc
-export PATH=`pwd`:$PATH
-make %{?_smp_mflags}
+make %{?_smp_mflags} COMPILER_OPTIONS="%{optflags}"
%install
install -D -m755 %{name} %{buildroot}%{_bindir}/%{name}
install -D -m644 %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1
install -D -m644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rpm/macros.%{name}
+%check
+./%{name} testdir
+./%{name} --omitfirst testdir
+./%{name} --recurse testdir
+./%{name} --size testdir
+
%files
%defattr(-, root, root)
%doc CHANGES
++++++ 0008-speedup-the-file-compare.patch ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -10,11 +10,11 @@
fdupes.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
-diff --git a/fdupes.c b/fdupes.c
-index 1e9e620..678f31f 100644
---- a/fdupes.c
-+++ b/fdupes.c
-@@ -370,7 +370,7 @@ char *getcrcsignatureuntil(char *filename, off_t max_read)
+Index: fdupes-fdupes-1.51/fdupes.c
+===================================================================
+--- fdupes-fdupes-1.51.orig/fdupes.c
++++ fdupes-fdupes-1.51/fdupes.c
+@@ -370,7 +370,7 @@ char *getcrcsignatureuntil(char *filenam
}
while (fsize > 0) {
@@ -22,8 +22,8 @@
+ toread = (fsize >= CHUNK_SIZE) ? CHUNK_SIZE : fsize;
if (fread(chunk, toread, 1, file) != 1) {
errormsg("error reading from file %s\n", filename);
- fclose(file); // bugfix
-@@ -606,8 +606,8 @@ int confirmmatch(FILE *file1, FILE *file2)
+ fclose(file);
+@@ -606,8 +606,8 @@ int confirmmatch(FILE *file1, FILE *file
fseek(file2, 0, SEEK_SET);
do {
@@ -34,6 +34,3 @@
if (r1 != r2) return 0; /* file lengths are different */
if (memcmp (c1, c2, r1)) return 0; /* file contents are different */
---
-1.7.11.5
-
++++++ 0010-add-permissions-mode.patch ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -13,10 +13,10 @@
fdupes.c | 25 ++++++++++++++++++++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
-diff --git a/fdupes.1 b/fdupes.1
-index 9263adc..e0516f1 100644
---- a/fdupes.1
-+++ b/fdupes.1
+Index: fdupes-fdupes-1.51/fdupes.1
+===================================================================
+--- fdupes-fdupes-1.51.orig/fdupes.1
++++ fdupes-fdupes-1.51/fdupes.1
@@ -63,6 +63,9 @@ below)
when used together with \-\-delete, preserve the first file in each
set of duplicates and delete the others without prompting the user
@@ -27,10 +27,10 @@
.B -v --version
display fdupes version
.TP
-diff --git a/fdupes.c b/fdupes.c
-index 678f31f..b3275a9 100644
---- a/fdupes.c
-+++ b/fdupes.c
+Index: fdupes-fdupes-1.51/fdupes.c
+===================================================================
+--- fdupes-fdupes-1.51.orig/fdupes.c
++++ fdupes-fdupes-1.51/fdupes.c
@@ -53,6 +53,7 @@
#define F_NOPROMPT 0x0400
#define F_SUMMARIZEMATCHES 0x0800
@@ -39,7 +39,7 @@
char *program_name;
-@@ -481,6 +482,19 @@ int registerfile(filetree_t **branch, file_t *file)
+@@ -481,6 +482,19 @@ int registerfile(filetree_t **branch, fi
return 1;
}
@@ -59,7 +59,7 @@
file_t **checkmatch(filetree_t **root, filetree_t *checktree, file_t *file)
{
int cmpresult;
-@@ -503,6 +517,10 @@ file_t **checkmatch(filetree_t **root, filetree_t *checktree, file_t *file)
+@@ -503,6 +517,10 @@ file_t **checkmatch(filetree_t **root, f
cmpresult = -1;
else
if (fsize > checktree->file->size) cmpresult = 1;
@@ -70,15 +70,15 @@
else {
if (checktree->file->crcpartial == NULL) {
crcsignature = getcrcpartialsignature(checktree->file->d_name);
-@@ -976,6 +994,7 @@ void help_text()
+@@ -979,6 +997,7 @@ void help_text()
printf(" -N --noprompt \ttogether with --delete, preserve the first file in\n");
printf(" \teach set of duplicates and delete the rest without\n");
- printf(" \twithout prompting the user\n");
+ printf(" \tprompting the user\n");
+ printf(" -p --permissions \tdon't consider files with different owner/group or permission bits as duplicates\n");
printf(" -v --version \tdisplay fdupes version\n");
printf(" -h --help \tdisplay this help message\n\n");
#ifdef OMIT_GETOPT_LONG
-@@ -1019,6 +1038,7 @@ int main(int argc, char **argv) {
+@@ -1022,6 +1041,7 @@ int main(int argc, char **argv) {
{ "noprompt", 0, 0, 'N' },
{ "summarize", 0, 0, 'm'},
{ "summary", 0, 0, 'm' },
@@ -86,7 +86,7 @@
{ 0, 0, 0, 0 }
};
#define GETOPT getopt_long
-@@ -1030,7 +1050,7 @@ int main(int argc, char **argv) {
+@@ -1033,7 +1053,7 @@ int main(int argc, char **argv) {
oldargv = cloneargs(argc, argv);
@@ -95,7 +95,7 @@
#ifndef OMIT_GETOPT_LONG
, long_options, NULL
#endif
-@@ -1081,6 +1101,9 @@ int main(int argc, char **argv) {
+@@ -1084,6 +1104,9 @@ int main(int argc, char **argv) {
case 'm':
SETFLAG(flags, F_SUMMARIZEMATCHES);
break;
@@ -105,6 +105,3 @@
default:
fprintf(stderr, "Try `fdupes --help' for more information.\n");
---
-1.7.11.5
-
++++++ 0011-add-an-option-to-sort-duplicate-files-by-name.patch ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -12,11 +12,11 @@
fdupes.c | 30 ++++++++++++++++++++++++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
-diff --git a/fdupes.1 b/fdupes.1
-index e0516f1..b5fb0f6 100644
---- a/fdupes.1
-+++ b/fdupes.1
-@@ -66,6 +66,10 @@ set of duplicates and delete the others without prompting the user
+Index: fdupes-fdupes-1.51/fdupes.1
+===================================================================
+--- fdupes-fdupes-1.51.orig/fdupes.1
++++ fdupes-fdupes-1.51/fdupes.1
+@@ -66,6 +66,10 @@ set of duplicates and delete the others
.B -p --permissions
don't consider files with different owner/group or permission bits as duplicates
.TP
@@ -27,10 +27,10 @@
.B -v --version
display fdupes version
.TP
-diff --git a/fdupes.c b/fdupes.c
-index b6aeaa7..08f9e2c 100644
---- a/fdupes.c
-+++ b/fdupes.c
+Index: fdupes-fdupes-1.51/fdupes.c
+===================================================================
+--- fdupes-fdupes-1.51.orig/fdupes.c
++++ fdupes-fdupes-1.51/fdupes.c
@@ -55,6 +55,11 @@
#define F_EXCLUDEHIDDEN 0x1000
#define F_PERMISSIONS 0x2000
@@ -43,7 +43,7 @@
char *program_name;
unsigned long flags = 0;
-@@ -918,6 +923,11 @@ int sort_pairs_by_mtime(file_t *f1, file_t *f2)
+@@ -921,6 +926,11 @@ int sort_pairs_by_mtime(file_t *f1, file
return 0;
}
@@ -55,9 +55,9 @@
void registerpair(file_t **matchlist, file_t *newmatch,
int (*comparef)(file_t *f1, file_t *f2))
{
-@@ -995,6 +1005,9 @@ void help_text()
+@@ -998,6 +1008,9 @@ void help_text()
printf(" \teach set of duplicates and delete the rest without\n");
- printf(" \twithout prompting the user\n");
+ printf(" \tprompting the user\n");
printf(" -p --permissions \tdon't consider files with different owner/group or permission bits as duplicates\n");
+ printf(" -o --order \tselect sort order for output, linking and deleting. One of:\n");
+ printf(" time \torder by mtime (default)\n");
@@ -65,7 +65,7 @@
printf(" -v --version \tdisplay fdupes version\n");
printf(" -h --help \tdisplay this help message\n\n");
#ifdef OMIT_GETOPT_LONG
-@@ -1015,6 +1028,7 @@ int main(int argc, char **argv) {
+@@ -1018,6 +1031,7 @@ int main(int argc, char **argv) {
int progress = 0;
char **oldargv;
int firstrecurse;
@@ -73,7 +73,7 @@
#ifndef OMIT_GETOPT_LONG
static struct option long_options[] =
-@@ -1039,6 +1053,7 @@ int main(int argc, char **argv) {
+@@ -1042,6 +1056,7 @@ int main(int argc, char **argv) {
{ "summarize", 0, 0, 'm'},
{ "summary", 0, 0, 'm' },
{ "permissions", 0, 0, 'p' },
@@ -81,7 +81,7 @@
{ 0, 0, 0, 0 }
};
#define GETOPT getopt_long
-@@ -1050,7 +1065,7 @@ int main(int argc, char **argv) {
+@@ -1053,7 +1068,7 @@ int main(int argc, char **argv) {
oldargv = cloneargs(argc, argv);
@@ -90,7 +90,7 @@
#ifndef OMIT_GETOPT_LONG
, long_options, NULL
#endif
-@@ -1104,6 +1119,16 @@ int main(int argc, char **argv) {
+@@ -1107,6 +1122,16 @@ int main(int argc, char **argv) {
case 'p':
SETFLAG(flags, F_PERMISSIONS);
break;
@@ -107,7 +107,7 @@
default:
fprintf(stderr, "Try `fdupes --help' for more information.\n");
-@@ -1179,7 +1204,8 @@ int main(int argc, char **argv) {
+@@ -1182,7 +1207,8 @@ int main(int argc, char **argv) {
}
if (confirmmatch(file1, file2)) {
@@ -115,8 +115,5 @@
+ registerpair(match, curfile,
+ (ordertype == ORDER_TIME) ? sort_pairs_by_mtime : sort_pairs_by_filename );
- //match->hasdupes = 1;
- //curfile->duplicates = match->duplicates;
---
-1.8.4.5
-
+ /*match->hasdupes = 1;
+ curfile->duplicates = match->duplicates;
++++++ 50_bts284274_hardlinkreplace.dpatch ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -5,10 +5,10 @@
## DP: Replace duplicate files with hardlinks
@DPATCH@
-Index: fdupes-1.50-PR2/fdupes.c
+Index: fdupes-fdupes-1.51/fdupes.c
===================================================================
---- fdupes-1.50-PR2.orig/fdupes.c
-+++ fdupes-1.50-PR2/fdupes.c
+--- fdupes-fdupes-1.51.orig/fdupes.c
++++ fdupes-fdupes-1.51/fdupes.c
@@ -54,6 +54,8 @@
#define F_SUMMARIZEMATCHES 0x0800
#define F_EXCLUDEHIDDEN 0x1000
@@ -18,7 +18,7 @@
typedef enum {
ORDER_TIME = 0,
-@@ -904,6 +906,88 @@ void deletefiles(file_t *files, int prom
+@@ -908,6 +910,88 @@ void deletefiles(file_t *files, int prom
free(preservestr);
}
@@ -107,21 +107,21 @@
int sort_pairs_by_arrival(file_t *f1, file_t *f2)
{
if (f2->duplicates != 0)
-@@ -1000,10 +1084,12 @@ void help_text()
+@@ -1003,10 +1087,12 @@ void help_text()
printf(" \twith -s or --symlinks, or when specifying a\n");
printf(" \tparticular directory more than once; refer to the\n");
printf(" \tfdupes documentation for additional information\n");
-- //printf(" -l --relink \t(description)\n");
+- /*printf(" -l --relink \t(description)\n");*/
+ printf(" -L --linkhard \thardlink duplicate files to the first file in\n");
+ printf(" \teach set of duplicates without prompting the user\n");
printf(" -N --noprompt \ttogether with --delete, preserve the first file in\n");
printf(" \teach set of duplicates and delete the rest without\n");
- printf(" \twithout prompting the user\n");
+ printf(" \tprompting the user\n");
+ printf(" -D --debug \tenable debugging information\n");
printf(" -p --permissions \tdon't consider files with different owner/group or permission bits as duplicates\n");
printf(" -o --order \tselect sort order for output, linking and deleting. One of:\n");
printf(" time \torder by mtime (default)\n");
-@@ -1044,12 +1130,14 @@ int main(int argc, char **argv) {
+@@ -1047,12 +1133,14 @@ int main(int argc, char **argv) {
{ "symlinks", 0, 0, 's' },
{ "hardlinks", 0, 0, 'H' },
{ "relink", 0, 0, 'l' },
@@ -136,7 +136,7 @@
{ "summarize", 0, 0, 'm'},
{ "summary", 0, 0, 'm' },
{ "permissions", 0, 0, 'p' },
-@@ -1065,7 +1153,7 @@ int main(int argc, char **argv) {
+@@ -1068,7 +1156,7 @@ int main(int argc, char **argv) {
oldargv = cloneargs(argc, argv);
@@ -145,7 +145,7 @@
#ifndef OMIT_GETOPT_LONG
, long_options, NULL
#endif
-@@ -1104,6 +1192,12 @@ int main(int argc, char **argv) {
+@@ -1107,6 +1195,12 @@ int main(int argc, char **argv) {
case 'd':
SETFLAG(flags, F_DELETEFILES);
break;
@@ -158,7 +158,7 @@
case 'v':
printf("fdupes %s\n", VERSION);
exit(0);
-@@ -1151,6 +1245,16 @@ int main(int argc, char **argv) {
+@@ -1154,6 +1248,16 @@ int main(int argc, char **argv) {
exit(1);
}
@@ -175,7 +175,7 @@
if (ISFLAG(flags, F_RECURSEAFTER)) {
firstrecurse = nonoptafter("--recurse:", argc, oldargv, argv, optind);
-@@ -1237,12 +1341,23 @@ int main(int argc, char **argv) {
+@@ -1245,12 +1349,23 @@ int main(int argc, char **argv) {
else
@@ -204,10 +204,10 @@
while (files) {
curfile = files->next;
-Index: fdupes-1.50-PR2/fdupes.1
+Index: fdupes-fdupes-1.51/fdupes.1
===================================================================
---- fdupes-1.50-PR2.orig/fdupes.1
-+++ fdupes-1.50-PR2/fdupes.1
+--- fdupes-fdupes-1.51.orig/fdupes.1
++++ fdupes-fdupes-1.51/fdupes.1
@@ -59,10 +59,17 @@ prompt user for files to preserve, delet
.B CAVEATS
below)
++++++ fdupes-1.50-PR2.tar.gz -> fdupes-1.51.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fdupes-1.50-PR2/CHANGES new/fdupes-fdupes-1.51/CHANGES
--- old/fdupes-1.50-PR2/CHANGES 2007-04-08 04:58:40.000000000 +0200
+++ new/fdupes-fdupes-1.51/CHANGES 2013-04-20 20:21:46.000000000 +0200
@@ -7,8 +7,18 @@
contributors names and identifiers please see the CONTRIBUTORS file.
+Changes from 1.50 to 1.51
+
+- Added support for 64-bit file offsets on 32-bit systems.
+- Using tty for interactive input instead of regular stdin. This is to
+ allow feeding filenames via stdin in future versions of fdupes without
+ breaking interactive deletion feature.
+- Fixed some typos in --help.
+- Turned C++ style comments into C style comments.
+
Changes from 1.40 to 1.50-PR2
+- Fixed memory leak. [JB]
- Added "--summarize" option. [AL]
- Added "--recurse:" selective recursion option. [AL]
- Added "--noprompt" option for totally automated deletion of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fdupes-1.50-PR2/CONTRIBUTORS new/fdupes-fdupes-1.51/CONTRIBUTORS
--- old/fdupes-1.50-PR2/CONTRIBUTORS 2002-05-31 09:21:35.000000000 +0200
+++ new/fdupes-fdupes-1.51/CONTRIBUTORS 2013-04-20 20:21:46.000000000 +0200
@@ -8,6 +8,7 @@
[FD] Frank DENIS, a.k.a.
Jedi/Sector One, a.k.a.
DJ Chrysalis (j(a)4u.net)
+ [JB] Jean-Baptiste ()
[KK] Kresimir Kukulj (madmax(a)pc-hrvoje.srce.hr)
[LB] Laurent Bonnaud (Laurent.Bonnaud(a)iut2.upmf-grenoble.fr)
[LM] Luca Montecchiani (m.luca(a)iname.com)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fdupes-1.50-PR2/Makefile new/fdupes-fdupes-1.51/Makefile
--- old/fdupes-1.50-PR2/Makefile 2002-05-31 09:31:45.000000000 +0200
+++ new/fdupes-fdupes-1.51/Makefile 2013-04-20 20:21:46.000000000 +0200
@@ -14,6 +14,12 @@
PREFIX = /usr/local
#
+# When compiling for 32-bit systems, FILEOFFSET_64BIT must be enabled
+# for fdupes to handle files greater than (2<<31)-1 bytes.
+#
+FILEOFFSET_64BIT = -D_FILE_OFFSET_BITS=64
+
+#
# Certain platforms do not support long options (command line options).
# To disable long options, uncomment the following line.
#
@@ -74,7 +80,7 @@
CC = gcc
COMPILER_OPTIONS = -Wall -O -g
-CFLAGS= $(COMPILER_OPTIONS) -I. -DVERSION=\"$(VERSION)\" $(EXTERNAL_MD5) $(EXPERIMENTAL_RBTREE) $(OMIT_GETOPT_LONG)
+CFLAGS= $(COMPILER_OPTIONS) -I. -DVERSION=\"$(VERSION)\" $(EXTERNAL_MD5) $(OMIT_GETOPT_LONG) $(FILEOFFSET_64BIT)
INSTALL_PROGRAM = $(INSTALL) -c -m 0755
INSTALL_DATA = $(INSTALL) -c -m 0644
@@ -97,8 +103,8 @@
$(CC) $(CFLAGS) -o fdupes $(OBJECT_FILES)
installdirs:
- test -d $(BIN_DIR) || -$(MKDIR) $(BIN_DIR)
- test -d $(MAN_DIR) || -$(MKDIR) $(MAN_DIR)
+ test -d $(BIN_DIR) || $(MKDIR) $(BIN_DIR)
+ test -d $(MAN_DIR) || $(MKDIR) $(MAN_DIR)
install: fdupes installdirs
$(INSTALL_PROGRAM) fdupes $(BIN_DIR)/$(PROGRAM_NAME)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fdupes-1.50-PR2/Makefile.inc/VERSION new/fdupes-fdupes-1.51/Makefile.inc/VERSION
--- old/fdupes-1.50-PR2/Makefile.inc/VERSION 2002-05-29 04:44:29.000000000 +0200
+++ new/fdupes-fdupes-1.51/Makefile.inc/VERSION 2013-04-20 20:21:46.000000000 +0200
@@ -2,4 +2,4 @@
# VERSION determines the program's version number.
#
-VERSION = 1.50-PR2
+VERSION = 1.51
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fdupes-1.50-PR2/fdupes.c new/fdupes-fdupes-1.51/fdupes.c
--- old/fdupes-1.50-PR2/fdupes.c 2007-04-08 04:53:24.000000000 +0200
+++ new/fdupes-fdupes-1.51/fdupes.c 2013-04-20 20:21:46.000000000 +0200
@@ -359,7 +359,7 @@
toread = (fsize % CHUNK_SIZE) ? (fsize % CHUNK_SIZE) : CHUNK_SIZE;
if (fread(chunk, toread, 1, file) != 1) {
errormsg("error reading from file %s\n", filename);
- fclose(file); // bugfix
+ fclose(file);
return NULL;
}
md5_append(&state, chunk, toread);
@@ -515,7 +515,7 @@
}
cmpresult = strcmp(file->crcpartial, checktree->file->crcpartial);
- //if (cmpresult != 0) errormsg(" on %s vs %s\n", file->d_name, checktree->file->d_name);
+ /*if (cmpresult != 0) errormsg(" on %s vs %s\n", file->d_name, checktree->file->d_name);*/
if (cmpresult == 0) {
if (checktree->file->crcsignature == NULL) {
@@ -543,11 +543,11 @@
}
cmpresult = strcmp(file->crcsignature, checktree->file->crcsignature);
- //if (cmpresult != 0) errormsg("P on %s vs %s\n",
- //file->d_name, checktree->file->d_name);
- //else errormsg("P F on %s vs %s\n", file->d_name,
- //checktree->file->d_name);
- //printf("%s matches %s\n", file->d_name, checktree->file->d_name);
+ /*if (cmpresult != 0) errormsg("P on %s vs %s\n",
+ file->d_name, checktree->file->d_name);
+ else errormsg("P F on %s vs %s\n", file->d_name,
+ checktree->file->d_name);
+ printf("%s matches %s\n", file->d_name, checktree->file->d_name);*/
}
}
@@ -643,7 +643,7 @@
while (files != NULL) {
if (files->hasdupes) {
if (!ISFLAG(flags, F_OMITFIRST)) {
- if (ISFLAG(flags, F_SHOWSIZE)) printf("%ld byte%seach:\n", files->size,
+ if (ISFLAG(flags, F_SHOWSIZE)) printf("%lld byte%seach:\n", files->size,
(files->size != 1) ? "s " : " ");
if (ISFLAG(flags, F_DSAMELINE)) escapefilename("\\ ", &files->d_name);
printf("%s%c", files->d_name, ISFLAG(flags, F_DSAMELINE)?' ':'\n');
@@ -709,17 +709,17 @@
if (link(oldfile, newfile) != 0)
return 0;
- // make sure we're working with the right file (the one we created)
+ /* make sure we're working with the right file (the one we created) */
nd = getdevice(newfile);
ni = getinode(newfile);
if (nd != od || oi != ni)
- return 0; // file is not what we expected
+ return 0; /* file is not what we expected */
return 1;
}
-void deletefiles(file_t *files, int prompt)
+void deletefiles(file_t *files, int prompt, FILE *tty)
{
int counter;
int groups = 0;
@@ -796,12 +796,13 @@
do {
printf("Set %d of %d, preserve files [1 - %d, all]",
curgroup, groups, counter);
- if (ISFLAG(flags, F_SHOWSIZE)) printf(" (%ld byte%seach)", files->size,
+ if (ISFLAG(flags, F_SHOWSIZE)) printf(" (%lld byte%seach)", files->size,
(files->size != 1) ? "s " : " ");
printf(": ");
fflush(stdout);
- fgets(preservestr, INPUT_SIZE, stdin);
+ if (!fgets(preservestr, INPUT_SIZE, tty))
+ preservestr[0] = '\n'; /* treat fgets() failure as if nothing was entered */
i = strlen(preservestr) - 1;
@@ -814,8 +815,11 @@
}
preservestr = tstr;
- if (!fgets(preservestr + i + 1, INPUT_SIZE, stdin))
- break; /* stop if fgets fails -- possible EOF? */
+ if (!fgets(preservestr + i + 1, INPUT_SIZE, tty))
+ {
+ preservestr[0] = '\n'; /* treat fgets() failure as if nothing was entered */
+ break;
+ }
i = strlen(preservestr)-1;
}
@@ -877,7 +881,6 @@
else if (f1->mtime > f2->mtime)
return 1;
- //return sort_pairs_by_arrival(f1, f2);
return 0;
}
@@ -899,10 +902,10 @@
if (back == 0)
{
- *matchlist = newmatch; // update pointer to head of list
+ *matchlist = newmatch; /* update pointer to head of list */
newmatch->hasdupes = 1;
- traverse->hasdupes = 0; // flag is only for first file in dupe chain
+ traverse->hasdupes = 0; /* flag is only for first file in dupe chain */
}
else
back->duplicates = newmatch;
@@ -951,10 +954,10 @@
printf(" \twith -s or --symlinks, or when specifying a\n");
printf(" \tparticular directory more than once; refer to the\n");
printf(" \tfdupes documentation for additional information\n");
- //printf(" -l --relink \t(description)\n");
+ /*printf(" -l --relink \t(description)\n");*/
printf(" -N --noprompt \ttogether with --delete, preserve the first file in\n");
printf(" \teach set of duplicates and delete the rest without\n");
- printf(" \twithout prompting the user\n");
+ printf(" \tprompting the user\n");
printf(" -v --version \tdisplay fdupes version\n");
printf(" -h --help \tdisplay this help message\n\n");
#ifdef OMIT_GETOPT_LONG
@@ -1133,9 +1136,9 @@
if (confirmmatch(file1, file2)) {
registerpair(match, curfile, sort_pairs_by_mtime);
- //match->hasdupes = 1;
- //curfile->duplicates = match->duplicates;
- //match->duplicates = curfile;
+ /*match->hasdupes = 1;
+ curfile->duplicates = match->duplicates;
+ match->duplicates = curfile;*/
}
fclose(file1);
@@ -1156,9 +1159,14 @@
if (ISFLAG(flags, F_DELETEFILES))
{
if (ISFLAG(flags, F_NOPROMPT))
- deletefiles(files, 0);
+ {
+ deletefiles(files, 0, 0);
+ }
else
- deletefiles(files, 1);
+ {
+ stdin = freopen("/dev/tty", "r", stdin);
+ deletefiles(files, 1, stdin);
+ }
}
else
@@ -1173,10 +1181,17 @@
while (files) {
curfile = files->next;
free(files->d_name);
+ free(files->crcsignature);
+ free(files->crcpartial);
free(files);
files = curfile;
}
-
+
+ for (x = 0; x < argc; x++)
+ free(oldargv[x]);
+
+ free(oldargv);
+
purgetree(checktree);
return 0;
++++++ fdupes-makefile.patch ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -1,7 +1,7 @@
Index: Makefile
===================================================================
---- Makefile.orig 2002-05-31 09:31:45.000000000 +0200
-+++ Makefile 2012-10-12 11:46:35.152408642 +0200
+--- Makefile.orig
++++ Makefile
@@ -11,7 +11,7 @@
# determination of the actual installation directories.
# Suggested values are "/usr/local", "/usr", "/pkgs/fdupes-$(VERSION)"
@@ -10,8 +10,8 @@
+PREFIX = /usr
#
- # Certain platforms do not support long options (command line options).
-@@ -50,7 +50,7 @@
+ # When compiling for 32-bit systems, FILEOFFSET_64BIT must be enabled
+@@ -56,7 +56,7 @@ BIN_DIR = $(PREFIX)/bin
# MAN_DIR indicates directory where the fdupes man page is to be
# installed. Suggested value is "$(PREFIX)/man/man1"
#
++++++ macros.fdupes ++++++
--- /var/tmp/diff_new_pack.uARldX/_old 2015-09-19 07:56:26.000000000 +0200
+++ /var/tmp/diff_new_pack.uARldX/_new 2015-09-19 07:56:26.000000000 +0200
@@ -1,9 +1,8 @@
-
%fdupes(s) \
_target=""; \
_symlinks=0; \
%{-s:_symlinks=1;} \
- fdupes -q -p -n -o name -r %1 | \
+ fdupes -q -p -n -H -o name -r %1 | \
while read _file; do \
if test -z "$_target" ; then \
_target="$_file"; \
@@ -20,4 +19,3 @@
fi ; \
done \
%{nil}
-
1
0
Hello community,
here is the log from the commit of package yast2-dns-server for openSUSE:Factory checked in at 2015-09-19 06:55:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-dns-server (Old)
and /work/SRC/openSUSE:Factory/.yast2-dns-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-dns-server"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-dns-server/yast2-dns-server.changes 2015-08-05 06:52:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-dns-server.new/yast2-dns-server.changes 2015-09-19 06:55:58.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Sep 4 11:49:22 UTC 2015 - mvidner(a)suse.com
+
+- Fix "Unescaped left brace in regex is deprecated" (boo#944490).
+- 3.1.16
+
+-------------------------------------------------------------------
Old:
----
yast2-dns-server-3.1.15.tar.bz2
New:
----
yast2-dns-server-3.1.16.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-dns-server.spec ++++++
--- /var/tmp/diff_new_pack.gXDVYD/_old 2015-09-19 06:55:58.000000000 +0200
+++ /var/tmp/diff_new_pack.gXDVYD/_new 2015-09-19 06:55:58.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-dns-server
-Version: 3.1.15
+Version: 3.1.16
Release: 0
Url: https://github.com/yast/yast-dns-server
++++++ yast2-dns-server-3.1.15.tar.bz2 -> yast2-dns-server-3.1.16.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-dns-server-3.1.15/package/yast2-dns-server.changes new/yast2-dns-server-3.1.16/package/yast2-dns-server.changes
--- old/yast2-dns-server-3.1.15/package/yast2-dns-server.changes 2015-08-04 14:11:10.000000000 +0200
+++ new/yast2-dns-server-3.1.16/package/yast2-dns-server.changes 2015-09-18 15:21:10.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Sep 4 11:49:22 UTC 2015 - mvidner(a)suse.com
+
+- Fix "Unescaped left brace in regex is deprecated" (boo#944490).
+- 3.1.16
+
+-------------------------------------------------------------------
Tue Aug 4 08:49:23 UTC 2015 - ancor(a)suse.com
- Added automated tests for some CLI commands (bnc#940466)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-dns-server-3.1.15/package/yast2-dns-server.spec new/yast2-dns-server-3.1.16/package/yast2-dns-server.spec
--- old/yast2-dns-server-3.1.15/package/yast2-dns-server.spec 2015-08-04 14:11:10.000000000 +0200
+++ new/yast2-dns-server-3.1.16/package/yast2-dns-server.spec 2015-09-18 15:21:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-dns-server
-Version: 3.1.15
+Version: 3.1.16
Release: 0
Url: https://github.com/yast/yast-dns-server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-dns-server-3.1.15/src/modules/DnsTsigKeys.pm new/yast2-dns-server-3.1.16/src/modules/DnsTsigKeys.pm
--- old/yast2-dns-server-3.1.15/src/modules/DnsTsigKeys.pm 2015-08-04 14:11:10.000000000 +0200
+++ new/yast2-dns-server-3.1.16/src/modules/DnsTsigKeys.pm 2015-09-18 15:21:10.000000000 +0200
@@ -94,7 +94,7 @@
$filename = "/etc/named.d/$filename";
}
my $contents = SCR->Read (".target.string", $filename);
- if (defined $contents && $contents =~ /.*key[ \t]+([^ \t}{;]+).* {/)
+ if (defined $contents && $contents =~ /.*key[ \t]+([^ \t}{;]+).* \{/)
{
return [$1];
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-dns-server-3.1.15/src/servers_non_y2/ag_named_forwarders new/yast2-dns-server-3.1.16/src/servers_non_y2/ag_named_forwarders
--- old/yast2-dns-server-3.1.15/src/servers_non_y2/ag_named_forwarders 2015-08-04 14:11:10.000000000 +0200
+++ new/yast2-dns-server-3.1.16/src/servers_non_y2/ag_named_forwarders 2015-09-18 15:21:10.000000000 +0200
@@ -62,7 +62,7 @@
$line =~ s/#.*//;
$forwarders_string .= $line;
}
- if ($forwarders_string =~ /forwarders[ \t]*({[^{}]*})/) {
+ if ($forwarders_string =~ /forwarders[ \t]*(\{[^{}]*\})/) {
$forwarders = $1;
}
1
0
Hello community,
here is the log from the commit of package mate-polkit for openSUSE:Factory checked in at 2015-09-19 06:55:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-polkit (Old)
and /work/SRC/openSUSE:Factory/.mate-polkit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mate-polkit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-polkit/mate-polkit.changes 2015-09-03 18:09:58.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mate-polkit.new/mate-polkit.changes 2015-09-19 06:55:56.000000000 +0200
@@ -1,0 +2,11 @@
+Fri Sep 18 09:54:15 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 1.10.2:
+ * Return error when authentication dialog is dismissed.
+ * Optionally use accountsservice to retrieve face.
+ * Add support for autorestart.
+ * Select the current user to authenticate by default.
+ * Add support for application indicators.
+ * Gtk3: Auth dialog: make the label wrap at 50 chars.
+
+-------------------------------------------------------------------
Old:
----
mate-polkit-1.10.1.tar.xz
New:
----
mate-polkit-1.10.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mate-polkit.spec ++++++
--- /var/tmp/diff_new_pack.xN9U5z/_old 2015-09-19 06:55:57.000000000 +0200
+++ /var/tmp/diff_new_pack.xN9U5z/_new 2015-09-19 06:55:57.000000000 +0200
@@ -21,7 +21,7 @@
%define _name polkit-mate-1
%define _version 1.10
Name: mate-polkit
-Version: 1.10.1
+Version: 1.10.2
Release: 0
Summary: MATE authentification agent for polkit
License: LGPL-2.0+
++++++ mate-polkit-1.10.1.tar.xz -> mate-polkit-1.10.2.tar.xz ++++++
++++ 22530 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package vtkdata for openSUSE:Factory checked in at 2015-09-19 06:55:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vtkdata (Old)
and /work/SRC/openSUSE:Factory/.vtkdata.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vtkdata"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vtkdata/vtkdata.changes 2015-03-25 10:01:07.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.vtkdata.new/vtkdata.changes 2015-09-19 06:55:51.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Sep 12 15:11:25 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 6.3.0:
+ + No detailed changelog available.
+
+-------------------------------------------------------------------
Old:
----
VTKData-6.2.0.tar.gz
New:
----
VTKData-6.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vtkdata.spec ++++++
--- /var/tmp/diff_new_pack.AidR9A/_old 2015-09-19 06:55:56.000000000 +0200
+++ /var/tmp/diff_new_pack.AidR9A/_new 2015-09-19 06:55:56.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package vtkdata
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
Name: vtkdata
-Version: 6.2.0
+Version: 6.3.0
Release: 0
-%define series 6.2
+%define series 6.3
Summary: Kitware VTK Library Data
License: BSD-3-Clause
Group: Productivity/Scientific/Other
++++++ VTKData-6.2.0.tar.gz -> VTKData-6.3.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/vtkdata/VTKData-6.2.0.tar.gz /work/SRC/openSUSE:Factory/.vtkdata.new/VTKData-6.3.0.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package vtk for openSUSE:Factory checked in at 2015-09-19 06:55:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vtk (Old)
and /work/SRC/openSUSE:Factory/.vtk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vtk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vtk/vtk.changes 2015-08-21 07:40:49.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.vtk.new/vtk.changes 2015-09-19 06:55:44.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Sep 18 09:11:38 UTC 2015 - badshah400(a)gmail.com
+
+- vtkdata should be a Recommends for vtk-examples, not Requires.
+
+-------------------------------------------------------------------
+Mon Aug 31 07:39:10 UTC 2015 - badshah400(a)gmail.com
+
+- Update to version 6.3.0:
+ - See list of changes at
+ http://www.vtk.org/Bug/changelog_page.php?version_id=118
+ or blog post at
+ http://www.kitware.com/blog/home/post/963.
+
+-------------------------------------------------------------------
Old:
----
VTK-6.2.0.tar.gz
New:
----
VTK-6.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vtk.spec ++++++
--- /var/tmp/diff_new_pack.Yb6MDa/_old 2015-09-19 06:55:46.000000000 +0200
+++ /var/tmp/diff_new_pack.Yb6MDa/_new 2015-09-19 06:55:46.000000000 +0200
@@ -17,9 +17,9 @@
Name: vtk
-Version: 6.2.0
+Version: 6.3.0
Release: 0
-%define series 6.2
+%define series 6.3
# This is a variant BSD license, a cross between BSD and ZLIB.
# For all intents, it has the same rights and restrictions as BSD.
# http://fedoraproject.org/wiki/Licensing/BSD#VTKBSDVariant
@@ -230,7 +230,7 @@
Summary: Examples for VTK
Group: Productivity/Scientific/Other
Requires: %{name} = %{version}
-Requires: %{name}data = %{version}
+Recommends: %{name}data = %{version}
%description examples
VTK is an open-source software system for image processing, 3D
++++++ VTK-6.2.0.tar.gz -> VTK-6.3.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/vtk/VTK-6.2.0.tar.gz /work/SRC/openSUSE:Factory/.vtk.new/VTK-6.3.0.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package fparser for openSUSE:Factory checked in at 2015-09-19 06:55:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fparser (Old)
and /work/SRC/openSUSE:Factory/.fparser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fparser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fparser/fparser.changes 2013-03-08 09:09:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fparser.new/fparser.changes 2015-09-19 06:55:41.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Sep 11 08:07:19 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 4.5.2
+ * Fixed several optimizer bugs.
+ * Fixed compilation problems with Visual Studio 2013 and gcc.
+- Use url for source
+
+-------------------------------------------------------------------
Old:
----
fparser-4.5.1.tar.xz
New:
----
fparser4.5.2.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fparser.spec ++++++
--- /var/tmp/diff_new_pack.nKidcO/_old 2015-09-19 06:55:43.000000000 +0200
+++ /var/tmp/diff_new_pack.nKidcO/_new 2015-09-19 06:55:43.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package fparser
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,15 @@
Name: fparser
-%define lname libfparser-4_5_1
+%define lname libfparser-4_5_2
Summary: Library to evaluate strings as mathematical functions
License: LGPL-3.0
Group: Development/Libraries/C and C++
-Version: 4.5.1
+Version: 4.5.2
Release: 0
Url: http://warp.povusers.org/FunctionParser/
-Source: %name-%version.tar.xz
+Source: http://warp.povusers.org/FunctionParser/%name%version.zip
Patch1: fparser-build-system.diff
Patch2: fparser-gmp-mpfr.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -34,7 +34,7 @@
BuildRequires: libtool
BuildRequires: mpfr-devel >= 2.4
BuildRequires: pkgconfig
-BuildRequires: xz
+BuildRequires: unzip
%description
This C++ library offers a class which can be used to parse and
@@ -76,7 +76,7 @@
mathematical expressions in a scripting language.
%prep
-%setup -q
+%setup -q -c -n %name%version
ln -s mpfr fparser;
%patch -P 1 -P 2 -p1
@@ -93,7 +93,7 @@
%files -n %lname
%defattr(-,root,root)
-%_libdir/libfparser-%version.so
+%_libdir/libfparser-*.so
%files devel
%defattr(-,root,root)
++++++ fparser-build-system.diff ++++++
--- /var/tmp/diff_new_pack.nKidcO/_old 2015-09-19 06:55:43.000000000 +0200
+++ /var/tmp/diff_new_pack.nKidcO/_new 2015-09-19 06:55:43.000000000 +0200
@@ -29,7 +29,7 @@
--- /dev/null
+++ fparser-4.5.0/configure.ac
@@ -0,0 +1,8 @@
-+AC_INIT([fparser], [4.5.1])
++AC_INIT([fparser], [4.5.2])
+AC_CONFIG_SRCDIR([extrasrc/fpaux.hh])
+AM_INIT_AUTOMAKE([-Wall foreign])
+AC_DISABLE_STATIC
++++++ fparser-gmp-mpfr.diff ++++++
--- /var/tmp/diff_new_pack.nKidcO/_old 2015-09-19 06:55:43.000000000 +0200
+++ /var/tmp/diff_new_pack.nKidcO/_new 2015-09-19 06:55:43.000000000 +0200
@@ -10,10 +10,10 @@
fparser_mpfr.hh | 2 +-
4 files changed, 29 insertions(+), 4 deletions(-)
-Index: fparser-4.5.1/Makefile.am
+Index: fparser4.5.2/Makefile.am
===================================================================
---- fparser-4.5.1.orig/Makefile.am
-+++ fparser-4.5.1/Makefile.am
+--- fparser4.5.2.orig/Makefile.am
++++ fparser4.5.2/Makefile.am
@@ -1,11 +1,29 @@
# -*- Makefile -*-
@@ -45,12 +45,12 @@
pkgconfigdir = ${libdir}/pkgconfig
pkgconfig_DATA = fparser.pc
-Index: fparser-4.5.1/configure.ac
+Index: fparser4.5.2/configure.ac
===================================================================
---- fparser-4.5.1.orig/configure.ac
-+++ fparser-4.5.1/configure.ac
+--- fparser4.5.2.orig/configure.ac
++++ fparser4.5.2/configure.ac
@@ -1,8 +1,15 @@
- AC_INIT([fparser], [4.5.1])
+ AC_INIT([fparser], [4.5.2])
AC_CONFIG_SRCDIR([extrasrc/fpaux.hh])
-AM_INIT_AUTOMAKE([-Wall foreign])
+AM_INIT_AUTOMAKE([-Wall foreign 1.10])
@@ -66,10 +66,10 @@
+
AC_CONFIG_FILES([Makefile fparser.pc])
AC_OUTPUT
-Index: fparser-4.5.1/fparser_gmpint.hh
+Index: fparser4.5.2/fparser_gmpint.hh
===================================================================
---- fparser-4.5.1.orig/fparser_gmpint.hh
-+++ fparser-4.5.1/fparser_gmpint.hh
+--- fparser4.5.2.orig/fparser_gmpint.hh
++++ fparser4.5.2/fparser_gmpint.hh
@@ -8,7 +8,7 @@
#define ONCE_FPARSER_GMPINT_H_
@@ -79,10 +79,10 @@
class FunctionParser_gmpint: public FunctionParserBase<GmpInt> {};
-Index: fparser-4.5.1/fparser_mpfr.hh
+Index: fparser4.5.2/fparser_mpfr.hh
===================================================================
---- fparser-4.5.1.orig/fparser_mpfr.hh
-+++ fparser-4.5.1/fparser_mpfr.hh
+--- fparser4.5.2.orig/fparser_mpfr.hh
++++ fparser4.5.2/fparser_mpfr.hh
@@ -8,7 +8,7 @@
#define ONCE_FPARSER_MPFR_H_
1
0
Hello community,
here is the log from the commit of package darktable for openSUSE:Factory checked in at 2015-09-19 06:55:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/darktable (Old)
and /work/SRC/openSUSE:Factory/.darktable.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "darktable"
Changes:
--------
--- /work/SRC/openSUSE:Factory/darktable/darktable.changes 2015-08-01 11:38:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.darktable.new/darktable.changes 2015-09-19 06:55:40.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Sep 16 17:25:23 UTC 2015 - fcrozat(a)suse.com
+
+- Adapt BuildRequires for build on openSUSE Leap 42.1.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ darktable.spec ++++++
--- /var/tmp/diff_new_pack.Mcg8Gd/_old 2015-09-19 06:55:41.000000000 +0200
+++ /var/tmp/diff_new_pack.Mcg8Gd/_new 2015-09-19 06:55:41.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package darktable
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 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
@@ -65,11 +65,11 @@
ExclusiveArch: %ix86 x86_64
%if 0%{?suse_version} > 1220
-BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(libsecret-1)
+BuildRequires: pkgconfig(libwebp)
%endif
-%if 0%{?suse_version} < 1320
+%if 0%{?suse_version} < 1315
BuildRequires: libGraphicsMagick3
%endif
1
0
Hello community,
here is the log from the commit of package trinity for openSUSE:Factory checked in at 2015-09-19 06:55:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trinity (Old)
and /work/SRC/openSUSE:Factory/.trinity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trinity"
Changes:
--------
--- /work/SRC/openSUSE:Factory/trinity/trinity.changes 2015-08-21 07:42:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes 2015-09-19 06:55:39.000000000 +0200
@@ -1,0 +2,5 @@
+Thu Sep 17 14:22:00 UTC 2015 - mpluskal(a)suse.com
+
+- Update to 20150905
+
+-------------------------------------------------------------------
Old:
----
trinity-20150804.tar.xz
New:
----
trinity-20150905.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ trinity.spec ++++++
--- /var/tmp/diff_new_pack.wsz01X/_old 2015-09-19 06:55:40.000000000 +0200
+++ /var/tmp/diff_new_pack.wsz01X/_new 2015-09-19 06:55:40.000000000 +0200
@@ -17,7 +17,7 @@
Name: trinity
-Version: 20150804
+Version: 20150905
Release: 0
Summary: A Linux System call fuzz tester
License: GPL-2.0
++++++ trinity-20150804.tar.xz -> trinity-20150905.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/child.c new/trinity-20150905/child.c
--- old/trinity-20150804/child.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/child.c 2015-09-17 16:21:20.000000000 +0200
@@ -173,6 +173,9 @@
cpu_set_t set;
unsigned int cpudest;
+ if (no_bind_to_cpu == TRUE)
+ return;
+
if (sched_getaffinity(child->pid, sizeof(set), &set) != 0)
return;
@@ -374,7 +377,6 @@
*/
void child_process(void)
{
- const char *lastop = NULL;
int ret;
ret = sigsetjmp(ret_jump, 1);
@@ -398,6 +400,8 @@
i = rand() % ARRAY_SIZE(child_ops);
if (rand() % 100 <= child_ops[i].likelyhood) {
+ const char *lastop = NULL;
+
if (lastop != child_ops[i].name) {
//output(0, "Chose %s.\n", child_ops[i].name);
lastop = child_ops[i].name;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/children/random-syscalls.c new/trinity-20150905/children/random-syscalls.c
--- old/trinity-20150804/children/random-syscalls.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/children/random-syscalls.c 2015-09-17 16:21:20.000000000 +0200
@@ -146,6 +146,8 @@
}
if (old != 0) {
+ // FIXME: Should factor in loadavg here, as with enough pids, a child can exceed 60s
+ // without getting scheduled.
if (rec->tv.tv_sec - old > 60) {
output(0, "Sanity check failed. Something stomped on rec->tv after syscall:%s(%lx, %lx, %lx) was:%lx now:%lx.\n",
print_syscall_name(syscallnr, do32),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/fds/fds.c new/trinity-20150905/fds/fds.c
--- old/trinity-20150804/fds/fds.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/fds/fds.c 2015-09-17 16:21:20.000000000 +0200
@@ -68,18 +68,15 @@
list_for_each(node, &fd_providers->list) {
struct fd_provider *provider;
- int ret;
provider = (struct fd_provider *) node;
if (provider->enabled == FALSE)
continue;
- ret = provider->open();
- if (ret == FALSE)
- return FALSE;
-
- num_fd_providers_enabled++;
+ provider->enabled = provider->open();
+ if (provider->enabled == TRUE)
+ num_fd_providers_enabled++;
}
output(0, "Enabled %d fd providers.\n", num_fd_providers_enabled);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/fds/files.c new/trinity-20150905/fds/files.c
--- old/trinity-20150804/fds/files.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/fds/files.c 2015-09-17 16:21:20.000000000 +0200
@@ -47,7 +47,7 @@
"/proc/sysrq-trigger", "/proc/kmem", "/proc/kcore",
/* dangerous/noisy/annoying stuff in /dev */
- "/dev/log", "/dev/mem", "/dev/kmsg",
+ "/dev/log", "/dev/mem", "/dev/kmsg", "/dev/kmem",
NULL
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/fds/sockets.c new/trinity-20150905/fds/sockets.c
--- old/trinity-20150804/fds/sockets.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/fds/sockets.c 2015-09-17 16:21:20.000000000 +0200
@@ -68,8 +68,6 @@
output(2, "fd[%i] = domain:%u (%s) type:0x%u protocol:%u %s\n",
fd, domain, get_domain_name(domain), type, protocol,
accepted ? "[accepted]" : "");
-
- nr_sockets++;
}
static int open_socket(unsigned int domain, unsigned int type, unsigned int protocol)
@@ -88,6 +86,11 @@
/* Set some random socket options. */
sso_socket(&shm->sockets[nr_sockets].triplet, &so, fd);
+ nr_sockets++;
+
+ if (nr_sockets == NR_SOCKET_FDS)
+ goto skip_bind;
+
/* Sometimes, listen on created sockets. */
if (RAND_BOOL()) {
int ret, one = 1;
@@ -104,8 +107,10 @@
(void) listen(fd, RAND_RANGE(1, 128));
// ret = accept4(fd, sa, &salen, SOCK_NONBLOCK);
-// if (ret != -1)
+// if (ret != -1) {
// add_socket(ret, domain, type, protocol, TRUE);
+// nr_sockets++;
+// }
}
skip_bind:
@@ -220,7 +225,6 @@
{
int fd, n, ret = FALSE;
int cachefile;
- unsigned int nr_to_create = NR_SOCKET_FDS;
cachefile = creat(cachefilename, S_IWUSR|S_IRUSR);
if (cachefile == -1)
@@ -238,55 +242,49 @@
}
if (n >= (int)ARRAY_SIZE(no_domains))
- nr_to_create = 0;
+ goto done;
}
- while (nr_to_create > 0) {
-
+ while (nr_sockets < NR_SOCKET_FDS) {
struct socket_triplet st;
- for (st.family = 0; st.family < TRINITY_PF_MAX; st.family++) {
+ st.family = rand() % TRINITY_PF_MAX;
- /* check for ctrl-c again. */
- if (shm->exit_reason != STILL_RUNNING)
- goto out_unlock;
+ /* check for ctrl-c again. */
+ if (shm->exit_reason != STILL_RUNNING)
+ goto out_unlock;
+
+ if (do_specific_domain == TRUE) {
+ st.family = specific_domain;
+ //FIXME: If we've passed -P and we're spinning here without making progress
+ // then we should abort after a few hundred loops.
+ }
- if (do_specific_domain == TRUE) {
- st.family = specific_domain;
- //FIXME: If we've passed -P and we're spinning here without making progress
- // then we should abort after a few hundred loops.
- }
+ if (get_domain_name(st.family) == NULL)
+ continue;
- if (get_domain_name(st.family) == NULL)
+ if (valid_proto(st.family) == FALSE) {
+ if (do_specific_domain == TRUE) {
+ outputerr("Can't do protocol %s\n", get_domain_name(st.family));
+ goto out_unlock;
+ } else {
continue;
-
- if (valid_proto(st.family) == FALSE) {
- if (do_specific_domain == TRUE) {
- outputerr("Can't do protocol %s\n", get_domain_name(st.family));
- goto out_unlock;
- } else {
- continue;
- }
}
+ }
- BUG_ON(st.family >= ARRAY_SIZE(no_domains));
- if (no_domains[st.family])
- continue;
-
- if (sanitise_socket_triplet(&st) == -1)
- rand_proto_type(&st);
-
- fd = open_socket(st.family, st.type, st.protocol);
- if (fd > -1) {
- if (write_socket_to_cache(cachefile, &st) == FALSE)
- goto out_unlock;
-
- nr_to_create--;
- if (nr_to_create == 0)
- goto done;
- } else {
- //outputerr("Couldn't open family:%d (%s)\n", st.family, get_domain_name(st.family));
- }
+ BUG_ON(st.family >= ARRAY_SIZE(no_domains));
+ if (no_domains[st.family])
+ continue;
+
+ if (sanitise_socket_triplet(&st) == -1)
+ rand_proto_type(&st);
+
+ fd = open_socket(st.family, st.type, st.protocol);
+ if (fd > -1) {
+ if (write_socket_to_cache(cachefile, &st) == FALSE)
+ goto out_unlock;
+ } else {
+ //outputerr("Couldn't open family:%d (%s)\n", st.family, get_domain_name(st.family));
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/generate-args.c new/trinity-20150905/generate-args.c
--- old/trinity-20150804/generate-args.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/generate-args.c 2015-09-17 16:21:20.000000000 +0200
@@ -418,14 +418,21 @@
lock(&rec->lock);
+ //TODO: instead of rand64() do a rand arg type
entry = syscalls[rec->nr].entry;
rec->state = PREP;
- rec->a1 = (unsigned long) rand64();
- rec->a2 = (unsigned long) rand64();
- rec->a3 = (unsigned long) rand64();
- rec->a4 = (unsigned long) rand64();
- rec->a5 = (unsigned long) rand64();
- rec->a6 = (unsigned long) rand64();
+ if (entry->arg1type == ARG_UNDEFINED)
+ rec->a1 = (unsigned long) rand64();
+ if (entry->arg2type == ARG_UNDEFINED)
+ rec->a2 = (unsigned long) rand64();
+ if (entry->arg3type == ARG_UNDEFINED)
+ rec->a3 = (unsigned long) rand64();
+ if (entry->arg4type == ARG_UNDEFINED)
+ rec->a4 = (unsigned long) rand64();
+ if (entry->arg5type == ARG_UNDEFINED)
+ rec->a5 = (unsigned long) rand64();
+ if (entry->arg6type == ARG_UNDEFINED)
+ rec->a6 = (unsigned long) rand64();
generic_sanitise(rec);
if (entry->sanitise)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/compat.h new/trinity-20150905/include/compat.h
--- old/trinity-20150804/include/compat.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/compat.h 2015-09-17 16:21:20.000000000 +0200
@@ -262,6 +262,9 @@
#ifndef NETLINK_LIST_MEMBERSHIPS
#define NETLINK_LIST_MEMBERSHIPS 9
#endif
+#ifndef NETLINK_CAP_ACK
+#define NETLINK_CAP_ACK 10
+#endif
/* linux/prctl.h */
#ifndef PR_MCE_KILL_GET
@@ -280,6 +283,9 @@
#ifndef PR_SET_NO_NEW_PRIVS
#define PR_SET_NO_NEW_PRIVS 38
#define PR_GET_NO_NEW_PRIVS 39
+#endif
+
+#ifndef PR_GET_TID_ADDRESS
#define PR_GET_TID_ADDRESS 40
#endif
@@ -300,6 +306,11 @@
#endif
#endif
+#ifndef PR_CAP_AMBIENT
+#define PR_CAP_AMBIENT 47
+#endif
+
+
/* linux/rds.h */
#ifndef RDS_CANCEL_SENT_TO
#define RDS_CANCEL_SENT_TO 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/random.h new/trinity-20150905/include/random.h
--- old/trinity-20150804/include/random.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/random.h 2015-09-17 16:21:20.000000000 +0200
@@ -7,7 +7,7 @@
#define ONE_IN(x) ((rand() % x) == 0) // limit of RAND_MAX-1
#if RAND_MAX == 0x7FFFFFFF
-#define RAND_32() ((rand() << 1) | (rand() & 1))
+#define RAND_32() rand()
#define RAND_64() (((0ULL | rand()) << 33) | ((0ULL | rand()) << 2) | (rand() & 0x3))
#else
#error "Unexpected RAND_MAX value. Please add support."
@@ -23,6 +23,7 @@
void reseed(void);
unsigned int new_seed(void);
+bool init_random(void);
void generate_rand_bytes(unsigned char *ptr, unsigned int len);
unsigned int rand32(void);
u64 rand64(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/syscalls-i386.h new/trinity-20150905/include/syscalls-i386.h
--- old/trinity-20150804/include/syscalls-i386.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/syscalls-i386.h 2015-09-17 16:21:20.000000000 +0200
@@ -366,4 +366,20 @@
{ .entry = &syscall_memfd_create },
{ .entry = &syscall_bpf },
{ .entry = &syscall_execveat },
+ { .entry = &syscall_socket },
+ { .entry = &syscall_socketpair },
+ { .entry = &syscall_bind },
+ { .entry = &syscall_connect },
+ { .entry = &syscall_listen },
+ { .entry = &syscall_accept4 },
+ { .entry = &syscall_getsockopt },
+ { .entry = &syscall_setsockopt },
+ { .entry = &syscall_getsockname },
+ { .entry = &syscall_getpeername },
+ { .entry = &syscall_sendto },
+ { .entry = &syscall_sendmsg },
+ { .entry = &syscall_recvfrom },
+ { .entry = &syscall_recvmsg },
+ { .entry = &syscall_shutdown },
+ { .entry = &syscall_userfaultfd },
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/syscalls-s390.h new/trinity-20150905/include/syscalls-s390.h
--- old/trinity-20150804/include/syscalls-s390.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/syscalls-s390.h 2015-09-17 16:21:20.000000000 +0200
@@ -275,9 +275,9 @@
{ .entry = &syscall_statfs64 },
{ .entry = &syscall_fstatfs64 },
{ .entry = &syscall_remap_file_pages },
- { .entry = &syscall_ni_syscall },
- { .entry = &syscall_ni_syscall },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_mbind },
+ { .entry = &syscall_get_mempolicy },
+ { .entry = &syscall_set_mempolicy },
{ .entry = &syscall_mq_open },
{ .entry = &syscall_mq_unlink },
{ .entry = &syscall_mq_timedsend },
@@ -294,7 +294,7 @@
{ .entry = &syscall_inotify_init },
{ .entry = &syscall_inotify_add_watch },
{ .entry = &syscall_inotify_rm_watch },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_migrate_pages },
{ .entry = &syscall_openat },
{ .entry = &syscall_mkdirat },
{ .entry = &syscall_mknodat },
@@ -317,7 +317,7 @@
{ .entry = &syscall_sync_file_range },
{ .entry = &syscall_tee },
{ .entry = &syscall_vmsplice },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_move_pages },
{ .entry = &syscall_getcpu },
{ .entry = &syscall_epoll_pwait },
{ .entry = &syscall_utimes },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/syscalls-s390x.h new/trinity-20150905/include/syscalls-s390x.h
--- old/trinity-20150804/include/syscalls-s390x.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/syscalls-s390x.h 2015-09-17 16:21:20.000000000 +0200
@@ -275,9 +275,9 @@
{ .entry = &syscall_statfs64 },
{ .entry = &syscall_fstatfs64 },
{ .entry = &syscall_remap_file_pages },
- { .entry = &syscall_ni_syscall },
- { .entry = &syscall_ni_syscall },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_mbind },
+ { .entry = &syscall_get_mempolicy },
+ { .entry = &syscall_set_mempolicy },
{ .entry = &syscall_mq_open },
{ .entry = &syscall_mq_unlink },
{ .entry = &syscall_mq_timedsend },
@@ -294,7 +294,7 @@
{ .entry = &syscall_inotify_init },
{ .entry = &syscall_inotify_add_watch },
{ .entry = &syscall_inotify_rm_watch },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_migrate_pages },
{ .entry = &syscall_openat },
{ .entry = &syscall_mkdirat },
{ .entry = &syscall_mknodat },
@@ -317,7 +317,7 @@
{ .entry = &syscall_sync_file_range },
{ .entry = &syscall_tee },
{ .entry = &syscall_vmsplice },
- { .entry = &syscall_ni_syscall },
+ { .entry = &syscall_move_pages },
{ .entry = &syscall_getcpu },
{ .entry = &syscall_epoll_pwait },
{ .entry = &syscall_utimes },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/syscalls-x86_64.h new/trinity-20150905/include/syscalls-x86_64.h
--- old/trinity-20150804/include/syscalls-x86_64.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/syscalls-x86_64.h 2015-09-17 16:21:20.000000000 +0200
@@ -330,4 +330,5 @@
{ .entry = &syscall_kexec_file_load },
{ .entry = &syscall_bpf },
{ .entry = &syscall_execveat },
+ { .entry = &syscall_userfaultfd },
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/include/trinity.h new/trinity-20150905/include/trinity.h
--- old/trinity-20150804/include/trinity.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/include/trinity.h 2015-09-17 16:21:20.000000000 +0200
@@ -4,6 +4,7 @@
#include "syscall.h"
extern unsigned int num_online_cpus;
+extern bool no_bind_to_cpu;
extern char *progname;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/mm/fault-write.c new/trinity-20150905/mm/fault-write.c
--- old/trinity-20150804/mm/fault-write.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/mm/fault-write.c 2015-09-17 16:21:20.000000000 +0200
@@ -25,16 +25,22 @@
/* 4 byte (32bit) 8 byte (64bit) alignment */
if (i & ~((__WORDSIZE / 8) - 1)) {
- unsigned long val;
+ unsigned long val = 0;
i += sizeof(unsigned long);
if (i > page_size)
return;
- if (RAND_BOOL())
- val = rand64();
- else
- val = (unsigned long) get_address();
+ switch (rand() % 4) {
+ case 0: val = rand64();
+ break;
+ case 1: val = (unsigned long) get_address();
+ break;
+ case 2: val = (unsigned long) ptr;
+ break;
+ case 3: val = get_len();
+ break;
+ }
*(unsigned long *)ptr = val;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/net/proto-alg.c new/trinity-20150905/net/proto-alg.c
--- old/trinity-20150804/net/proto-alg.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/net/proto-alg.c 2015-09-17 16:21:20.000000000 +0200
@@ -38,6 +38,8 @@
strncpy((char *)alg->salg_name, hashes[i], len);
break;
case 2:
+ snprintf((char *)alg->salg_type, 8, "skcipher");
+ snprintf((char *)alg->salg_name, 8, "cbc(aes)");
break;
case 3:
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/net/proto-decnet.c new/trinity-20150905/net/proto-decnet.c
--- old/trinity-20150804/net/proto-decnet.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/net/proto-decnet.c 2015-09-17 16:21:20.000000000 +0200
@@ -22,7 +22,7 @@
dn->sdn_objnamel = rand() % 16;
for (i = 0; i < dn->sdn_objnamel; i++)
dn->sdn_objname[i] = rand();
- dn->sdn_add.a_len = rand() % 2;
+ dn->sdn_add.a_len = RAND_BOOL();
dn->sdn_add.a_addr[0] = rand();
dn->sdn_add.a_addr[1] = rand();
*addr = (struct sockaddr *) dn;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/net/proto-netlink.c new/trinity-20150905/net/proto-netlink.c
--- old/trinity-20150804/net/proto-netlink.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/net/proto-netlink.c 2015-09-17 16:21:20.000000000 +0200
@@ -49,7 +49,8 @@
static const unsigned int netlink_opts[] = {
NETLINK_ADD_MEMBERSHIP, NETLINK_DROP_MEMBERSHIP, NETLINK_PKTINFO, NETLINK_BROADCAST_ERROR,
- NETLINK_NO_ENOBUFS, NETLINK_RX_RING, NETLINK_TX_RING,
+ NETLINK_NO_ENOBUFS, NETLINK_RX_RING, NETLINK_TX_RING, NETLINK_LISTEN_ALL_NSID,
+ NETLINK_LIST_MEMBERSHIPS, NETLINK_CAP_ACK,
};
void netlink_setsockopt(struct sockopt *so)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/rand/interesting-numbers.c new/trinity-20150905/rand/interesting-numbers.c
--- old/trinity-20150804/rand/interesting-numbers.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/rand/interesting-numbers.c 2015-09-17 16:21:20.000000000 +0200
@@ -46,7 +46,7 @@
switch (rand() % 10) {
case 0: return 0x80000000 >> (rand() & 0x1f); // 2^n (1 -> 0x10000)
case 1: return rand(); // 0 -> RAND_MAX (likely 0x7fffffff)
- case 2: return 0xff << (rand() % 25);
+ case 2: return (unsigned int) 0xff << (4 * (rand() % 7));
case 3: return 0xffff0000;
case 4: return 0xffffe000;
case 5: return 0xffffff00 | RAND_BYTE();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/rand/random-length.c new/trinity-20150905/rand/random-length.c
--- old/trinity-20150804/rand/random-length.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/rand/random-length.c 2015-09-17 16:21:20.000000000 +0200
@@ -9,10 +9,11 @@
int i = 0;
if (RAND_BOOL()) {
- switch (rand() % 3) {
+ switch (rand() % 4) {
case 0: return sizeof(char);
case 1: return sizeof(int);
case 2: return sizeof(long);
+ case 3: return page_size;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/rand/random-pathname.c new/trinity-20150905/rand/random-pathname.c
--- old/trinity-20150804/rand/random-pathname.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/rand/random-pathname.c 2015-09-17 16:21:20.000000000 +0200
@@ -1,8 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "log.h"
-#include "maps.h"
#include "random.h"
#include "sanitise.h"
#include "utils.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/rand/random.c new/trinity-20150905/rand/random.c
--- old/trinity-20150804/rand/random.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/rand/random.c 2015-09-17 16:21:20.000000000 +0200
@@ -16,12 +16,11 @@
void generate_rand_bytes(unsigned char *ptr, unsigned int len)
{
unsigned int i;
- unsigned char choice = rand() % 3;
unsigned int startoffset = 0, remain;
- unsigned char separators[3] = { ' ', '-', '\0' };
+ unsigned char separators[] = { ':', ',', '.', ' ', '-', '\0', };
unsigned char separator;
- switch (choice) {
+ switch (rand() % 3) {
case 0:
/* Complete garbage. */
for (i = 0; i < len; i++)
@@ -35,7 +34,7 @@
case 2:
/* numbers (for now, decimal only) */
- separator = separators[rand() % 3];
+ separator = separators[rand() % sizeof(separators)];
remain = len;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/rand/seed.c new/trinity-20150905/rand/seed.c
--- old/trinity-20150804/rand/seed.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/rand/seed.c 2015-09-17 16:21:20.000000000 +0200
@@ -23,6 +23,7 @@
#include <unistd.h>
#include <stdlib.h>
#include <sys/stat.h>
+#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include "shm.h"
@@ -30,30 +31,59 @@
#include "pids.h"
#include "log.h"
#include "random.h"
+#include "utils.h"
+
+static int urandomfd;
/* The actual seed lives in the shm. This variable is used
* to store what gets passed in from the command line -s argument */
unsigned int seed = 0;
-unsigned int new_seed(void)
+static int fallbackseed(void)
{
- int fd;
struct timeval t;
unsigned int r;
- if ((fd = open("/dev/urandom", O_RDONLY)) < 0 ||
- read(fd, &r, sizeof(r)) != sizeof(r)) {
- r = rand();
- if (!(RAND_BOOL())) {
- gettimeofday(&t, NULL);
- r |= t.tv_usec;
- }
+ //printf("Fell back to gtod seed! errno:%s\n", strerror(errno));
+ r = rand();
+ if (!(RAND_BOOL())) {
+ gettimeofday(&t, NULL);
+ r |= t.tv_usec;
}
- if (fd >= 0)
- close(fd);
return r;
}
+unsigned int new_seed(void)
+{
+ unsigned int r, bits;
+
+ if (urandomfd == -1)
+ return fallbackseed();
+
+ if (read(urandomfd, &r, sizeof(r)) != sizeof(r))
+ return fallbackseed();
+
+ if (read(urandomfd, &bits, sizeof(bits)) != sizeof(bits))
+ return fallbackseed();
+
+ bits %= 31;
+ bits = max(bits, 8U);
+ r &= ((1 << bits) -1);
+
+ //printf("new seed:%u\n", r);
+ return r;
+}
+
+bool init_random(void)
+{
+ urandomfd = open("/dev/urandom", O_RDONLY);
+ if (urandomfd == -1) {
+ printf("urandom: %s\n", strerror(errno));
+ return FALSE;
+ }
+ return TRUE;
+}
+
/*
* If we passed in a seed with -s, use that. Otherwise make one up from time of day.
*/
@@ -90,6 +120,7 @@
/* if not in child context, we must be main. */
if (child == NULL) {
+// printf("Setting shm seed:%u\n", shm->seed);
srand(shm->seed);
return;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/shm.c new/trinity-20150905/shm.c
--- old/trinity-20150804/shm.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/shm.c 2015-09-17 16:21:20.000000000 +0200
@@ -75,6 +75,11 @@
childptrslen &= PAGE_MASK;
shm->children = memalign(page_size, childptrslen);
+ if (shm->children == NULL) {
+ printf("Failed to allocate child structures.\n");
+ exit(EXIT_FAILURE);
+ }
+
memset(shm->children, 0, childptrslen);
/* We allocate the childdata structs as shared mappings, because
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/signals.c new/trinity-20150905/signals.c
--- old/trinity-20150804/signals.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/signals.c 2015-09-17 16:21:20.000000000 +0200
@@ -85,6 +85,8 @@
/* we want default behaviour for child process signals */
(void)signal(SIGFPE, SIG_DFL);
(void)signal(SIGCHLD, SIG_DFL);
+ (void)signal(SIGABRT, SIG_DFL);
+ (void)signal(SIGSEGV, SIG_DFL);
(void)signal(SIGINT, ctrlc_handler);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/mmap.c new/trinity-20150905/syscalls/mmap.c
--- old/trinity-20150804/syscalls/mmap.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/mmap.c 2015-09-17 16:21:20.000000000 +0200
@@ -50,15 +50,11 @@
}
while (getline(&buffer, &n, fp) >= 0) {
- unsigned int free;
+ unsigned long long free;
- if (sscanf(buffer, "MemFree: %u", &free) == 1) {
- unsigned long long freegb;
-
- freegb = free / 1024;
-
- if (freegb < GB(8ULL)) {
- printf("Free memory: %.2fGB\n", (double) freegb / 1024);
+ if (sscanf(buffer, "MemFree: %llu", &free) == 1) {
+ if ((free * 1024) < GB(8ULL)) {
+ printf("Free memory: %.2fGB\n", (double) free / 1024 / 1024);
printf("Low on memory, disabling mmaping of 1GB pages\n");
sizes[5] = page_size;
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/move_pages.c new/trinity-20150905/syscalls/move_pages.c
--- old/trinity-20150804/syscalls/move_pages.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/move_pages.c 2015-09-17 16:21:20.000000000 +0200
@@ -49,7 +49,7 @@
/* nodes = array of ints specifying desired location for each page */
nodes = calloc(count, sizeof(int));
for (i = 0; i < count; i++)
- nodes[i] = (int) rand() % 2;
+ nodes[i] = (int) RAND_BOOL();
rec->a4 = (unsigned long) nodes;
/* status = array of ints returning status of each page.*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/munmap.c new/trinity-20150905/syscalls/munmap.c
--- old/trinity-20150804/syscalls/munmap.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/munmap.c 2015-09-17 16:21:20.000000000 +0200
@@ -17,41 +17,36 @@
static void sanitise_munmap(struct syscallrecord *rec)
{
- unsigned long len;
- unsigned long nr_pages;
- unsigned long offset, offsetpagenr;
-
map = common_set_mmap_ptr_len();
action = 0;
- switch (rand() % 20) {
- case 0:
+ if (ONE_IN(20) == TRUE) {
/* delete the whole mapping. */
action = WHOLE;
return;
+ }
- case 1 ... 10:
+ if (RAND_BOOL()) {
/* unmap a range of the mapping. */
+ unsigned long nr_pages;
+ unsigned long offset, offsetpagenr;
+ unsigned long len;
+
nr_pages = map->size / page_size;
- offsetpagenr = (rand() % nr_pages);
+ offsetpagenr = rand() % nr_pages;
offset = offsetpagenr * page_size;
rec->a1 = (unsigned long) map->ptr + offset;
len = (rand() % (nr_pages - offsetpagenr)) + 1;
len *= page_size;
rec->a2 = len;
- return;
-
- case 11 ... 19:
+ } else {
/* just unmap 1 page of the mapping. */
+
rec->a1 = (unsigned long) map->ptr;
rec->a1 += (rand() % map->size) & PAGE_MASK;
rec->a2 = page_size;
- return;
-
- default:
- break;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/open.c new/trinity-20150905/syscalls/open.c
--- old/trinity-20150804/syscalls/open.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/open.c 2015-09-17 16:21:20.000000000 +0200
@@ -31,11 +31,39 @@
return mask;
}
+static void sanitise_open(struct syscallrecord *rec)
+{
+ unsigned long flags;
+
+ flags = get_o_flags();
+
+ rec->a2 |= flags;
+
+ if (rec->a2 & O_CREAT)
+ rec->a3 = 0666;
+
+ if (rec->a2 & O_TMPFILE)
+ rec->a3 = 0666;
+}
+
+static void sanitise_openat(struct syscallrecord *rec)
+{
+ unsigned long flags;
+
+ flags = get_o_flags();
+
+ rec->a3 |= flags;
+
+ if (rec->a3 & O_CREAT)
+ rec->a4 = 0666;
+
+ if (rec->a3 & O_TMPFILE)
+ rec->a4 = 0666;
+}
+
/*
* SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
*/
-static void sanitise_open(struct syscallrecord *rec);
-
struct syscallentry syscall_open = {
.name = "open",
.num_args = 3,
@@ -52,20 +80,9 @@
.sanitise = sanitise_open,
};
-static void sanitise_open(struct syscallrecord *rec)
-{
- unsigned long flags;
-
- flags = get_o_flags();
-
- rec->a2 |= flags;
-}
-
/*
* SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags, int, mode)
*/
-static void sanitise_openat(struct syscallrecord *rec);
-
struct syscallentry syscall_openat = {
.name = "openat",
.num_args = 4,
@@ -85,15 +102,6 @@
.sanitise = sanitise_openat,
};
-static void sanitise_openat(struct syscallrecord *rec)
-{
- unsigned long flags;
-
- flags = get_o_flags();
-
- rec->a3 |= flags;
-}
-
/*
* SYSCALL_DEFINE3(open_by_handle_at, int, mountdirfd,
* struct file_handle __user *, handle,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/perf_event_open.c new/trinity-20150905/syscalls/perf_event_open.c
--- old/trinity-20150804/syscalls/perf_event_open.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/perf_event_open.c 2015-09-17 16:21:20.000000000 +0200
@@ -934,7 +934,7 @@
long long branch_sample = 0;
- if (rand() % 2)
+ if (RAND_BOOL())
return rand64();
if (RAND_BOOL())
@@ -1232,16 +1232,12 @@
/* requires ROOT to select specific CPU if pid==-1 (all processes) */
/* -1 means all CPUs */
- switch(rand() % 2) {
- case 0:
+ if (RAND_BOOL()) {
/* Any CPU */
rec->a3 = -1;
- break;
- case 1:
+ } else {
/* Default to the get_cpu() value */
/* set by ARG_CPU */
- default:
- break;
}
/* group_fd */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/prctl.c new/trinity-20150905/syscalls/prctl.c
--- old/trinity-20150804/syscalls/prctl.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/prctl.c 2015-09-17 16:21:20.000000000 +0200
@@ -36,6 +36,7 @@
#ifdef __mips__
GET_FP_MODE, SET_FP_MODE,
#endif
+ PR_CAP_AMBIENT,
};
#define NR_PRCTL_OPTS ARRAY_SIZE(prctl_opts)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/select.c new/trinity-20150905/syscalls/select.c
--- old/trinity-20150804/syscalls/select.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/select.c 2015-09-17 16:21:20.000000000 +0200
@@ -31,9 +31,9 @@
/* set some random fd's. */
for (i = 0; i < rand32() % 10; i++) {
- FD_SET(rand32() % 1024, rfds);
- FD_SET(rand32() % 1024, wfds);
- FD_SET(rand32() % 1024, exfds);
+ FD_SET(rand32() % (__NFDBITS - 1), rfds);
+ FD_SET(rand32() % (__NFDBITS - 1), wfds);
+ FD_SET(rand32() % (__NFDBITS - 1), exfds);
}
rec->a2 = (unsigned long) rfds;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/setsockopt.c new/trinity-20150905/syscalls/setsockopt.c
--- old/trinity-20150804/syscalls/setsockopt.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/setsockopt.c 2015-09-17 16:21:20.000000000 +0200
@@ -35,39 +35,38 @@
#include "compat.h"
struct ip_sso_funcptr {
- unsigned int proto;
unsigned int sol;
void (*func)(struct sockopt *so);
};
static const struct ip_sso_funcptr ip_ssoptrs[] = {
- { .proto = IPPROTO_IP, .sol = SOL_IP, .func = &ip_setsockopt },
- { .proto = IPPROTO_ICMP, .func = NULL },
- { .proto = IPPROTO_IGMP, .func = NULL },
- { .proto = IPPROTO_IPIP, .func = NULL },
- { .proto = IPPROTO_TCP, .sol = SOL_TCP, .func = &tcp_setsockopt },
- { .proto = IPPROTO_EGP, .func = NULL },
- { .proto = IPPROTO_PUP, .func = NULL },
- { .proto = IPPROTO_UDP, .sol = SOL_UDP, .func = &udp_setsockopt },
- { .proto = IPPROTO_IDP, .func = NULL },
- { .proto = IPPROTO_TP, .func = NULL },
- { .proto = IPPROTO_DCCP, .sol = SOL_DCCP, .func = &dccp_setsockopt },
+ [IPPROTO_IP] = { .sol = SOL_IP, .func = &ip_setsockopt },
+ [IPPROTO_ICMP] = { .func = NULL },
+ [IPPROTO_IGMP] = { .func = NULL },
+ [IPPROTO_IPIP] = { .func = NULL },
+ [IPPROTO_TCP] = { .sol = SOL_TCP, .func = &tcp_setsockopt },
+ [IPPROTO_EGP] = { .func = NULL },
+ [IPPROTO_PUP] = { .func = NULL },
+ [IPPROTO_UDP] = { .sol = SOL_UDP, .func = &udp_setsockopt },
+ [IPPROTO_IDP] = { .func = NULL },
+ [IPPROTO_TP] = { .func = NULL },
+ [IPPROTO_DCCP] = { .sol = SOL_DCCP, .func = &dccp_setsockopt },
#ifdef USE_IPV6
- { .proto = IPPROTO_IPV6, .sol = SOL_ICMPV6, .func = &icmpv6_setsockopt },
+ [IPPROTO_IPV6] = { .sol = SOL_ICMPV6, .func = &icmpv6_setsockopt },
#endif
- { .proto = IPPROTO_RSVP, .func = NULL },
- { .proto = IPPROTO_GRE, .func = NULL },
- { .proto = IPPROTO_ESP, .func = NULL },
- { .proto = IPPROTO_AH, .func = NULL },
- { .proto = IPPROTO_MTP, .func = NULL },
- { .proto = IPPROTO_BEETPH, .func = NULL },
- { .proto = IPPROTO_ENCAP, .func = NULL },
- { .proto = IPPROTO_PIM, .func = NULL },
- { .proto = IPPROTO_COMP, .func = NULL },
- { .proto = IPPROTO_SCTP, .sol = SOL_SCTP, .func = &sctp_setsockopt },
- { .proto = IPPROTO_UDPLITE, .sol = SOL_UDPLITE, .func = &udplite_setsockopt },
- { .proto = IPPROTO_RAW, .sol = SOL_RAW, .func = &raw_setsockopt },
- { .proto = IPPROTO_MPLS, .func = NULL },
+ [IPPROTO_RSVP] = { .func = NULL },
+ [IPPROTO_GRE] = { .func = NULL },
+ [IPPROTO_ESP] = { .func = NULL },
+ [IPPROTO_AH] = { .func = NULL },
+ [IPPROTO_MTP] = { .func = NULL },
+ [IPPROTO_BEETPH] = { .func = NULL },
+ [IPPROTO_ENCAP] = { .func = NULL },
+ [IPPROTO_PIM] = { .func = NULL },
+ [IPPROTO_COMP] = { .func = NULL },
+ [IPPROTO_SCTP] = { .sol = SOL_SCTP, .func = &sctp_setsockopt },
+ [IPPROTO_UDPLITE] = { .sol = SOL_UDPLITE, .func = &udplite_setsockopt },
+ [IPPROTO_RAW] = { .sol = SOL_RAW, .func = &raw_setsockopt },
+ [IPPROTO_MPLS] = { .func = NULL },
};
struct sso_funcptr {
@@ -207,19 +206,15 @@
static void call_inet_sso_ptr(struct sockopt *so, struct socket_triplet *triplet)
{
- unsigned int i;
+ int proto = triplet->protocol;
- for (i = 0; i < ARRAY_SIZE(ip_ssoptrs); i++) {
- if (ip_ssoptrs[i].proto == triplet->protocol) {
- if (ip_ssoptrs[i].func != NULL) {
- so->level = ip_ssoptrs[i].sol;
- ip_ssoptrs[i].func(so);
- return;
- } else { // unimplemented yet, or no sso for this proto.
- do_random_sso(so);
- return;
- }
- }
+ if (ip_ssoptrs[proto].func != NULL) {
+ so->level = ip_ssoptrs[proto].sol;
+ ip_ssoptrs[proto].func(so);
+ return;
+ } else { // unimplemented yet, or no sso for this proto.
+ do_random_sso(so);
+ return;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/socket.c new/trinity-20150905/syscalls/socket.c
--- old/trinity-20150804/syscalls/socket.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/socket.c 2015-09-17 16:21:20.000000000 +0200
@@ -19,56 +19,56 @@
#include "compat.h"
struct socket_ptr {
- unsigned int family;
void (*func)(struct socket_triplet *st);
};
+
static const struct socket_ptr socketptrs[] = {
- { .family = AF_UNIX, .func = &unix_rand_socket },
- { .family = AF_INET, .func = &inet_rand_socket },
- { .family = AF_AX25, .func = &ax25_rand_socket },
- { .family = AF_IPX, .func = &ipx_rand_socket },
+ [AF_UNIX] = { .func = &unix_rand_socket },
+ [AF_INET] = { .func = &inet_rand_socket },
+ [AF_AX25] = { .func = &ax25_rand_socket },
+ [AF_IPX] = { .func = &ipx_rand_socket },
#ifdef USE_APPLETALK
- { .family = AF_APPLETALK, .func = &atalk_rand_socket },
+ [AF_APPLETALK] = { .func = &atalk_rand_socket },
#endif
-//TODO { .family = AF_NETROM, .func = &netrom_rand_socket },
-//TODO { .family = AF_BRIDGE, .func = &bridge_rand_socket },
-//TODO { .family = AF_ATMPVC, .func = &atmpvc_rand_socket },
- { .family = AF_X25, .func = &x25_rand_socket },
+ [AF_NETROM] = { .func = NULL },
+ [AF_BRIDGE] = { .func = NULL },
+ [AF_ATMPVC] = { .func = NULL },
+ [AF_X25] = { .func = &x25_rand_socket },
#ifdef USE_IPV6
- { .family = AF_INET6, .func = &inet6_rand_socket },
+ [AF_INET6] = { .func = &inet6_rand_socket },
#endif
-//TODO { .family = AF_ROSE, .func = &rose_rand_socket },
- { .family = AF_DECnet, .func = &decnet_rand_socket },
-//TODO { .family = AF_NETBEUI, .func = &netbeui_rand_socket },
-//TODO { .family = AF_SECURITY, .func = &security_rand_socket },
-//TODO { .family = AF_KEY, .func = &key_rand_socket },
- { .family = AF_NETLINK, .func = &netlink_rand_socket },
- { .family = AF_PACKET, .func = &packet_rand_socket },
-//TODO { .family = AF_ASH, .func = &ash_rand_socket },
-//DEAD { .family = AF_ECONET, .func = &econet_rand_socket },
-//TODO { .family = AF_ATMSVC, .func = &atmsvc_rand_socket },
- { .family = AF_RDS, .func = &rds_rand_socket },
-//TODO { .family = AF_SNA, .func = &sna_rand_socket },
- { .family = AF_IRDA, .func = &irda_rand_socket },
-//TODO { .family = AF_PPPOX, .func = &pppox_rand_socket },
-//TODO { .family = AF_WANPIPE, .func = &wanpipe_rand_socket },
- { .family = AF_LLC, .func = &llc_rand_socket },
-//TODO { .family = AF_IB, .func = &ib_rand_socket },
-//TODO { .family = AF_MPLS, .func = &mpls_rand_socket },
- { .family = AF_CAN, .func = &can_rand_socket },
- { .family = AF_TIPC, .func = &tipc_rand_socket },
-//TODO { .family = AF_BLUETOOTH, .func = &bluetooth_rand_socket },
-//TODO { .family = AF_IUCV, .func = &iucv_rand_socket },
-//TODO { .family = AF_RXRPC, .func = &rxrpc_rand_socket },
-//TODO { .family = AF_ISDN, .func = &isdn_rand_socket },
-//TODO { .family = AF_PHONET, .func = &phonet_rand_socket },
-//TODO { .family = AF_IEEE802154, .func = &ieee802154_rand_socket },
+ [AF_ROSE] = { .func = NULL },
+ [AF_DECnet] = { .func = &decnet_rand_socket },
+ [AF_NETBEUI] = { .func = NULL },
+ [AF_SECURITY] = { .func = NULL },
+ [AF_KEY] = { .func = NULL },
+ [AF_NETLINK] = { .func = &netlink_rand_socket },
+ [AF_PACKET] = { .func = &packet_rand_socket },
+ [AF_ASH] = { .func = NULL },
+ [AF_ECONET] = { .func = NULL }, // DEAD
+ [AF_ATMSVC] = { .func = NULL },
+ [AF_RDS] = { .func = &rds_rand_socket },
+ [AF_SNA] = { .func = NULL },
+ [AF_IRDA] = { .func = &irda_rand_socket },
+ [AF_PPPOX] = { .func = NULL },
+ [AF_WANPIPE] = { .func = NULL },
+ [AF_LLC] = { .func = &llc_rand_socket },
+ [AF_IB] = { .func = NULL },
+ [AF_MPLS] = { .func = NULL },
+ [AF_CAN] = { .func = &can_rand_socket },
+ [AF_TIPC] = { .func = &tipc_rand_socket },
+ [AF_BLUETOOTH] = { .func = NULL },
+ [AF_IUCV] = { .func = NULL },
+ [AF_RXRPC] = { .func = NULL },
+ [AF_ISDN] = { .func = NULL },
+ [AF_PHONET] = { .func = NULL },
+ [AF_IEEE802154] = { .func = NULL },
#ifdef USE_CAIF
- { .family = AF_CAIF, .func = &caif_rand_socket },
+ [AF_CAIF] = { .func = &caif_rand_socket },
#endif
-//TODO { .family = AF_ALG, .func = &alg_rand_socket },
- { .family = AF_NFC, .func = &nfc_rand_socket },
-//TODO { .family = AF_VSOCK, .func = &vsock_rand_socket },
+ [AF_ALG] = { .func = NULL },
+ [AF_NFC] = { .func = &nfc_rand_socket },
+ [AF_VSOCK] = { .func = NULL },
};
void rand_proto_type(struct socket_triplet *st)
@@ -106,11 +106,12 @@
int sanitise_socket_triplet(struct socket_triplet *st)
{
unsigned int i;
- for (i = 0; i < ARRAY_SIZE(socketptrs); i++) {
- if (socketptrs[i].family == st->family) {
- socketptrs[i].func(st);
- return 0;
- }
+
+ i = st->family;
+
+ if (socketptrs[i].func != NULL) {
+ socketptrs[i].func(st);
+ return 0;
}
/* Couldn't find func, fall back to random. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/syscalls.h new/trinity-20150905/syscalls/syscalls.h
--- old/trinity-20150804/syscalls/syscalls.h 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/syscalls/syscalls.h 2015-09-17 16:21:20.000000000 +0200
@@ -376,5 +376,6 @@
extern struct syscallentry syscall_kexec_file_load;
extern struct syscallentry syscall_bpf;
extern struct syscallentry syscall_execveat;
+extern struct syscallentry syscall_userfaultfd;
unsigned int random_fcntl_setfl_flags(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/syscalls/userfaultfd.c new/trinity-20150905/syscalls/userfaultfd.c
--- old/trinity-20150804/syscalls/userfaultfd.c 1970-01-01 01:00:00.000000000 +0100
+++ new/trinity-20150905/syscalls/userfaultfd.c 2015-09-17 16:21:20.000000000 +0200
@@ -0,0 +1,19 @@
+/*
+ * SYSCALL_DEFINE1(userfaultfd, int, flags)
+ */
+
+#include <fcntl.h>
+#include "sanitise.h"
+
+struct syscallentry syscall_userfaultfd = {
+ .name = "userfaultfd",
+ .num_args = 1,
+ .arg1name = "flags",
+ .arg1type = ARG_LIST,
+ .arg1list = {
+ .num = 2,
+ .values = { O_CLOEXEC, O_NONBLOCK, },
+ },
+ .flags = NEED_ALARM,
+ .rettype = RET_FD,
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/trinity.c new/trinity-20150905/trinity.c
--- old/trinity-20150804/trinity.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/trinity.c 2015-09-17 16:21:20.000000000 +0200
@@ -28,6 +28,7 @@
unsigned int page_size;
unsigned int num_online_cpus;
+bool no_bind_to_cpu;
unsigned int max_children;
/*
@@ -106,6 +107,9 @@
num_online_cpus = sysconf(_SC_NPROCESSORS_ONLN);
max_children = num_online_cpus; /* possibly overridden in params. */
+ if (init_random() == FALSE)
+ exit(EXIT_FAILURE);
+
set_seed(0);
select_syscall_tables();
@@ -175,6 +179,8 @@
setup_main_signals();
+ no_bind_to_cpu = RAND_BOOL();
+
output(0, "Main thread is alive.\n");
prctl(PR_SET_NAME, (unsigned long) &taskname);
set_seed(0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-20150804/watchdog.c new/trinity-20150905/watchdog.c
--- old/trinity-20150804/watchdog.c 2015-08-19 16:40:29.000000000 +0200
+++ new/trinity-20150905/watchdog.c 2015-09-17 16:21:20.000000000 +0200
@@ -378,6 +378,11 @@
while (shm->ready == FALSE) {
unsigned int counter = 0;
+ if (shm->mainpid != 0) {
+ if (check_main_alive() == FALSE)
+ return;
+ }
+
while (shm->mainpid == 0) {
if (check_main_alive() == FALSE)
@@ -391,7 +396,7 @@
if (shm->exit_reason != STILL_RUNNING)
return;
- usleep(1);
+ sleep(1);
}
}
1
0
Hello community,
here is the log from the commit of package notify-osd for openSUSE:Factory checked in at 2015-09-19 06:55:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/notify-osd (Old)
and /work/SRC/openSUSE:Factory/.notify-osd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "notify-osd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/notify-osd/notify-osd.changes 2015-02-13 08:35:44.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.notify-osd.new/notify-osd.changes 2015-09-19 06:55:38.000000000 +0200
@@ -1,0 +2,7 @@
+Thu Sep 17 10:54:28 UTC 2015 - sor.alexei(a)meowr.ru
+
+- Update to 0.9.35~bzr20150915:
+ * Render in native resolution on hidpi displays (lp#1374301).
+- Update and rebase notify-osd-leolik.patch.
+
+-------------------------------------------------------------------
Old:
----
notify-osd_0.9.35+15.04.20150126.orig.tar.gz
New:
----
notify-osd_0.9.35+15.10.20150915.orig.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ notify-osd.spec ++++++
--- /var/tmp/diff_new_pack.VxGf0X/_old 2015-09-19 06:55:38.000000000 +0200
+++ /var/tmp/diff_new_pack.VxGf0X/_new 2015-09-19 06:55:38.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package notify-osd
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,16 +16,16 @@
#
-%define _version 0.9.35+15.04.20150126
+%define _version 0.9.35+15.10.20150915
Name: notify-osd
-Version: 0.9.35~bzr20150126
+Version: 0.9.35~bzr20150915
Release: 0
Summary: Streamlined Notification Daemon
License: GPL-3.0+
Group: System/X11/Utilities
Url: https://launchpad.net/notify-osd
Source: http://archive.ubuntu.com/ubuntu/pool/main/n/notify-osd/%{name}_%{_version}…
-# PATCH-FEATURE-UPSTREAM notify-osd-leolik.patch -- Extend the configuration capabilities, patch by Roman Sukochev (Leolik). Taken from https://launchpad.net/~leolik/+archive/leolik. Note that upstream didn't accept this patch.
+# PATCH-FEATURE-OPENSUSE notify-osd-leolik.patch -- Extend the configuration capabilities, patch by Roman Sukochev (Leolik) from https://launchpad.net/~leolik/+archive/leolik.
Patch0: notify-osd-leolik.patch
BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1.8
@@ -41,7 +41,7 @@
BuildRequires: pkgconfig(libwnck-3.0)
BuildRequires: pkgconfig(pixman-1)
Conflicts: notification-daemon
-%{glib2_gsettings_schema_requires}
+%glib2_gsettings_schema_requires
%description
This notification daemon is an alternative to the
@@ -64,10 +64,10 @@
%fdupes %{buildroot}%{_datadir}
%post
-%{glib2_gsettings_schema_post}
+%glib2_gsettings_schema_post
%postun
-%{glib2_gsettings_schema_postun}
+%glib2_gsettings_schema_postun
%files
%defattr(-,root,root)
++++++ notify-osd-leolik.patch ++++++
--- /var/tmp/diff_new_pack.VxGf0X/_old 2015-09-19 06:55:39.000000000 +0200
+++ /var/tmp/diff_new_pack.VxGf0X/_new 2015-09-19 06:55:39.000000000 +0200
@@ -52,21 +52,16 @@
//-- private functions ---------------------------------------------------------
static guint g_bubble_signals[LAST_SIGNAL] = { 0 };
-@@ -732,17 +736,32 @@
+@@ -758,17 +762,32 @@
2.0f * EM2PIXELS (get_shadow_size (self), d));
cairo_fill (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
-- cairo_set_source_rgba (cr,
-- color.red,
-- color.green,
-- color.blue,
-- BUBBLE_BG_COLOR_A);
+ if (BUBBLE_AS_DESKTOP_BG) {
-+ cairo_set_source_rgba (cr,
-+ color.red,
-+ color.green,
-+ color.blue,
-+ BUBBLE_BG_COLOR_A);
+ cairo_set_source_rgba (cr,
+ color.red,
+ color.green,
+ color.blue,
+ BUBBLE_BG_COLOR_A);
+ } else {
+ cairo_set_source_rgba (cr,
+ BUBBLE_BG_COLOR_R,
@@ -76,15 +71,11 @@
+ }
}
else
-- cairo_set_source_rgb (cr,
-- color.red,
-- color.green,
-- color.blue);
+ if (BUBBLE_AS_DESKTOP_BG) {
-+ cairo_set_source_rgb (cr,
-+ color.red,
-+ color.green,
-+ color.blue);
+ cairo_set_source_rgb (cr,
+ color.red,
+ color.green,
+ color.blue);
+ } else {
+ cairo_set_source_rgb (cr,
+ BUBBLE_BG_COLOR_R,
@@ -94,38 +85,29 @@
draw_round_rect (
cr,
-@@ -1643,15 +1662,23 @@
- // sanity check
+@@ -1662,6 +1681,8 @@
if (!window)
return;
--
-- // set an 1x1 input-region to allow click-through
-- region = cairo_region_create_rectangle (&rect);
-- if (cairo_region_status (region) == CAIRO_STATUS_SUCCESS)
-+
+
+ if (!BUBBLE_CLOSE_ON_CLICK)
+ {
-+ // set an 1x1 input-region to allow click-through
-+ region = cairo_region_create_rectangle (&rect);
-+ if (cairo_region_status (region) == CAIRO_STATUS_SUCCESS)
-+ {
-+ gtk_widget_input_shape_combine_region (window, NULL);
-+ gtk_widget_input_shape_combine_region (window, region);
-+ }
-+ cairo_region_destroy (region);
+ // set an 1x1 input-region to allow click-through
+ region = cairo_region_create_rectangle (&rect);
+ if (cairo_region_status (region) == CAIRO_STATUS_SUCCESS)
+@@ -1670,6 +1691,12 @@
+ gtk_widget_input_shape_combine_region (window, region);
+ }
+ cairo_region_destroy (region);
+ }
+ else
- {
-- gtk_widget_input_shape_combine_region (window, NULL);
-- gtk_widget_input_shape_combine_region (window, region);
++ {
+ GdkWindow *window_ = gtk_widget_get_window (window);
+ gdk_window_set_events (window_, gdk_window_get_events (window_) | GDK_BUTTON_PRESS);
- }
-- cairo_region_destroy (region);
++ }
}
static void
-@@ -1738,7 +1765,7 @@
+@@ -1756,7 +1783,7 @@
cairo_paint (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
@@ -134,7 +116,7 @@
{
// render drop-shadow and bubble-background
_render_background (bubble, cr, 1.0f, 0.0f);
-@@ -1769,6 +1796,29 @@
+@@ -1787,6 +1814,30 @@
}
static gboolean
@@ -142,7 +124,8 @@
+ GdkEventButton* event,
+ Bubble* bubble)
+{
-+ BubblePrivate *priv = bubble->priv;
++ BubblePrivate* priv;
++ priv = bubble->priv;
+
+ if (priv->mouse_over && event->button == 1)
+ {
@@ -164,7 +147,7 @@
redraw_handler (Bubble* bubble)
{
GtkWindow* window;
-@@ -1792,7 +1842,7 @@
+@@ -1810,7 +1861,7 @@
if (priv->alpha == NULL)
{
@@ -173,7 +156,7 @@
{
gtk_widget_set_opacity (priv->widget,
WINDOW_MIN_OPACITY +
-@@ -1956,7 +2006,7 @@
+@@ -1979,7 +2030,7 @@
// mark mouse-pointer having left bubble and proximity-area
// after inital show-up of bubble
@@ -182,7 +165,7 @@
priv->prevent_fade = FALSE;
}
-@@ -2252,6 +2302,14 @@
+@@ -2275,6 +2326,14 @@
G_CALLBACK (bubble_draw),
this);
@@ -197,7 +180,7 @@
// "clear" input-mask, set title/icon/attributes
gtk_widget_set_app_paintable (window, TRUE);
gtk_window_set_title (GTK_WINDOW (window), "notify-osd");
-@@ -2731,7 +2789,7 @@
+@@ -2757,7 +2816,7 @@
priv = self->priv;
@@ -206,7 +189,7 @@
return FALSE;
return priv->mouse_over;
-@@ -2835,7 +2893,7 @@
+@@ -2861,7 +2920,7 @@
// check if mouse-pointer is over bubble (and proximity-area) initially
pointer_update (self);
@@ -215,7 +198,7 @@
priv->prevent_fade = TRUE;
else
priv->prevent_fade = FALSE;
-@@ -3398,6 +3456,8 @@
+@@ -3424,6 +3483,8 @@
gint old_bubble_height = 0;
gint new_bubble_width = 0;
gint new_bubble_height = 0;
@@ -224,7 +207,7 @@
Defaults* d;
BubblePrivate* priv;
-@@ -3592,6 +3652,13 @@
+@@ -3619,6 +3680,13 @@
_refresh_body (self);
update_shape (self);
@@ -267,11 +250,10 @@
-#define DEFAULT_MARGIN_SIZE 1.0f
-#define DEFAULT_ICON_SIZE 3.0f
-#define DEFAULT_GAUGE_SIZE 0.625f
--#define DEFAULT_GAUGE_OUTLINE_WIDTH 0.125f
+float DEFAULT_MARGIN_SIZE = 1.0f;
+float DEFAULT_ICON_SIZE = 3.0f;
+float DEFAULT_GAUGE_SIZE = 0.625f;
-+#define DEFAULT_GAUGE_OUTLINE_WIDTH 0.125f
+ #define DEFAULT_GAUGE_OUTLINE_WIDTH 0.125f
#define DEFAULT_TEXT_FONT_FACE "Sans"
#define DEFAULT_TEXT_TITLE_COLOR "#ffffff"
-#define DEFAULT_TEXT_TITLE_WEIGHT TEXT_WEIGHT_BOLD
@@ -385,7 +367,6 @@
defaults_get_top_corner (self->defaults, &screen, &x, &y);
-diff -ruN src_old/main.c src/main.c
--- src_old/main.c
+++ src/main.c
@@ -25,6 +25,10 @@
@@ -622,7 +603,6 @@
defaults = defaults_new ();
observer = observer_new ();
stack = stack_new (defaults, observer);
-diff -ruN src_old/stack.c src/stack.c
--- src_old/stack.c
+++ src/stack.c
@@ -44,6 +44,7 @@
@@ -637,41 +617,33 @@
if (body)
bubble_set_message_body (bubble, body);
-+ if (timeout == NOTIFY_EXPIRES_DEFAULT) {
-+ bubble_set_timeout (bubble,
-+ defaults_get_on_screen_timeout (self->defaults));
-+ }
-+ else
-+ {
-+ bubble_set_timeout (bubble, timeout);
-+ }
++ if (timeout == NOTIFY_EXPIRES_DEFAULT) {
++ bubble_set_timeout (bubble,
++ defaults_get_on_screen_timeout (self->defaults));
++ }
++ else {
++ bubble_set_timeout (bubble, timeout);
++ }
++
+
if (new_bubble && bubble_is_append_allowed(bubble)) {
app_bubble = find_bubble_for_append(self, bubble);
-@@ -958,8 +968,54 @@
+@@ -958,8 +968,7 @@
case SLOT_ALLOCATION_FIXED:
*y += EM2PIXELS (defaults_get_icon_size (d), d) +
2 * EM2PIXELS (defaults_get_margin_size (d), d) +
- EM2PIXELS (defaults_get_bubble_vert_gap (d), d); /* +
- 2 * EM2PIXELS (defaults_get_bubble_shadow_size (d, is_composited), d);*/
+ EM2PIXELS (defaults_get_bubble_vert_gap (d), d) + 2;
-+ break;
-+
-+ case SLOT_ALLOCATION_DYNAMIC:
-+ g_assert (stack_is_slot_vacant (self, SLOT_TOP) == OCCUPIED);
-+ *y += bubble_get_height (self->slots[SLOT_TOP]) +
-+ EM2PIXELS (defaults_get_bubble_vert_gap (d), d) -
-+ 2 * EM2PIXELS (defaults_get_bubble_shadow_size (d, is_composited), d);
-+ break;
-+
-+ default:
-+ break;
-+ }
-+
-+ }
-+ break;
-+
+ break;
+
+ case SLOT_ALLOCATION_DYNAMIC:
+@@ -975,6 +984,161 @@
+
+ }
+ break;
++
+ case GRAVITY_WEST:
+ d = self->defaults;
+
@@ -703,14 +675,22 @@
+ *y += EM2PIXELS (defaults_get_icon_size (d), d) +
+ 2 * EM2PIXELS (defaults_get_margin_size (d), d) +
+ EM2PIXELS (defaults_get_bubble_vert_gap (d), d) + 2;
- break;
-
- case SLOT_ALLOCATION_DYNAMIC:
-@@ -975,6 +1031,114 @@
-
- }
- break;
-+
++ break;
++
++ case SLOT_ALLOCATION_DYNAMIC:
++ g_assert (stack_is_slot_vacant (self, SLOT_TOP) == OCCUPIED);
++ *y += bubble_get_height (self->slots[SLOT_TOP]) +
++ EM2PIXELS (defaults_get_bubble_vert_gap (d), d) -
++ 2 * EM2PIXELS (defaults_get_bubble_shadow_size (d, is_composited), d);
++ break;
++
++ default:
++ break;
++ }
++
++ }
++ break;
++
+ case GRAVITY_SOUTH_EAST:
+ d = self->defaults;
+
++++++ notify-osd_0.9.35+15.04.20150126.orig.tar.gz -> notify-osd_0.9.35+15.10.20150915.orig.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/bubble.c new/notify-osd-0.9.35+15.10.20150915/src/bubble.c
--- old/notify-osd-0.9.35+15.04.20150126/src/bubble.c 2015-01-26 15:16:38.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/bubble.c 2015-09-15 11:24:16.000000000 +0200
@@ -177,6 +177,23 @@
static guint g_bubble_signals[LAST_SIGNAL] = { 0 };
gint g_pointer[2];
+static cairo_surface_t *
+bubble_create_image_surface (Bubble* self,
+ cairo_format_t format,
+ gint width,
+ gint height)
+{
+ cairo_surface_t *surface;
+ gint scale;
+
+ scale = gtk_widget_get_scale_factor (self->priv->widget);
+
+ surface = cairo_image_surface_create (format, scale * width, scale * height);
+ cairo_surface_set_device_scale (surface, scale, scale);
+
+ return surface;
+}
+
static void
draw_round_rect (cairo_t* cr,
gdouble aspect, // aspect-ratio
@@ -372,7 +389,8 @@
}
void
-_draw_shadow (cairo_t* cr,
+_draw_shadow (Bubble* self,
+ cairo_t* cr,
gdouble width,
gdouble height,
gint shadow_radius,
@@ -384,10 +402,13 @@
cairo_t* cr_surf = NULL;
cairo_matrix_t matrix;
raico_blur_t* blur = NULL;
+ double x_scale;
+ double y_scale;
- tmp_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- 4 * shadow_radius,
- 4 * shadow_radius);
+ tmp_surface = bubble_create_image_surface (self,
+ CAIRO_FORMAT_ARGB32,
+ 4 * shadow_radius,
+ 4 * shadow_radius);
if (cairo_surface_status (tmp_surface) != CAIRO_STATUS_SUCCESS) {
if (tmp_surface)
cairo_surface_destroy (tmp_surface);
@@ -433,6 +454,9 @@
cairo_image_surface_get_width (tmp_surface) / 2,
cairo_image_surface_get_height (tmp_surface) / 2,
cairo_image_surface_get_stride (tmp_surface));
+ cairo_surface_get_device_scale (tmp_surface, &x_scale, &y_scale);
+ cairo_surface_set_device_scale (new_surface, x_scale, y_scale);
+
pattern = cairo_pattern_create_for_surface (new_surface);
if (cairo_pattern_status (pattern) != CAIRO_STATUS_SUCCESS)
{
@@ -639,7 +663,6 @@
Defaults* d = self->defaults;
cairo_t* cr = NULL;
cairo_surface_t* scratch = NULL;
- cairo_surface_t* dummy = NULL;
cairo_surface_t* clone = NULL;
cairo_surface_t* normal = NULL;
cairo_surface_t* blurred = NULL;
@@ -654,7 +677,8 @@
if (priv->composited)
{
scratch_shadow_size = EM2PIXELS (get_shadow_size (self), d);
- scratch = cairo_image_surface_create (
+ scratch = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_ARGB32,
3 * scratch_shadow_size,
3 * scratch_shadow_size);
@@ -663,7 +687,8 @@
{
// We must have at least some width to this scratch surface.
scratch_shadow_size = 1;
- scratch = cairo_image_surface_create (
+ scratch = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_RGB24,
3 * scratch_shadow_size,
3 * scratch_shadow_size);
@@ -715,6 +740,7 @@
if (priv->composited)
{
_draw_shadow (
+ self,
cr,
width,
height,
@@ -757,24 +783,10 @@
cairo_destroy (cr);
// create temp. clone of scratch surface
- dummy = cairo_image_surface_create_for_data (
- cairo_image_surface_get_data (scratch),
- cairo_image_surface_get_format (scratch),
- 3 * scratch_shadow_size,
- 3 * scratch_shadow_size,
- cairo_image_surface_get_stride (scratch));
- clone = copy_surface (dummy);
- cairo_surface_destroy (dummy);
+ clone = copy_surface (scratch);
// create normal surface from that surface-clone
- dummy = cairo_image_surface_create_for_data (
- cairo_image_surface_get_data (clone),
- cairo_image_surface_get_format (clone),
- 2 * scratch_shadow_size,
- 2 * scratch_shadow_size,
- cairo_image_surface_get_stride (clone));
- normal = copy_surface (dummy);
- cairo_surface_destroy (dummy);
+ normal = copy_surface (clone);
// now blur the surface-clone
blur = raico_blur_create (RAICO_BLUR_QUALITY_LOW);
@@ -783,30 +795,26 @@
raico_blur_destroy (blur);
// create blurred version from that blurred surface-clone
- dummy = cairo_image_surface_create_for_data (
- cairo_image_surface_get_data (clone),
- cairo_image_surface_get_format (clone),
- 2 * scratch_shadow_size,
- 2 * scratch_shadow_size,
- cairo_image_surface_get_stride (clone));
- blurred = copy_surface (dummy);
- cairo_surface_destroy (dummy);
- destroy_cloned_surface (clone);
+ blurred = copy_surface (clone);
+ cairo_surface_destroy (clone);
// finally create tile with top-left shadow/background part
if (priv->tile_background_part)
tile_destroy (priv->tile_background_part);
- priv->tile_background_part = tile_new_for_padding (normal, blurred);
- destroy_cloned_surface (normal);
- destroy_cloned_surface (blurred);
+ priv->tile_background_part = tile_new_for_padding (normal, blurred,
+ 3 * scratch_shadow_size,
+ 3 * scratch_shadow_size);
+ cairo_surface_destroy (normal);
+ cairo_surface_destroy (blurred);
// create surface(s) for full shadow/background tile
if (priv->composited)
{
// we need two RGBA-surfaces
- normal = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- width,
- height);
+ normal = bubble_create_image_surface (self,
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height);
if (cairo_surface_status (normal) != CAIRO_STATUS_SUCCESS)
{
cairo_surface_destroy (scratch);
@@ -817,9 +825,10 @@
return;
}
- blurred = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- width,
- height);
+ blurred = bubble_create_image_surface (self,
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height);
if (cairo_surface_status (blurred) != CAIRO_STATUS_SUCCESS)
{
cairo_surface_destroy (normal);
@@ -834,9 +843,10 @@
else
{
// we need only one RGB-surface
- normal = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
- width,
- height);
+ normal = bubble_create_image_surface (self,
+ CAIRO_FORMAT_RGB24,
+ width,
+ height);
if (cairo_surface_status (normal) != CAIRO_STATUS_SUCCESS)
{
cairo_surface_destroy (scratch);
@@ -921,9 +931,9 @@
if (priv->tile_background)
tile_destroy (priv->tile_background);
if (priv->composited)
- priv->tile_background = tile_new_for_padding (normal, blurred);
+ priv->tile_background = tile_new_for_padding (normal, blurred, width, height);
else
- priv->tile_background = tile_new_for_padding (normal, normal);
+ priv->tile_background = tile_new_for_padding (normal, normal, width, height);
// clean up
if (priv->composited)
@@ -936,16 +946,18 @@
void
_refresh_icon (Bubble* self)
{
- BubblePrivate* priv = self->priv;
- Defaults* d = self->defaults;
- cairo_surface_t* normal = NULL;
- cairo_t* cr = NULL;
+ BubblePrivate* priv = self->priv;
+ Defaults* d = self->defaults;
+ cairo_surface_t* normal = NULL;
+ cairo_surface_t* icon_surface = NULL;
+ cairo_t* cr = NULL;
if (!priv->icon_pixbuf)
return;
// create temp. scratch surface
- normal = cairo_image_surface_create (
+ normal = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_ARGB32,
EM2PIXELS (defaults_get_icon_size (d), d) +
2 * BUBBLE_CONTENT_BLUR_RADIUS,
@@ -969,10 +981,12 @@
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
// render icon into normal surface
- gdk_cairo_set_source_pixbuf (cr,
- priv->icon_pixbuf,
- BUBBLE_CONTENT_BLUR_RADIUS,
- BUBBLE_CONTENT_BLUR_RADIUS);
+ icon_surface = gdk_cairo_surface_create_from_pixbuf (priv->icon_pixbuf, 0,
+ gtk_widget_get_window (priv->widget));
+ cairo_set_source_surface (cr,
+ icon_surface,
+ BUBBLE_CONTENT_BLUR_RADIUS,
+ BUBBLE_CONTENT_BLUR_RADIUS);
cairo_paint (cr);
// create the surface/blur-cache from the normal surface
@@ -982,6 +996,7 @@
// clean up
cairo_destroy (cr);
+ cairo_surface_destroy (icon_surface);
cairo_surface_destroy (normal);
}
@@ -998,7 +1013,8 @@
gchar* text_font_face = NULL;
// create temp. scratch surface
- normal = cairo_image_surface_create (
+ normal = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_ARGB32,
priv->title_width + 2 * BUBBLE_CONTENT_BLUR_RADIUS,
priv->title_height + 2 * BUBBLE_CONTENT_BLUR_RADIUS);
@@ -1106,7 +1122,8 @@
gchar* text_font_face = NULL;
// create temp. scratch surface
- normal = cairo_image_surface_create (
+ normal = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_ARGB32,
priv->body_width + 2 * BUBBLE_CONTENT_BLUR_RADIUS,
priv->body_height + 2 * BUBBLE_CONTENT_BLUR_RADIUS);
@@ -1212,7 +1229,8 @@
cairo_t* cr = NULL;
// create temp. scratch surface
- normal = cairo_image_surface_create (
+ normal = bubble_create_image_surface (
+ self,
CAIRO_FORMAT_ARGB32,
EM2PIXELS (defaults_get_bubble_width (d), d) -
3 * EM2PIXELS (defaults_get_margin_size (d), d) -
@@ -1810,13 +1828,15 @@
static
GdkPixbuf*
-load_icon (const gchar* filename,
+load_icon (Bubble* self,
+ const gchar* filename,
gint icon_size)
{
GdkPixbuf* buffer = NULL;
GdkPixbuf* pixbuf = NULL;
GtkIconTheme* theme = NULL;
GError* error = NULL;
+ gint scale;
/* sanity check */
g_return_val_if_fail (filename, NULL);
@@ -1825,25 +1845,28 @@
if (!strncmp (filename, "file://", 7))
filename += 7;
+ scale = gtk_widget_get_scale_factor (self->priv->widget);
+
if (filename[0] == '/')
{
/* load image into pixbuf */
pixbuf = gdk_pixbuf_new_from_file_at_scale (filename,
- icon_size,
- icon_size,
+ scale * icon_size,
+ scale * icon_size,
TRUE,
NULL);
} else {
/* TODO: rewrite, check for SVG support, raise apport
** notification for low-res icons */
theme = gtk_icon_theme_get_default ();
- buffer = gtk_icon_theme_load_icon (theme,
- filename,
- icon_size,
- GTK_ICON_LOOKUP_FORCE_SVG |
- GTK_ICON_LOOKUP_GENERIC_FALLBACK |
- GTK_ICON_LOOKUP_FORCE_SIZE,
- &error);
+ buffer = gtk_icon_theme_load_icon_for_scale (theme,
+ filename,
+ icon_size,
+ scale,
+ GTK_ICON_LOOKUP_FORCE_SVG |
+ GTK_ICON_LOOKUP_GENERIC_FALLBACK |
+ GTK_ICON_LOOKUP_FORCE_SIZE,
+ &error);
if (error)
{
g_print ("loading icon '%s' caused error: '%s'",
@@ -2431,7 +2454,8 @@
}
d = self->defaults;
- priv->icon_pixbuf = load_icon (filepath,
+ priv->icon_pixbuf = load_icon (self,
+ filepath,
EM2PIXELS (defaults_get_icon_size (d), d));
_refresh_icon (self);
@@ -2474,7 +2498,8 @@
#ifdef TEMPORARY_ICON_PREFIX_WORKAROUND
notify_osd_iconname = g_strdup_printf (NOTIFY_OSD_ICON_PREFIX "-%s",
filename);
- priv->icon_pixbuf = load_icon (notify_osd_iconname,
+ priv->icon_pixbuf = load_icon (self,
+ notify_osd_iconname,
EM2PIXELS (defaults_get_icon_size (d),
d));
g_free (notify_osd_iconname);
@@ -2482,7 +2507,8 @@
// fallback to non-notify-osd name
if (!priv->icon_pixbuf)
- priv->icon_pixbuf = load_icon (filename,
+ priv->icon_pixbuf = load_icon (self,
+ filename,
EM2PIXELS (defaults_get_icon_size (d), d));
_refresh_icon (self);
@@ -3224,7 +3250,7 @@
d = self->defaults;
priv = self->priv;
- surface = cairo_image_surface_create (CAIRO_FORMAT_A1, 1, 1);
+ surface = bubble_create_image_surface (self, CAIRO_FORMAT_A1, 1, 1);
if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS) {
if (surface)
cairo_surface_destroy (surface);
@@ -3418,6 +3444,7 @@
EM2PIXELS (defaults_get_icon_size (d), d),
EM2PIXELS (defaults_get_icon_size (d), d),
GDK_INTERP_BILINEAR);
+ g_message ("resizing pixbuf to %d", EM2PIXELS (defaults_get_icon_size (d), d) );
g_object_unref (priv->icon_pixbuf);
priv->icon_pixbuf = pixbuf;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/raico-blur.c new/notify-osd-0.9.35+15.10.20150915/src/raico-blur.c
--- old/notify-osd-0.9.35+15.04.20150126/src/raico-blur.c 2015-01-26 15:16:14.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/raico-blur.c 2015-09-15 11:24:16.000000000 +0200
@@ -112,6 +112,9 @@
cairo_surface_t* surface)
{
cairo_format_t format;
+ double x_scale;
+ double y_scale;
+ guint radius;
// sanity checks
if (!blur)
@@ -151,20 +154,27 @@
if (blur->priv->radius == 0)
return;
+ /* adjust radius for device scale. We don't support blurring
+ * different amounts in x and y, so just use the mean value
+ * between cairo's respective device scales (in practice they
+ * should always be the same). */
+ cairo_surface_get_device_scale (surface, &x_scale, &y_scale);
+ radius = blur->priv->radius * 0.5 * (x_scale + y_scale);
+
// now do the real work
switch (blur->priv->quality)
{
case RAICO_BLUR_QUALITY_LOW:
- surface_exponential_blur (surface, blur->priv->radius);
+ surface_exponential_blur (surface, radius);
break;
case RAICO_BLUR_QUALITY_MEDIUM:
//surface_stack_blur (surface, blur->priv->radius);
- surface_gaussian_blur (surface, blur->priv->radius);
+ surface_gaussian_blur (surface, radius);
break;
case RAICO_BLUR_QUALITY_HIGH:
- surface_gaussian_blur (surface, blur->priv->radius);
+ surface_gaussian_blur (surface, radius);
break;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/tile.c new/notify-osd-0.9.35+15.10.20150915/src/tile.c
--- old/notify-osd-0.9.35+15.04.20150126/src/tile.c 2015-01-26 15:16:14.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/tile.c 2015-09-15 11:24:16.000000000 +0200
@@ -76,7 +76,9 @@
tile_t*
tile_new_for_padding (cairo_surface_t* normal,
- cairo_surface_t* blurred)
+ cairo_surface_t* blurred,
+ gint width,
+ gint height)
{
tile_private_t* priv = NULL;
tile_t* tile = NULL;
@@ -93,20 +95,14 @@
cairo_surface_status (blurred) != CAIRO_STATUS_SUCCESS)
return NULL;
- if (cairo_image_surface_get_width (normal) !=
- cairo_image_surface_get_width (blurred) &&
- cairo_image_surface_get_height (normal) !=
- cairo_image_surface_get_height (blurred))
- return NULL;
-
tile->priv = priv;
tile->priv->normal = copy_surface (normal);
tile->priv->blurred = copy_surface (blurred);
tile->priv->blur_radius = 0;
tile->priv->use_padding = TRUE;
- tile->priv->pad_width = cairo_image_surface_get_width (normal);
- tile->priv->pad_height = cairo_image_surface_get_height (normal);
+ tile->priv->pad_width = width;
+ tile->priv->pad_height = height;
return tile;
}
@@ -120,8 +116,8 @@
//cairo_surface_write_to_png (tile->priv->normal, "./tile-normal.png");
//cairo_surface_write_to_png (tile->priv->blurred, "./tile-blurred.png");
- destroy_cloned_surface (tile->priv->normal);
- destroy_cloned_surface (tile->priv->blurred);
+ cairo_surface_destroy (tile->priv->normal);
+ cairo_surface_destroy (tile->priv->blurred);
g_free ((gpointer) tile->priv);
g_free ((gpointer) tile);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/tile.h new/notify-osd-0.9.35+15.10.20150915/src/tile.h
--- old/notify-osd-0.9.35+15.04.20150126/src/tile.h 2015-01-26 15:16:14.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/tile.h 2015-09-15 11:24:16.000000000 +0200
@@ -44,7 +44,9 @@
tile_t*
tile_new_for_padding (cairo_surface_t* normal,
- cairo_surface_t* blurred);
+ cairo_surface_t* blurred,
+ gint width,
+ gint height);
void
tile_destroy (tile_t* tile);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/util.c new/notify-osd-0.9.35+15.10.20150915/src/util.c
--- old/notify-osd-0.9.35+15.04.20150126/src/util.c 2015-01-26 15:16:14.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/util.c 2015-09-15 11:24:16.000000000 +0200
@@ -139,51 +139,30 @@
return text1;
}
-gboolean
-destroy_cloned_surface (cairo_surface_t* surface)
-{
- gboolean finalref = FALSE;
- g_return_val_if_fail (surface, FALSE);
-
- if (cairo_surface_get_reference_count (surface) == 1) {
- g_free (cairo_image_surface_get_data (surface));
- finalref = TRUE;
- }
- cairo_surface_destroy (surface);
- return finalref;
-}
-
cairo_surface_t*
copy_surface (cairo_surface_t* orig)
{
cairo_surface_t* copy = NULL;
- guchar* pixels_src = NULL;
- guchar* pixels_cpy = NULL;
cairo_format_t format;
gint width;
gint height;
- gint stride;
-
- pixels_src = cairo_image_surface_get_data (orig);
- if (!pixels_src)
- return NULL;
+ cairo_t* cr;
+ double x_scale;
+ double y_scale;
- format = cairo_image_surface_get_format (orig);
width = cairo_image_surface_get_width (orig);
height = cairo_image_surface_get_height (orig);
- stride = cairo_image_surface_get_stride (orig);
+ format = cairo_image_surface_get_format (orig);
+ cairo_surface_get_device_scale (orig, &x_scale, &y_scale);
+
+ copy = cairo_surface_create_similar_image (orig, format, width, height);
+ cairo_surface_set_device_scale (copy, x_scale, y_scale);
+
+ cr = cairo_create (copy);
+ cairo_set_source_surface (cr, orig, 0, 0);
+ cairo_paint (cr);
- pixels_cpy = g_malloc0 (stride * height);
- if (!pixels_cpy)
- return NULL;
-
- memcpy ((void*) pixels_cpy, (void*) pixels_src, height * stride);
-
- copy = cairo_image_surface_create_for_data (pixels_cpy,
- format,
- width,
- height,
- stride);
+ cairo_destroy (cr);
return copy;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/src/util.h new/notify-osd-0.9.35+15.10.20150915/src/util.h
--- old/notify-osd-0.9.35+15.04.20150126/src/util.h 2015-01-26 15:16:14.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/src/util.h 2015-09-15 11:24:16.000000000 +0200
@@ -46,9 +46,6 @@
cairo_surface_t*
copy_surface (cairo_surface_t* orig);
-gboolean
-destroy_cloned_surface (cairo_surface_t* surface);
-
gchar*
get_wm_name (Display* dpy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/tests/test-grow-bubble.c new/notify-osd-0.9.35+15.10.20150915/tests/test-grow-bubble.c
--- old/notify-osd-0.9.35+15.04.20150126/tests/test-grow-bubble.c 2015-01-26 15:16:27.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/tests/test-grow-bubble.c 2015-09-15 11:24:16.000000000 +0200
@@ -651,7 +651,7 @@
cairo_surface_destroy (tmp);
cairo_surface_destroy (dummy_surf);
- g_tile = tile_new_for_padding (norm_surf, blur_surf);
+ g_tile = tile_new_for_padding (norm_surf, blur_surf, width, height);
cairo_surface_destroy (norm_surf);
cairo_surface_destroy (blur_surf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notify-osd-0.9.35+15.04.20150126/tests/test-scroll-text.c new/notify-osd-0.9.35+15.10.20150915/tests/test-scroll-text.c
--- old/notify-osd-0.9.35+15.04.20150126/tests/test-scroll-text.c 2015-01-26 15:16:27.000000000 +0100
+++ new/notify-osd-0.9.35+15.10.20150915/tests/test-scroll-text.c 2015-09-15 11:24:16.000000000 +0200
@@ -826,10 +826,10 @@
cairo_surface_destroy (tmp);
// actually create the tile with padding in mind
- tile = tile_new_for_padding (norm_surf, blur_surf);
- destroy_cloned_surface (norm_surf);
- destroy_cloned_surface (blur_surf);
- destroy_cloned_surface (dummy_surf);
+ tile = tile_new_for_padding (norm_surf, blur_surf, width, height);
+ cairo_surface_destroy (norm_surf);
+ cairo_surface_destroy (blur_surf);
+ cairo_surface_destroy (dummy_surf);
cairo_destroy (cr);
cairo_surface_destroy (cr_surf);
@@ -852,7 +852,7 @@
tile_paint_with_padding (tile, cr, 0.0f, 0.0f, w, h, 0.0f, 1.0f);
cairo_destroy (cr);
- g_tile = tile_new_for_padding (norm_surf, blur_surf);
+ g_tile = tile_new_for_padding (norm_surf, blur_surf, width, height);
// clean up
tile_destroy (tile);
1
0