openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2014
- 1 participants
- 1539 discussions
Hello community,
here is the log from the commit of package perl-Bootloader for openSUSE:Factory checked in at 2014-05-02 20:52:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Bootloader (Old)
and /work/SRC/openSUSE:Factory/.perl-Bootloader.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Bootloader"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Bootloader/perl-Bootloader.changes 2014-04-26 11:45:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Bootloader.new/perl-Bootloader.changes 2014-05-02 20:52:10.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Apr 29 10:21:07 CEST 2014 - snwint(a)suse.de
+
+- fix regexp to not backtrack endlessly if parentheses don't match (bnc #875369)
+- 0.813
+
+-------------------------------------------------------------------
Old:
----
perl-Bootloader-0.812.tar.xz
New:
----
perl-Bootloader-0.813.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Bootloader.spec ++++++
--- /var/tmp/diff_new_pack.Wt5pAa/_old 2014-05-02 20:52:11.000000000 +0200
+++ /var/tmp/diff_new_pack.Wt5pAa/_new 2014-05-02 20:52:11.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Bootloader
-Version: 0.812
+Version: 0.813
Release: 0
Requires: coreutils
Requires: e2fsprogs
++++++ perl-Bootloader-0.812.tar.xz -> perl-Bootloader-0.813.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/perl-Bootloader-0.812/perl-Bootloader.changes new/perl-Bootloader-0.813/perl-Bootloader.changes
--- old/perl-Bootloader-0.812/perl-Bootloader.changes 2014-04-22 11:43:36.000000000 +0200
+++ new/perl-Bootloader-0.813/perl-Bootloader.changes 2014-04-29 10:26:03.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Tue Apr 29 10:21:07 CEST 2014 - snwint(a)suse.de
+
+- fix regexp to not backtrack endlessly if parentheses don't match (bnc #875369)
+- 0.813
+
+-------------------------------------------------------------------
Tue Apr 22 07:33:01 UTC 2014 - mchang(a)suse.com
- enable btrfs snapshot booting on ppc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/perl-Bootloader-0.812/src/Core/GRUB2.pm new/perl-Bootloader-0.813/src/Core/GRUB2.pm
--- old/perl-Bootloader-0.812/src/Core/GRUB2.pm 2014-04-22 11:43:36.000000000 +0200
+++ new/perl-Bootloader-0.813/src/Core/GRUB2.pm 2014-04-29 10:26:03.000000000 +0200
@@ -250,7 +250,7 @@
sub GrubCfgSections {
my ($parent, $cfg, $sect) = @_;
- my @m = $cfg =~ /(submenu|menuentry) \s+ '([^']*)' (.*?) ( \{ (?: [^{}]* | (?4))* \} )/sxg;
+ my @m = $cfg =~ /(submenu|menuentry) \s+ '([^']*)' (.*?) ( \{ (?: [^{}]++ | (?-1))*+ \} )/sxg;
for (my $i = 0; $i <= $#m; $i += 4) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/perl-Bootloader-0.812/src/Core/GRUB2EFI.pm new/perl-Bootloader-0.813/src/Core/GRUB2EFI.pm
--- old/perl-Bootloader-0.812/src/Core/GRUB2EFI.pm 2014-04-22 11:43:36.000000000 +0200
+++ new/perl-Bootloader-0.813/src/Core/GRUB2EFI.pm 2014-04-29 10:26:03.000000000 +0200
@@ -65,7 +65,7 @@
sub GrubCfgSections {
my ($parent, $cfg, $sect) = @_;
- my @m = $cfg =~ /(submenu|menuentry) \s+ '([^']*)' (.*?) ( \{ (?: [^{}]* | (?4))* \} )/sxg;
+ my @m = $cfg =~ /(submenu|menuentry) \s+ '([^']*)' (.*?) ( \{ (?: [^{}]++ | (?-1))*+ \} )/sxg;
for (my $i = 0; $i <= $#m; $i += 4) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/perl-Bootloader-0.812/version new/perl-Bootloader-0.813/version
--- old/perl-Bootloader-0.812/version 2014-04-22 11:43:36.000000000 +0200
+++ new/perl-Bootloader-0.813/version 2014-04-29 10:26:03.000000000 +0200
@@ -1 +1 @@
-0.812
+0.813
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package systemd for openSUSE:Factory checked in at 2014-05-02 20:51:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
and /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2014-04-26 11:45:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2014-05-02 20:51:27.000000000 +0200
@@ -1,0 +2,36 @@
+Fri May 2 10:12:26 UTC 2014 - werner(a)suse.de
+
+- Add patch shut-up-annoying-assertion-monotonic-clock-message.patch
+ to avoid annyoing messages on failing dual_timestamp_is_set in the
+ kernel's message ring buffer
+
+-------------------------------------------------------------------
+Wed Apr 30 12:14:32 UTC 2014 - werner(a)suse.de
+
+- Update udev-generate-peristent-rule.sh from latest git
+
+-------------------------------------------------------------------
+Wed Apr 30 10:55:54 UTC 2014 - werner(a)suse.de
+
+- Modify and extend patch
+ 0001-On_s390_con3270_disable_ANSI_colour_esc.patch
+ to avoid also ANSI escape sequences for busy jobs on s390
+
+-------------------------------------------------------------------
+Mon Apr 28 09:51:35 UTC 2014 - werner(a)suse.de
+
+- Add or port upstram bugfix patches:
+ 0001-bash-completion-fix-__get_startable_units.patch
+ 0002-sysctl-replaces-some-slashes-with-dots.patch
+ 0003-delta-do-not-use-unicode-chars-in-C-locale.patch
+ 0004-implement-a-union-to-pad-out-file_handle.patch
+- Add patch respect-nfs-bg-option.patch from Thomas Blume:
+ System fails to boot if nfs mounts get added to fstab (bnc#874665)
+
+-------------------------------------------------------------------
+Wed Apr 23 11:46:41 UTC 2014 - oneukum(a)suse.com
+
+- Do not use runtime PM for some IBM consoles (bnc#868931)
+ 1013-no-runtime-PM-for-IBM-consoles.patch
+
+-------------------------------------------------------------------
systemd.changes: same change
New:
----
0001-bash-completion-fix-__get_startable_units.patch
0002-sysctl-replaces-some-slashes-with-dots.patch
0003-delta-do-not-use-unicode-chars-in-C-locale.patch
0004-implement-a-union-to-pad-out-file_handle.patch
1013-no-runtime-PM-for-IBM-consoles.patch
respect-nfs-bg-option.patch
shut-up-annoying-assertion-monotonic-clock-message.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.7uSWKo/_old 2014-05-02 20:51:29.000000000 +0200
+++ /var/tmp/diff_new_pack.7uSWKo/_new 2014-05-02 20:51:29.000000000 +0200
@@ -387,6 +387,18 @@
Patch197: rescue-emergency-target-conflicts.patch
# PATCH-FIX-SUSE Avoid a divide by zero sigtrap
Patch198: avoid-divide-by-zero-sigtrap.patch
+# PATCH-FIX-USTREAM added at 2014/04/28
+Patch199: 0001-bash-completion-fix-__get_startable_units.patch
+# PATCH-FIX-USTREAM added at 2014/04/28
+Patch200: 0002-sysctl-replaces-some-slashes-with-dots.patch
+# PATCH-FIX-USTREAM added at 2014/04/28
+Patch201: 0003-delta-do-not-use-unicode-chars-in-C-locale.patch
+# PATCH-FIX-USTREAM added at 2014/04/28
+Patch202: 0004-implement-a-union-to-pad-out-file_handle.patch
+# PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665)
+Patch203: respect-nfs-bg-option.patch
+# PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed.
+Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch
# UDEV PATCHES
# ============
@@ -418,6 +430,8 @@
Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch
# PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929)
Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch
+# PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931)
+Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@@ -764,6 +778,12 @@
%patch196 -p1
%patch197 -p1
%patch198 -p1
+%patch199 -p0
+%patch200 -p0
+%patch201 -p0
+%patch202 -p0
+%patch203 -p1
+%patch204 -p1
# udev patches
%patch1001 -p1
@@ -779,6 +799,7 @@
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
+%patch1013 -p1
# ensure generate files are removed
rm -f units/emergency.service
systemd.spec: same change
++++++ 0001-On_s390_con3270_disable_ANSI_colour_esc.patch ++++++
--- /var/tmp/diff_new_pack.7uSWKo/_old 2014-05-02 20:51:29.000000000 +0200
+++ /var/tmp/diff_new_pack.7uSWKo/_new 2014-05-02 20:51:29.000000000 +0200
@@ -1,8 +1,9 @@
---
- rules/99-systemd.rules.in | 2 -
- src/getty-generator/getty-generator.c | 2 -
- src/shared/util.c | 62 ++++++++++++++++++++++++++++++++--
- 3 files changed, 61 insertions(+), 5 deletions(-)
+ rules/99-systemd.rules.in | 2 -
+ src/core/manager.c | 24 +++++++++++---
+ src/shared/util.c | 77 ++++++++++++++++++++++++++++++++++++++++++++--
+ src/shared/util.h | 1
+ 4 files changed, 95 insertions(+), 9 deletions(-)
--- systemd-208/rules/99-systemd.rules.in
+++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000
@@ -15,34 +16,92 @@
KERNEL=="vport*", TAG+="systemd"
---- systemd-208/src/shared/util.c
-+++ systemd-208/src/shared/util.c 2014-01-31 11:54:07.222235280 +0000
-@@ -2967,6 +2967,7 @@ int status_vprintf(const char *status, b
+--- systemd-210/src/core/manager.c
++++ systemd-210/src/core/manager.c 2014-04-30 10:51:43.398735332 +0000
+@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres
+
+ #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1))
+
+-static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
++static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) {
+ char *p = buffer;
+
+ assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
+@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si
+ if (pos > 1) {
+ if (pos > 2)
+ p = mempset(p, ' ', pos-2);
+- p = stpcpy(p, ANSI_RED_ON);
++ if (ansi_console)
++ p = stpcpy(p, ANSI_RED_ON);
+ *p++ = '*';
+ }
+
+ if (pos > 0 && pos <= width) {
+- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
++ if (ansi_console)
++ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
+ *p++ = '*';
+ }
+
+@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si
+ *p++ = '*';
+ if (pos < width-1)
+ p = mempset(p, ' ', width-1-pos);
+- strcpy(p, ANSI_HIGHLIGHT_OFF);
++ if (ansi_console)
++ strcpy(p, ANSI_HIGHLIGHT_OFF);
+ }
+ }
+
+@@ -150,6 +153,7 @@ void manager_flip_auto_status(Manager *m
+ }
+
+ static void manager_print_jobs_in_progress(Manager *m) {
++ static int is_ansi_console = -1;
+ _cleanup_free_ char *job_of_n = NULL;
+ Iterator i;
+ Job *j;
+@@ -174,10 +178,20 @@ static void manager_print_jobs_in_progre
+ assert(counter == print_nr + 1);
+ assert(j);
+
++ if (_unlikely_(is_ansi_console < 0)) {
++ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC);
++ if (fd < 0)
++ is_ansi_console = 0;
++ else {
++ is_ansi_console = (int)ansi_console(fd);
++ close(fd);
++ }
++ }
++
+ cylon_pos = m->jobs_in_progress_iteration % 14;
+ if (cylon_pos >= 8)
+ cylon_pos = 14 - cylon_pos;
+- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos);
++ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console);
+
+ m->jobs_in_progress_iteration++;
+
+--- systemd-210/src/shared/util.c
++++ systemd-210/src/shared/util.c 2014-04-30 10:39:17.154736438 +0000
+@@ -2886,6 +2886,7 @@ int status_vprintf(const char *status, b
struct iovec iovec[6] = {};
int n = 0;
static bool prev_ephemeral;
-+ static int cached_on_tty = -1;
++ static int is_ansi_console = -1;
assert(format);
-@@ -2980,6 +2981,51 @@ int status_vprintf(const char *status, b
+@@ -2899,6 +2900,41 @@ int status_vprintf(const char *status, b
if (fd < 0)
return fd;
-+ if (_unlikely_(cached_on_tty < 0)) {
-+ cached_on_tty = isatty(fd) > 0;
-+ if (cached_on_tty) {
-+ const char *e = getenv("TERM");
-+ if (e && (strcmp(e, "dumb") == 0 || strcmp(e, "ibm327x") == 0)) {
-+ char *mode = NULL;
-+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
-+ if (r < 0 || !mode || !streq(mode, "3270"))
-+ cached_on_tty = 0;
-+ }
-+ }
-+ }
++ if (_unlikely_(is_ansi_console < 0))
++ is_ansi_console = (int)ansi_console(fd);
+
-+ if (status && !cached_on_tty) {
++ if (status && !is_ansi_console) {
+ const char *esc, *ptr;
+ esc = strchr(status, 0x1B);
+ if (esc && (ptr = strpbrk(esc, "SOFDTI*"))) {
@@ -77,14 +136,14 @@
if (ellipse) {
char *e;
size_t emax, sl;
-@@ -3002,8 +3048,12 @@ int status_vprintf(const char *status, b
+@@ -2921,8 +2957,12 @@ int status_vprintf(const char *status, b
}
}
- if (prev_ephemeral)
- IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
+ if (prev_ephemeral) {
-+ if (cached_on_tty)
++ if (is_ansi_console)
+ IOVEC_SET_STRING(iovec[n++], "\r" ANSI_ERASE_TO_END_OF_LINE);
+ else
+ IOVEC_SET_STRING(iovec[n++], "\r");
@@ -92,7 +151,7 @@
prev_ephemeral = ephemeral;
if (status) {
-@@ -3267,8 +3317,14 @@ void columns_lines_cache_reset(int signu
+@@ -3169,12 +3209,43 @@ void columns_lines_cache_reset(int signu
bool on_tty(void) {
static int cached_on_tty = -1;
@@ -101,10 +160,49 @@
cached_on_tty = isatty(STDOUT_FILENO) > 0;
+ if (cached_on_tty) {
+ const char *e = getenv("TERM");
-+ if (e && (strcmp(e, "dumb") == 0))
-+ cached_on_tty = 0;
++ if (!e)
++ return cached_on_tty;
++ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) {
++ char *mode = NULL;
++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
++ if (r < 0 || !mode || !streq(mode, "3270"))
++ cached_on_tty = 0;
++ }
+ }
+ }
return cached_on_tty;
}
+
++bool ansi_console(int fd) {
++ static int cached_ansi_console = -1;
++
++ if (_unlikely_(cached_ansi_console < 0)) {
++ cached_ansi_console = isatty(fd) > 0;
++ if (cached_ansi_console) {
++ const char *e = getenv("TERM");
++ if (e && (streq(e, "dumb") || strneq(e, "ibm3", 4))) {
++ char *mode = NULL;
++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
++ if (r < 0 || !mode || !streq(mode, "3270"))
++ cached_ansi_console = 0;
++ }
++ }
++ }
++
++ return cached_ansi_console;
++}
++
+ int running_in_chroot(void) {
+ struct stat a = {}, b = {};
+
+--- systemd-210/src/shared/util.h
++++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000
+@@ -418,6 +418,7 @@ unsigned lines(void);
+ void columns_lines_cache_reset(int _unused_ signum);
+
+ bool on_tty(void);
++bool ansi_console(int fd);
+
+ static inline const char *ansi_highlight(void) {
+ return on_tty() ? ANSI_HIGHLIGHT_ON : "";
++++++ 0001-bash-completion-fix-__get_startable_units.patch ++++++
>From a163b64c4b08e8a4ad39a9a295acf3d1634024a3 Mon Sep 17 00:00:00 2001
From: Dan Kilman <dankilman(a)gmail.com>
Date: Sun, 13 Apr 2014 18:06:13 +0300
Subject: [PATCH] bash completion: fix __get_startable_units
---
shell-completion/bash/systemctl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git shell-completion/bash/systemctl shell-completion/bash/systemctl
index 992e52d..e1c8420 100644
--- shell-completion/bash/systemctl
+++ shell-completion/bash/systemctl
@@ -56,7 +56,7 @@ __get_all_units () { __systemctl $1 list-units --all \
__get_active_units () { __systemctl $1 list-units \
| { while read -r a b; do echo " $a"; done; }; }
__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \
- | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed " ]] && echo " $a"; done; }; }
+ | { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; }
__get_failed_units () { __systemctl $1 list-units \
| { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; }
__get_enabled_units () { __systemctl $1 list-unit-files \
--
1.7.9.2
++++++ 0002-sysctl-replaces-some-slashes-with-dots.patch ++++++
>From 2e573fcf8754fdfe0db0a783b1631ec1679b063a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Wed, 16 Apr 2014 21:33:46 -0400
Subject: [PATCH] sysctl: replaces some slashes with dots
It turns out that plain sysctl understands a.b/c syntax to write to
/proc/sys/a/b.c. Support this for compatibility.
https://bugs.freedesktop.org/show_bug.cgi?id=77466
---
man/sysctl.d.xml | 29 +++++++++++++++++++++--------
src/sysctl/sysctl.c | 18 ++++++++++++++++--
2 files changed, 37 insertions(+), 10 deletions(-)
diff --git man/sysctl.d.xml man/sysctl.d.xml
index 00a857b..db53b49 100644
--- man/sysctl.d.xml
+++ man/sysctl.d.xml
@@ -68,13 +68,26 @@
<para>The configuration files contain a list of
variable assignments, separated by newlines. Empty
lines and lines whose first non-whitespace character
- is # or ; are ignored.</para>
-
- <para>Note that both / and . are accepted as label
- separators within sysctl variable
- names. <literal>kernel.domainname=foo</literal> and
- <literal>kernel/domainname=foo</literal> hence are
- entirely equivalent.</para>
+ is <literal>#</literal> or <literal>;</literal> are
+ ignored.</para>
+
+ <para>Note that either <literal>/</literal> or
+ <literal>.</literal> may be used as separators within
+ sysctl variable names. If the first separator is a
+ slash, remaining slashes and dots are left intact. If
+ the first separator is a dot, dots and slashes are
+ interchanged. <literal>kernel.domainname=foo</literal>
+ and <literal>kernel/domainname=foo</literal> are
+ equivalent and will cause <literal>foo</literal> to
+ be written to
+ <filename>/proc/sys/kernel/domainname</filename>.
+ Either
+ <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
+ or
+ <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
+ may be used to refer to
+ <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
+ </para>
<para>Each configuration file shall be named in the
style of <filename><replaceable>program</replaceable>.conf</filename>.
@@ -109,7 +122,7 @@
early on boot. The network interface-specific options
will also be applied individually for each network
interface as it shows up in the system. (More
- specifically, that is
+ specifically,
<filename>net.ipv4.conf.*</filename>,
<filename>net.ipv6.conf.*</filename>,
<filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>)</para>
diff --git src/sysctl/sysctl.c src/sysctl/sysctl.c
index 283eefe..06defa5 100644
--- src/sysctl/sysctl.c
+++ src/sysctl/sysctl.c
@@ -48,12 +48,26 @@ static const char conf_file_dirs[] =
#endif
;
-static char *normalize_sysctl(char *s) {
+static char* normalize_sysctl(char *s) {
char *n;
- for (n = s; *n; n++)
+ n = strpbrk(s, "/.");
+ /* If the first separator is a slash, the path is
+ * assumed to be normalized and slashes remain slashes
+ * and dots remains dots. */
+ if (!n || *n == '/')
+ return s;
+
+ /* Otherwise, dots become slashes and slashes become
+ * dots. Fun. */
+ while (n) {
if (*n == '.')
*n = '/';
+ else
+ *n = '.';
+
+ n = strpbrk(n + 1, "/.");
+ }
return s;
}
--
1.7.9.2
++++++ 0003-delta-do-not-use-unicode-chars-in-C-locale.patch ++++++
>From 00a5cc3a63c125633e822f39efd9c32223169f62 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek(a)in.waw.pl>
Date: Wed, 16 Apr 2014 23:33:41 -0400
Subject: [PATCH] delta: do not use unicode chars in C locale
https://bugzilla.redhat.com/show_bug.cgi?id=1088418
---
src/delta/delta.c | 40 +++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git src/delta/delta.c src/delta/delta.c
index 369f8f8..8fc37c5 100644
--- src/delta/delta.c
+++ src/delta/delta.c
@@ -85,6 +85,10 @@ static void pager_open_if_enabled(void) {
pager_open(false);
}
+static inline const char* arrow(void) {
+ return is_locale_utf8() ? "→" : "->";
+}
+
static int equivalent(const char *a, const char *b) {
_cleanup_free_ char *x = NULL, *y = NULL;
@@ -103,8 +107,9 @@ static int notify_override_masked(const char *top, const char *bottom) {
if (!(arg_flags & SHOW_MASKED))
return 0;
- printf("%s%s%s %s → %s\n",
- ansi_highlight_red(), "[MASKED]", ansi_highlight_off(), top, bottom);
+ printf("%s%s%s %s %s %s\n",
+ ansi_highlight_red(), "[MASKED]", ansi_highlight_off(),
+ top, arrow(), bottom);
return 1;
}
@@ -112,8 +117,9 @@ static int notify_override_equivalent(const char *top, const char *bottom) {
if (!(arg_flags & SHOW_EQUIVALENT))
return 0;
- printf("%s%s%s %s → %s\n",
- ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(), top, bottom);
+ printf("%s%s%s %s %s %s\n",
+ ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(),
+ top, arrow(), bottom);
return 1;
}
@@ -121,8 +127,9 @@ static int notify_override_redirected(const char *top, const char *bottom) {
if (!(arg_flags & SHOW_REDIRECTED))
return 0;
- printf("%s%s%s %s → %s\n",
- ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(), top, bottom);
+ printf("%s%s%s %s %s %s\n",
+ ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(),
+ top, arrow(), bottom);
return 1;
}
@@ -130,8 +137,9 @@ static int notify_override_overridden(const char *top, const char *bottom) {
if (!(arg_flags & SHOW_OVERRIDDEN))
return 0;
- printf("%s%s%s %s → %s\n",
- ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(), top, bottom);
+ printf("%s%s%s %s %s %s\n",
+ ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(),
+ top, arrow(), bottom);
return 1;
}
@@ -139,8 +147,9 @@ static int notify_override_extended(const char *top, const char *bottom) {
if (!(arg_flags & SHOW_EXTENDED))
return 0;
- printf("%s%s%s %s → %s\n",
- ansi_highlight(), "[EXTENDED]", ansi_highlight_off(), top, bottom);
+ printf("%s%s%s %s %s %s\n",
+ ansi_highlight(), "[EXTENDED]", ansi_highlight_off(),
+ top, arrow(), bottom);
return 1;
}
@@ -241,7 +250,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
return -ENOMEM;
d = p + strlen(toppath) + 1;
- log_debug("Adding at top: %s → %s", d, p);
+ log_debug("Adding at top: %s %s %s", d, arrow(), p);
k = hashmap_put(top, d, p);
if (k >= 0) {
p = strdup(p);
@@ -253,7 +262,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
return k;
}
- log_debug("Adding at bottom: %s → %s", d, p);
+ log_debug("Adding at bottom: %s %s %s", d, arrow(), p);
free(hashmap_remove(bottom, d));
k = hashmap_put(bottom, d, p);
if (k < 0) {
@@ -276,7 +285,8 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
if (!p)
return -ENOMEM;
- log_debug("Adding to drops: %s → %s → %s", unit, basename(p), p);
+ log_debug("Adding to drops: %s %s %s %s %s",
+ unit, arrow(), basename(p), arrow(), p);
k = hashmap_put(h, basename(p), p);
if (k < 0) {
free(p);
@@ -328,7 +338,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
if (!p)
return -ENOMEM;
- log_debug("Adding at top: %s → %s", basename(p), p);
+ log_debug("Adding at top: %s %s %s", basename(p), arrow(), p);
k = hashmap_put(top, basename(p), p);
if (k >= 0) {
p = strdup(p);
@@ -339,7 +349,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
return k;
}
- log_debug("Adding at bottom: %s → %s", basename(p), p);
+ log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p);
free(hashmap_remove(bottom, basename(p)));
k = hashmap_put(bottom, basename(p), p);
if (k < 0) {
--
1.7.9.2
++++++ 0004-implement-a-union-to-pad-out-file_handle.patch ++++++
>From 370c860f748d149097710dc7952a64f627db9de7 Mon Sep 17 00:00:00 2001
From: Dave Reisner <dreisner(a)archlinux.org>
Date: Sat, 19 Apr 2014 13:22:35 -0400
Subject: [PATCH] implement a union to pad out file_handle
Cases where name_to_handle_at is used allocated the full struct to be
MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong
since handle_bytes should describe the length of the flexible array
member and not the whole struct.
Define a union type which includes sufficient padding to allow
assignment of MAX_HANDLE_SZ to be correct.
---
src/libudev/libudev-monitor.c | 6 ++----
src/readahead/readahead-common.c | 6 ++----
src/shared/util.h | 6 ++++++
src/tmpfiles/tmpfiles.c | 11 ++++-------
4 files changed, 14 insertions(+), 15 deletions(-)
diff --git src/libudev/libudev-monitor.c src/libudev/libudev-monitor.c
index 3f7436b..0a2ab82 100644
--- src/libudev/libudev-monitor.c
+++ src/libudev/libudev-monitor.c
@@ -108,15 +108,13 @@ static struct udev_monitor *udev_monitor_new(struct udev *udev)
/* we consider udev running when /dev is on devtmpfs */
static bool udev_has_devtmpfs(struct udev *udev) {
- struct file_handle *h;
+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, };
int mount_id;
_cleanup_fclose_ FILE *f = NULL;
char line[LINE_MAX], *e;
int r;
- h = alloca(MAX_HANDLE_SZ);
- h->handle_bytes = MAX_HANDLE_SZ;
- r = name_to_handle_at(AT_FDCWD, "/dev", h, &mount_id, 0);
+ r = name_to_handle_at(AT_FDCWD, "/dev", &h.handle, &mount_id, 0);
if (r < 0)
return false;
diff --git src/readahead/readahead-common.c src/readahead/readahead-common.c
index 5ffa88b..49679fc 100644
--- src/readahead/readahead-common.c
+++ src/readahead/readahead-common.c
@@ -75,7 +75,7 @@ int fs_on_ssd(const char *p) {
if (major(st.st_dev) == 0) {
_cleanup_fclose_ FILE *f = NULL;
int mount_id;
- struct file_handle *h;
+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ, };
/* Might be btrfs, which exposes "ssd" as mount flag if it is on ssd.
*
@@ -83,9 +83,7 @@ int fs_on_ssd(const char *p) {
* and then lookup the mount ID in mountinfo to find
* the mount options. */
- h = alloca(MAX_HANDLE_SZ);
- h->handle_bytes = MAX_HANDLE_SZ;
- r = name_to_handle_at(AT_FDCWD, p, h, &mount_id, AT_SYMLINK_FOLLOW);
+ r = name_to_handle_at(AT_FDCWD, p, &h.handle, &mount_id, AT_SYMLINK_FOLLOW);
if (r < 0)
return false;
diff --git src/shared/util.h src/shared/util.h
index 900f1cf..891848a 100644
--- src/shared/util.h
+++ src/shared/util.h
@@ -22,6 +22,7 @@
***/
#include <alloca.h>
+#include <fcntl.h>
#include <inttypes.h>
#include <time.h>
#include <sys/time.h>
@@ -883,3 +884,8 @@ int fd_warn_permissions(const char *path
unsigned long personality_from_string(const char *p);
const char *personality_to_string(unsigned long);
+
+union file_handle_union {
+ struct file_handle handle;
+ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ];
+};
diff --git src/tmpfiles/tmpfiles.c src/tmpfiles/tmpfiles.c
index 33e7cbc..04b472d 100644
--- src/tmpfiles/tmpfiles.c
+++ src/tmpfiles/tmpfiles.c
@@ -217,19 +217,16 @@ static bool unix_socket_alive(const char *fn) {
}
static int dir_is_mount_point(DIR *d, const char *subdir) {
- struct file_handle *h;
+ union file_handle_union h = { .handle.handle_bytes = MAX_HANDLE_SZ };
int mount_id_parent, mount_id;
int r_p, r;
- h = alloca(MAX_HANDLE_SZ);
-
- h->handle_bytes = MAX_HANDLE_SZ;
- r_p = name_to_handle_at(dirfd(d), ".", h, &mount_id_parent, 0);
+ r_p = name_to_handle_at(dirfd(d), ".", &h.handle, &mount_id_parent, 0);
if (r_p < 0)
r_p = -errno;
- h->handle_bytes = MAX_HANDLE_SZ;
- r = name_to_handle_at(dirfd(d), subdir, h, &mount_id, 0);
+ h.handle.handle_bytes = MAX_HANDLE_SZ;
+ r = name_to_handle_at(dirfd(d), subdir, &h.handle, &mount_id, 0);
if (r < 0)
r = -errno;
--
1.7.9.2
++++++ 1013-no-runtime-PM-for-IBM-consoles.patch ++++++
--- systemd-210/rules/42-usb-hid-pm.rules.old 2014-04-23 10:54:31.694485615 +0200
+++ systemd-210/rules/42-usb-hid-pm.rules 2014-04-23 10:55:21.969423056 +0200
@@ -22,8 +22,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{id
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="413c", ATTR{idProduct}=="0000", TEST=="power/control", ATTR{power/control}="auto"
# IBM remote access
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4001", TEST=="power/control", ATTR{power/control}="auto"
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="04b3", ATTR{idProduct}=="4002", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto"
# Raritan Computer, Inc KVM.
++++++ respect-nfs-bg-option.patch ++++++
--- systemd-210/src/fstab-generator/fstab-generator.c 2014-02-17 15:49:21.070855641 +0100
+++ systemd-210/src/fstab-generator/fstab-generator.c 2014-04-25 16:25:13.256106126 +0200
@@ -255,10 +255,12 @@
"SourcePath=%s\n",
source);
- if (post && !noauto && !nofail && !automount)
- fprintf(f,
- "Before=%s\n",
- post);
+ if (post && !noauto && !nofail && !automount) {
+ if (!streq(type, "nfs") || (streq(type, "nfs") && !strstr(opts, "bg")))
+ fprintf(f,
+ "Before=%s\n",
+ post);
+ }
r = add_fsck(f, what, where, type, passno);
if (r < 0)
++++++ shut-up-annoying-assertion-monotonic-clock-message.patch ++++++
Stop flooding the kernel's message ring buffer with useless
messages on dual_timestamp_is_set is failed. This is a backport
from upstream code.
---
src/libsystemd/sd-event/sd-event.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- systemd-210/src/libsystemd/sd-event/sd-event.c
+++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000
@@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e,
_public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) {
assert_return(e, -EINVAL);
assert_return(usec, -EINVAL);
- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA);
assert_return(!event_pid_changed(e), -ECHILD);
+ /* If we haven't run yet, just get the actual time */
+ if (!dual_timestamp_is_set(&e->timestamp))
+ return -ENODATA;
+
*usec = e->timestamp.realtime;
return 0;
}
@@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s
_public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) {
assert_return(e, -EINVAL);
assert_return(usec, -EINVAL);
- assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA);
assert_return(!event_pid_changed(e), -ECHILD);
+ /* If we haven't run yet, just get the actual time */
+ if (!dual_timestamp_is_set(&e->timestamp))
+ return -ENODATA;
+
*usec = e->timestamp.monotonic;
return 0;
}
++++++ udev-generate-peristent-rule.sh ++++++
--- /var/tmp/diff_new_pack.7uSWKo/_old 2014-05-02 20:51:30.000000000 +0200
+++ /var/tmp/diff_new_pack.7uSWKo/_new 2014-05-02 20:51:30.000000000 +0200
@@ -192,6 +192,18 @@
echo $valid_macaddr
}
+valid_dev_type()
+{
+ local dev_type="$1"
+
+ case "$dev_type" in
+ [0-32])
+ echo "$dev_type" ;;
+ *)
+ echo "invalid" ;;
+ esac
+}
+
generate_comment()
{
local pci_id="$1"
@@ -272,6 +284,10 @@
for _dev in $SYSPATH/*; do
if [ -L "$_dev/device" ]; then
+ local _dev_type="$(cat $_dev/type 2>/dev/null)"
+ if [ "$(valid_dev_type $_dev_type)" == "invalid" ]; then
+ continue;
+ fi
_dev="$(basename $_dev 2>/dev/null)"
netdev[$count]="$_dev"
count=$((count + 1))
@@ -445,6 +461,9 @@
if [ -z "$dev_type" ]; then
log_error "unable to retrieve dev_type for interface $interface."
exit 1
+elif [ "$(valid_dev_type $dev_type)" == "invalid" ]; then
+ log_info "$interface not a supported device."
+ exit 1
fi
[ "$use_verbose" -eq 1 ] && echo "I: TYPE=$dev_type"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2014-05-02 20:51:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2014-04-17 14:43:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new/libzypp.changes 2014-05-02 20:51:24.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Apr 28 15:34:44 CEST 2014 - ma(a)suse.de
+
+- Derive initial AutoInstalled file from history
+- Target: maintain AutoInstalled database file
+- version 14.18.0 (17)
+
+-------------------------------------------------------------------
Old:
----
libzypp-14.17.5.tar.bz2
New:
----
libzypp-14.18.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.OfkATo/_old 2014-05-02 20:51:25.000000000 +0200
+++ /var/tmp/diff_new_pack.OfkATo/_new 2014-05-02 20:51:25.000000000 +0200
@@ -23,7 +23,7 @@
Summary: Package, Patch, Pattern, and Product Management
License: GPL-2.0+
Group: System/Packages
-Version: 14.17.5
+Version: 14.18.0
Release: 0
Source: %{name}-%{version}.tar.bz2
Source1: %{name}-rpmlintrc
++++++ libzypp-14.17.5.tar.bz2 -> libzypp-14.18.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/VERSION.cmake new/libzypp-14.18.0/VERSION.cmake
--- old/libzypp-14.17.5/VERSION.cmake 2014-04-15 17:04:45.000000000 +0200
+++ new/libzypp-14.18.0/VERSION.cmake 2014-04-28 15:36:46.000000000 +0200
@@ -60,9 +60,9 @@
#
SET(LIBZYPP_MAJOR "14")
SET(LIBZYPP_COMPATMINOR "17")
-SET(LIBZYPP_MINOR "17")
-SET(LIBZYPP_PATCH "5")
+SET(LIBZYPP_MINOR "18")
+SET(LIBZYPP_PATCH "0")
#
-# LAST RELEASED: 14.17.5 (17)
+# LAST RELEASED: 14.18.0 (17)
# (The number in parenthesis is LIBZYPP_COMPATMINOR)
#=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/package/libzypp.changes new/libzypp-14.18.0/package/libzypp.changes
--- old/libzypp-14.17.5/package/libzypp.changes 2014-04-15 17:04:45.000000000 +0200
+++ new/libzypp-14.18.0/package/libzypp.changes 2014-04-28 15:36:46.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Mon Apr 28 15:34:44 CEST 2014 - ma(a)suse.de
+
+- Derive initial AutoInstalled file from history
+- Target: maintain AutoInstalled database file
+- version 14.18.0 (17)
+
+-------------------------------------------------------------------
Tue Apr 15 17:03:30 CEST 2014 - ma(a)suse.de
- Factor out CommitPackageCache for standalone usage. (Fate#317077)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/CMakeLists.txt new/libzypp-14.18.0/zypp/CMakeLists.txt
--- old/libzypp-14.17.5/zypp/CMakeLists.txt 2014-04-03 19:24:12.000000000 +0200
+++ new/libzypp-14.18.0/zypp/CMakeLists.txt 2014-04-28 15:36:46.000000000 +0200
@@ -571,7 +571,7 @@
SET( zypp_target_SRCS
target/RpmPostTransCollector.cc
target/RequestedLocalesFile.cc
- target/SoftLocksFile.cc
+ target/SolvIdentFile.cc
target/HardLocksFile.cc
target/CommitPackageCache.cc
target/CommitPackageCacheImpl.cc
@@ -586,7 +586,7 @@
SET( zypp_target_HEADERS
target/RpmPostTransCollector.h
target/RequestedLocalesFile.h
- target/SoftLocksFile.h
+ target/SolvIdentFile.h
target/HardLocksFile.h
target/CommitPackageCache.h
target/CommitPackageCacheImpl.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/ResPool.cc new/libzypp-14.18.0/zypp/ResPool.cc
--- old/libzypp-14.17.5/zypp/ResPool.cc 2014-02-11 23:52:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/ResPool.cc 2014-04-28 15:36:46.000000000 +0200
@@ -83,26 +83,6 @@
Repository ResPool::reposFind( const std::string & alias_r ) const
{ return _pimpl->reposFind( alias_r ); }
-#ifdef WITHSOFTLOCKS
- bool ResPool::autoSoftLocksEmpty() const
- { return _pimpl->autoSoftLocks().empty(); }
-
- ResPool::size_type ResPool::autoSoftLocksSize() const
- { return _pimpl->autoSoftLocks().size(); }
-
- ResPool::autoSoftLocks_iterator ResPool::autoSoftLocksBegin() const
- { return _pimpl->autoSoftLocks().begin(); }
-
- ResPool::autoSoftLocks_iterator ResPool::autoSoftLocksEnd() const
- { return _pimpl->autoSoftLocks().end(); }
-
- void ResPool::setAutoSoftLocks( const AutoSoftLocks & newLocks_r )
- { _pimpl->setAutoSoftLocks( newLocks_r ); }
-
- void ResPool::getActiveSoftLocks( AutoSoftLocks & activeLocks_r )
- { _pimpl->getActiveSoftLocks( activeLocks_r ); }
-#endif
-
bool ResPool::hardLockQueriesEmpty() const
{ return _pimpl->hardLockQueries().empty(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/ResPool.h new/libzypp-14.18.0/zypp/ResPool.h
--- old/libzypp-14.17.5/zypp/ResPool.h 2014-02-11 23:52:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/ResPool.h 2014-04-28 15:36:46.000000000 +0200
@@ -320,42 +320,6 @@
bool isAvailableLocale( const Locale & locale_r ) const;
//@}
-#ifdef WITHSOFTLOCKS
- public:
- /** \name Handle automatic soft-locks.
- *
- * Solvables with and ident listed here are per default created with
- * a setSoftLock applied. I.e. the \ref Resolver should not automatically
- * select them, if they are just recommended.
- *
- * This list is considered when adding new repos to the pool. It is
- * \b not the list of currently softLocked items.
- *
- * Mainly used to re-apply soft-locks remembered during the last commit.
- */
- //@{
- typedef pool::PoolTraits::AutoSoftLocks AutoSoftLocks;
- typedef pool::PoolTraits::autoSoftLocks_iterator autoSoftLocks_iterator;
-
- bool autoSoftLocksEmpty() const;
- size_type autoSoftLocksSize() const;
- autoSoftLocks_iterator autoSoftLocksBegin() const;
- autoSoftLocks_iterator autoSoftLocksEnd() const;
-
- /** Set a new soft-lock list.
- * The soft-locks of existing PoolItems are adjusted according
- * to the list. (usually called on target load)
- */
- void setAutoSoftLocks( const AutoSoftLocks & newLocks_r );
-
- /** Suggest a new soft-lock list based on the current selection.
- * Based on the the current soft-lock list. Items tagged to be
- * installed are removed, and those tagged to be deleted are added.
- * (usually remembered on commit).
- */
- void getActiveSoftLocks( AutoSoftLocks & activeLocks_r );
- //@}
-#endif
public:
/** \name Handle hard locks (e.g set from /etc/zypp/locks).
*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/pool/PoolImpl.h new/libzypp-14.18.0/zypp/pool/PoolImpl.h
--- old/libzypp-14.17.5/zypp/pool/PoolImpl.h 2014-02-11 23:52:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/pool/PoolImpl.h 2014-04-28 15:36:46.000000000 +0200
@@ -298,72 +298,6 @@
return setChanged;
}
-#ifdef WITHSOFTLOCKS
- public:
- typedef PoolTraits::AutoSoftLocks AutoSoftLocks;
- typedef PoolTraits::autoSoftLocks_iterator autoSoftLocks_iterator;
-
- const AutoSoftLocks & autoSoftLocks() const
- { return _autoSoftLocks; }
-
- bool autoSoftLockAppliesTo( sat::Solvable solv_r ) const
- { return( _autoSoftLocks.find( solv_r.ident() ) != _autoSoftLocks.end() ); }
-
- void setAutoSoftLocks( const AutoSoftLocks & newLocks_r )
- {
- MIL << "Apply " << newLocks_r.size() << " AutoSoftLocks: " << newLocks_r << endl;
- _autoSoftLocks = newLocks_r;
- // now adjust the pool status
- for_( it, begin(), end() )
- {
- if ( ! it->status().isKept() )
- continue;
-
- if ( autoSoftLockAppliesTo( it->satSolvable() ) )
- it->status().setSoftLock( ResStatus::USER );
- else
- it->status().resetTransact( ResStatus::USER );
- }
- }
-
- void getActiveSoftLocks( AutoSoftLocks & activeLocks_r )
- {
- activeLocks_r = _autoSoftLocks; // current soft-locks
- AutoSoftLocks todel; // + names to be deleted
- AutoSoftLocks toins; // - names to be installed
-
- for_( it, begin(), end() )
- {
- ResStatus & status( it->status() );
- if ( ! ( status.isByUser() || status.isByApplLow() ) )
- continue; // ignore non-user requests; ApplLow means selected
- // by solver, but on behalf of a user request.
-
- switch ( status.getTransactValue() )
- {
- case ResStatus::KEEP_STATE:
- // Filter only items included in the last recommended set.
- if ( status.isRecommended() )
- activeLocks_r.insert( it->satSolvable().ident() );
- break;
- case ResStatus::LOCKED:
- // NOOP
- break;
- case ResStatus::TRANSACT:
- (status.isInstalled() ? todel : toins).insert( it->satSolvable().ident() );
- break;
- }
- }
- for_( it, todel.begin(), todel.end() )
- {
- activeLocks_r.insert( *it );
- }
- for_( it, toins.begin(), toins.end() )
- {
- activeLocks_r.erase( *it );
- }
- }
-#endif
public:
const ContainerT & store() const
{
@@ -394,13 +328,6 @@
// remember products for buddy processing (requires clean store)
if ( s.isKind( ResKind::product ) )
addedProducts.push_back( pi );
-#ifdef WITHSOFTLOCKS
- // and on the fly check for weak locks...
- if ( autoSoftLockAppliesTo( s ) )
- {
- pi.status().setSoftLock( ResStatus::USER );
- }
-#endif
if ( !addedItems )
addedItems = true;
}
@@ -480,10 +407,6 @@
mutable shared_ptr<ResPoolProxy> _poolProxy;
private:
-#ifdef WITHSOFTLOCKS
- /** Set of solvable idents that should be soft locked per default. */
- AutoSoftLocks _autoSoftLocks;
-#endif
/** Set of queries that define hardlocks. */
HardLockQueries _hardLockQueries;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/pool/PoolTraits.h new/libzypp-14.18.0/zypp/pool/PoolTraits.h
--- old/libzypp-14.17.5/zypp/pool/PoolTraits.h 2014-02-11 23:52:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/pool/PoolTraits.h 2014-04-28 15:36:46.000000000 +0200
@@ -84,12 +84,6 @@
/** list of known Repositories */
typedef sat::Pool::RepositoryIterator repository_iterator;
-#ifdef WITHSOFTLOCKS
- /** soft locks */
- typedef std::tr1::unordered_set<IdString> AutoSoftLocks;
- typedef AutoSoftLocks::const_iterator autoSoftLocks_iterator;
-#endif
-
/** hard locks from etc/zypp/locks */
typedef std::list<PoolQuery> HardLockQueries;
typedef HardLockQueries::const_iterator hardLockQueries_iterator;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/Pool.cc new/libzypp-14.18.0/zypp/sat/Pool.cc
--- old/libzypp-14.17.5/zypp/sat/Pool.cc 2013-03-20 09:29:30.000000000 +0100
+++ new/libzypp-14.18.0/zypp/sat/Pool.cc 2014-04-28 15:36:46.000000000 +0200
@@ -220,11 +220,8 @@
Pool::MultiversionIterator Pool::multiversionEnd() const { return myPool().multiversionList().end(); }
bool Pool::isMultiversion( IdString ident_r ) const { return myPool().isMultiversion( ident_r ); }
- bool Pool::onSystemByUserEmpty() const { return myPool().onSystemByUserList().empty(); }
- size_t Pool::onSystemByUserSize() const { return myPool().onSystemByUserList().size(); }
- Pool::OnSystemByUserIterator Pool::onSystemByUserBegin() const { return myPool().onSystemByUserList().begin(); }
- Pool::OnSystemByUserIterator Pool::onSystemByUserEnd() const { return myPool().onSystemByUserList().end(); }
- bool Pool::isOnSystemByUser( IdString ident_r ) const { return myPool().isOnSystemByUser( ident_r ); }
+ Queue Pool::autoInstalled() const { return myPool().autoInstalled(); }
+ void Pool::setAutoInstalled( const Queue & autoInstalled_r ){ myPool().setAutoInstalled( autoInstalled_r ); }
/******************************************************************
**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/Pool.h new/libzypp-14.18.0/zypp/sat/Pool.h
--- old/libzypp-14.17.5/zypp/sat/Pool.h 2013-10-25 15:21:46.000000000 +0200
+++ new/libzypp-14.18.0/zypp/sat/Pool.h 2014-04-28 15:36:46.000000000 +0200
@@ -19,6 +19,7 @@
#include "zypp/sat/detail/PoolMember.h"
#include "zypp/Repository.h"
#include "zypp/sat/WhatProvides.h"
+#include "zypp/sat/Queue.h"
///////////////////////////////////////////////////////////////////
namespace zypp
@@ -226,18 +227,12 @@
//@}
public:
- /** \name Installed on behalf of a user request hint.
- * This is a hint guessed by evaluating an available install history.
- */
+ /** \name Autoinstalled */
//@{
- typedef IdStringSet::const_iterator OnSystemByUserIterator;
-
- bool onSystemByUserEmpty() const;
- size_t onSystemByUserSize() const;
- OnSystemByUserIterator onSystemByUserBegin() const;
- OnSystemByUserIterator onSystemByUserEnd() const;
-
- bool isOnSystemByUser( IdString ident_r ) const;
+ /** Get ident list of all autoinstalled solvables. */
+ Queue autoInstalled() const;
+ /** Set ident list of all autoinstalled solvables. */
+ void setAutoInstalled( const Queue & autoInstalled_r );
//@}
public:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/Queue.h new/libzypp-14.18.0/zypp/sat/Queue.h
--- old/libzypp-14.17.5/zypp/sat/Queue.h 2013-12-18 12:36:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/sat/Queue.h 2014-04-28 15:36:46.000000000 +0200
@@ -26,9 +26,14 @@
///////////////////////////////////////////////////////////////////
namespace sat
{
+ class Queue;
+ typedef Queue SolvableQueue; ///< Queue with Solvable ids
+ typedef Queue StringQueue; ///< Queue with String ids
+
///////////////////////////////////////////////////////////////////
/// \class Queue
/// \brief Libsolv Id queue wrapper.
+ /// \todo template value_type to work with IString and other Id based types
///////////////////////////////////////////////////////////////////
class Queue
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/Transaction.cc new/libzypp-14.18.0/zypp/sat/Transaction.cc
--- old/libzypp-14.17.5/zypp/sat/Transaction.cc 2014-01-24 08:44:53.000000000 +0100
+++ new/libzypp-14.18.0/zypp/sat/Transaction.cc 2014-04-28 15:36:46.000000000 +0200
@@ -189,6 +189,12 @@
int installedResult( Queue & result_r ) const
{ return ::transaction_installedresult( _trans, result_r ); }
+ StringQueue autoInstalled() const
+ { return _autoInstalled; }
+
+ void autoInstalled( const StringQueue & queue_r )
+ { _autoInstalled = queue_r; }
+
public:
StepType stepType( Solvable solv_r ) const
{
@@ -281,6 +287,8 @@
set_type _systemErase; // @System packages to be eased (otherse are TRANSACTION_IGNORE)
pmmap_type _pmMap; // Post mortem data of deleted @System solvables
+ StringQueue _autoInstalled; // ident strings of all packages that would be auto-installed after the transaction is run.
+
public:
/** Offer default Impl. */
static shared_ptr<Impl> nullimpl()
@@ -346,6 +354,11 @@
int Transaction::installedResult( Queue & result_r ) const
{ return _pimpl->installedResult( result_r ); }
+ StringQueue Transaction::autoInstalled() const
+ { return _pimpl->autoInstalled(); }
+
+ void Transaction::autoInstalled( const StringQueue & queue_r )
+ { _pimpl->autoInstalled( queue_r ); }
std::ostream & operator<<( std::ostream & str, const Transaction & obj )
{ return str << *obj._pimpl; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/Transaction.h new/libzypp-14.18.0/zypp/sat/Transaction.h
--- old/libzypp-14.17.5/zypp/sat/Transaction.h 2014-01-24 08:44:53.000000000 +0100
+++ new/libzypp-14.18.0/zypp/sat/Transaction.h 2014-04-28 15:36:46.000000000 +0200
@@ -24,6 +24,7 @@
#include "zypp/sat/SolvIterMixin.h"
#include "zypp/sat/Solvable.h"
+#include "zypp/sat/Queue.h"
#include "zypp/PoolItem.h"
@@ -34,8 +35,6 @@
namespace sat
{ /////////////////////////////////////////////////////////////////
- class Queue;
-
namespace detail
{
/** Needs to be outside \ref Transaction in order to be usable in SolvIterMixin. */
@@ -178,6 +177,12 @@
* packages is returned. (wraps libsolv::transaction_installedresult) */
int installedResult( Queue & result_r ) const;
+ /** Return the ident strings of all packages that would be auto-installed after the transaction is run. */
+ StringQueue autoInstalled() const;
+
+ /** Set the ident strings of all packages that would be auto-installed after the transaction is run. */
+ void autoInstalled( const StringQueue & queue_r );
+
public:
/** Implementation */
class Impl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/detail/PoolImpl.cc new/libzypp-14.18.0/zypp/sat/detail/PoolImpl.cc
--- old/libzypp-14.17.5/zypp/sat/detail/PoolImpl.cc 2014-04-04 19:00:12.000000000 +0200
+++ new/libzypp-14.18.0/zypp/sat/detail/PoolImpl.cc 2014-04-28 15:36:46.000000000 +0200
@@ -293,13 +293,10 @@
void PoolImpl::_deleteRepo( ::_Repo * repo_r )
{
setDirty(__FUNCTION__, repo_r->name );
- ::repo_free( repo_r, /*reuseids*/false );
- eraseRepoInfo( repo_r );
if ( isSystemRepo( repo_r ) )
- {
- // systemRepo added
- _onSystemByUserListPtr.reset(); // re-evaluate
- }
+ _autoinstalled.clear();
+ eraseRepoInfo( repo_r );
+ ::repo_free( repo_r, /*reuseids*/false );
}
int PoolImpl::_addSolv( ::_Repo * repo_r, FILE * file_r )
@@ -362,11 +359,6 @@
blockBegin = blockSize = 0;
}
}
- else
- {
- // systemRepo added
- _onSystemByUserListPtr.reset(); // re-evaluate
- }
}
detail::SolvableIdType PoolImpl::_addSolvables( ::_Repo * repo_r, unsigned count_r )
@@ -555,74 +547,6 @@
}
}
- void PoolImpl::onSystemByUserListInit() const
- {
- _onSystemByUserListPtr.reset( new OnSystemByUserList );
- OnSystemByUserList & onSystemByUserList( *_onSystemByUserListPtr );
-
- Pathname root( ZConfig::instance().systemRoot() );
- if ( root.empty() )
- {
- MIL << "Target not initialized." << endl;
- return;
- }
- PathInfo pi( root / ZConfig::instance().historyLogFile() );
- MIL << "onSystemByUserList from history: " << pi << endl;
- if ( ! pi.isFile() )
- return;
-
- // go and parse it: 'who' must constain an '@', then it was installed by user request.
- // 2009-09-29 07:25:19|install|lirc-remotes|0.8.5-3.2|x86_64|root@opensuse|InstallationImage|a204211eb0...
- std::ifstream infile( pi.path().c_str() );
- for( iostr::EachLine in( infile ); in; in.next() )
- {
- const char * ch( (*in).c_str() );
- // start with year
- if ( *ch < '1' || '9' < *ch )
- continue;
- const char * sep1 = ::strchr( ch, '|' ); // | after date
- if ( !sep1 )
- continue;
- ++sep1;
- // if logs an install or delete
- bool installs = true;
- if ( ::strncmp( sep1, "install|", 8 ) )
- {
- if ( ::strncmp( sep1, "remove |", 8 ) )
- continue; // no install and no remove
- else
- installs = false; // remove
- }
- sep1 += 8; // | after what
- // get the package name
- const char * sep2 = ::strchr( sep1, '|' ); // | after name
- if ( !sep2 || sep1 == sep2 )
- continue;
- (*in)[sep2-ch] = '\0';
- IdString pkg( sep1 );
- // we're done, if a delete
- if ( !installs )
- {
- onSystemByUserList.erase( pkg );
- continue;
- }
- // now guess whether user installed or not (3rd next field contains 'user@host')
- if ( (sep1 = ::strchr( sep2+1, '|' )) // | after version
- && (sep1 = ::strchr( sep1+1, '|' )) // | after arch
- && (sep2 = ::strchr( sep1+1, '|' )) ) // | after who
- {
- (*in)[sep2-ch] = '\0';
- if ( ::strchr( sep1+1, '@' ) )
- {
- // by user
- onSystemByUserList.insert( pkg );
- continue;
- }
- }
- }
- MIL << "onSystemByUserList found: " << onSystemByUserList.size() << endl;
- }
-
const std::set<std::string> & PoolImpl::requiredFilesystems() const
{
if ( ! _requiredFilesystemsPtr )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/sat/detail/PoolImpl.h new/libzypp-14.18.0/zypp/sat/detail/PoolImpl.h
--- old/libzypp-14.17.5/zypp/sat/detail/PoolImpl.h 2013-03-20 09:29:30.000000000 +0100
+++ new/libzypp-14.18.0/zypp/sat/detail/PoolImpl.h 2014-04-28 15:36:46.000000000 +0200
@@ -25,6 +25,7 @@
#include "zypp/base/NonCopyable.h"
#include "zypp/base/SerialNumber.h"
#include "zypp/sat/detail/PoolMember.h"
+#include "zypp/sat/Queue.h"
#include "zypp/RepoInfo.h"
#include "zypp/Locale.h"
#include "zypp/Capability.h"
@@ -247,20 +248,16 @@
public:
/** \name Installed on behalf of a user request hint. */
//@{
- typedef IdStringSet OnSystemByUserList;
-
- const OnSystemByUserList & onSystemByUserList() const
- {
- if ( ! _onSystemByUserListPtr )
- onSystemByUserListInit();
- return *_onSystemByUserListPtr;
- }
+ /** Get ident list of all autoinstalled solvables. */
+ StringQueue autoInstalled() const
+ { return _autoinstalled; }
+
+ /** Set ident list of all autoinstalled solvables. */
+ void setAutoInstalled( const StringQueue & autoInstalled_r )
+ { _autoinstalled = autoInstalled_r; }
bool isOnSystemByUser( IdString ident_r ) const
- {
- const OnSystemByUserList & l( onSystemByUserList() );
- return l.find( ident_r ) != l.end();
- }
+ { return !_autoinstalled.contains( ident_r.id() ); }
//@}
public:
@@ -287,8 +284,7 @@
mutable scoped_ptr<MultiversionList> _multiversionListPtr;
/** */
- void onSystemByUserListInit() const;
- mutable scoped_ptr<OnSystemByUserList> _onSystemByUserListPtr;
+ sat::StringQueue _autoinstalled;
/** filesystems mentioned in /etc/sysconfig/storage */
mutable scoped_ptr<std::set<std::string> > _requiredFilesystemsPtr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/solver/detail/Resolver.cc new/libzypp-14.18.0/zypp/solver/detail/Resolver.cc
--- old/libzypp-14.17.5/zypp/solver/detail/Resolver.cc 2014-02-13 10:24:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/solver/detail/Resolver.cc 2014-04-28 15:36:46.000000000 +0200
@@ -361,7 +361,10 @@
sat::Transaction Resolver::getTransaction()
{
- return sat::Transaction( sat::Transaction::loadFromPool );
+ // FIXME: That's an ugly way of pushing autoInstalled into the transaction.
+ sat::Transaction ret( sat::Transaction::loadFromPool );
+ ret.autoInstalled( _satResolver->autoInstalled() );
+ return ret;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/solver/detail/SATResolver.cc new/libzypp-14.18.0/zypp/solver/detail/SATResolver.cc
--- old/libzypp-14.17.5/zypp/solver/detail/SATResolver.cc 2014-02-13 10:24:52.000000000 +0100
+++ new/libzypp-14.18.0/zypp/solver/detail/SATResolver.cc 2014-04-28 15:36:46.000000000 +0200
@@ -663,15 +663,7 @@
queue_push( &(_jobQueue), it->id() );
}
- if ( cleandepsOnRemove() )
- {
- // Add all items known to be installed by user request (not solver selected).
- for_( it, sat::Pool::instance().onSystemByUserBegin(), sat::Pool::instance().onSystemByUserEnd() )
- {
- queue_push( &(_jobQueue), SOLVER_USERINSTALLED | SOLVER_SOLVABLE_NAME );
- queue_push( &(_jobQueue), it->id() );
- }
- }
+ ::pool_add_userinstalled_jobs(_SATPool, sat::Pool::instance().autoInstalled(), &(_jobQueue), GET_USERINSTALLED_NAMES|GET_USERINSTALLED_INVERTED);
if ( _distupgrade )
{
@@ -1491,6 +1483,22 @@
}
}
+sat::StringQueue SATResolver::autoInstalled() const
+{
+ sat::StringQueue ret;
+ if ( _solv )
+ ::solver_get_userinstalled( _solv, ret, GET_USERINSTALLED_NAMES|GET_USERINSTALLED_INVERTED );
+ return ret;
+}
+
+sat::StringQueue SATResolver::userInstalled() const
+{
+ sat::StringQueue ret;
+ if ( _solv )
+ ::solver_get_userinstalled( _solv, ret, GET_USERINSTALLED_NAMES );
+ return ret;
+}
+
///////////////////////////////////////////////////////////////////
};// namespace detail
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/solver/detail/SATResolver.h new/libzypp-14.18.0/zypp/solver/detail/SATResolver.h
--- old/libzypp-14.17.5/zypp/solver/detail/SATResolver.h 2013-03-20 09:29:30.000000000 +0100
+++ new/libzypp-14.18.0/zypp/solver/detail/SATResolver.h 2014-04-28 15:36:46.000000000 +0200
@@ -216,6 +216,8 @@
PoolItemList resultItemsToRemove () { return _result_items_to_remove; }
PoolItemList problematicUpdateItems() { return _problem_items; }
+ sat::StringQueue autoInstalled() const;
+ sat::StringQueue userInstalled() const;
};
///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/SoftLocksFile.cc new/libzypp-14.18.0/zypp/target/SoftLocksFile.cc
--- old/libzypp-14.17.5/zypp/target/SoftLocksFile.cc 2013-03-20 09:29:30.000000000 +0100
+++ new/libzypp-14.18.0/zypp/target/SoftLocksFile.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-/*---------------------------------------------------------------------\
-| ____ _ __ __ ___ |
-| |__ / \ / / . \ . \ |
-| / / \ V /| _/ _/ |
-| / /__ | | | | | | |
-| /_____||_| |_| |_| |
-| |
-\---------------------------------------------------------------------*/
-/** \file zypp/target/SoftLocksFile.cc
- *
-*/
-#include <iostream>
-#include <fstream>
-
-#include "zypp/base/LogTools.h"
-#include "zypp/base/IOStream.h"
-#include "zypp/base/String.h"
-
-#include "zypp/PathInfo.h"
-#include "zypp/TmpPath.h"
-#include "zypp/Date.h"
-
-#include "zypp/target/SoftLocksFile.h"
-
-using std::endl;
-
-///////////////////////////////////////////////////////////////////
-namespace zypp
-{ /////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////
- namespace target
- { /////////////////////////////////////////////////////////////////
-
- void SoftLocksFile::load( const Pathname & file_r, Data & data_r )
- {
- PathInfo pi( file_r );
- if ( ! pi.isFile() )
- {
- WAR << "Can't read " << pi << endl;
- return;
- }
- std::ifstream infile( file_r.c_str() );
- for( iostr::EachLine in( infile ); in; in.next() )
- {
- std::string l( str::trim(*in) );
- if ( ! l.empty() && l[0] != '#' )
- {
- data_r.insert( IdString(l) );
- }
- }
- MIL << "Read " << pi << endl;
- }
-
- void SoftLocksFile::store( const Pathname & file_r, const Data & data_r )
- {
- filesystem::TmpFile tmp( filesystem::TmpFile::makeSibling( file_r ) );
- filesystem::chmod( tmp.path(), 0644 );
-
- std::ofstream outs( tmp.path().c_str() );
- outs << "# zypp::SoftLocksFile generated " << Date::now() << endl;
- dumpRange( outs, data_r.begin(), data_r.end(), "#", "\n", "\n", "\n", "#\n" );
- outs.close();
-
- if ( outs.good() )
- {
- filesystem::rename( tmp.path(), file_r );
- MIL << "Wrote " << PathInfo(file_r) << endl;
- }
- else
- {
- ERR << "Can't write " << PathInfo(tmp.path()) << endl;
- }
- }
-
- /******************************************************************
- **
- ** FUNCTION NAME : operator<<
- ** FUNCTION TYPE : std::ostream &
- */
- std::ostream & operator<<( std::ostream & str, const SoftLocksFile & obj )
- {
- str << obj.file() << ' ';
- if ( obj._dataPtr )
- str << obj.data();
- else
- str << "(unloaded)";
- return str;
- }
-
- /////////////////////////////////////////////////////////////////
- } // namespace target
- ///////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
-} // namespace zypp
-///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/SoftLocksFile.h new/libzypp-14.18.0/zypp/target/SoftLocksFile.h
--- old/libzypp-14.17.5/zypp/target/SoftLocksFile.h 2013-03-20 09:29:30.000000000 +0100
+++ new/libzypp-14.18.0/zypp/target/SoftLocksFile.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,117 +0,0 @@
-/*---------------------------------------------------------------------\
-| ____ _ __ __ ___ |
-| |__ / \ / / . \ . \ |
-| / / \ V /| _/ _/ |
-| / /__ | | | | | | |
-| /_____||_| |_| |_| |
-| |
-\---------------------------------------------------------------------*/
-/** \file zypp/target/SoftLocksFile.h
- *
-*/
-#ifndef ZYPP_TARGET_SOFTLOCKSFILE_H
-#define ZYPP_TARGET_SOFTLOCKSFILE_H
-
-#include <iosfwd>
-
-#include "zypp/base/PtrTypes.h"
-
-#include "zypp/IdString.h"
-#include "zypp/Pathname.h"
-
-///////////////////////////////////////////////////////////////////
-namespace zypp
-{ /////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////
- namespace target
- { /////////////////////////////////////////////////////////////////
-
- ///////////////////////////////////////////////////////////////////
- //
- // CLASS NAME : SoftLocksFile
- //
- /** Save and restore soft locks.
- */
- class SoftLocksFile
- {
- friend std::ostream & operator<<( std::ostream & str, const SoftLocksFile & obj );
- public:
- typedef std::tr1::unordered_set<IdString> Data;
-
- public:
- /** Ctor taking the file to read/write. */
- SoftLocksFile( const Pathname & file_r )
- : _file( file_r )
- {}
-
- /** Return the file path. */
- const Pathname & file() const
- { return _file; }
-
- /** Return the data.
- * The file is read once on demand. Returns empty \ref Data if
- * the file does not exist or is not readable.
- */
- const Data & data() const
- {
- if ( !_dataPtr )
- {
- _dataPtr.reset( new Data );
- Data & mydata( *_dataPtr );
- load( _file, mydata );
- }
- return *_dataPtr;
- }
-
- /** Store new \ref Data.
- * Write the new \ref Data to file, unless we know it
- * did not change. The directory containing file must
- * exist.
- */
- void setData( const Data & data_r )
- {
- if ( !_dataPtr )
- _dataPtr.reset( new Data );
-
- if ( differs( *_dataPtr, data_r ) )
- {
- store( _file, data_r );
- *_dataPtr = data_r;
- }
- }
-
- private:
- /** Helper testing whether two \ref Data differ. */
- bool differs( const Data & lhs, const Data & rhs ) const
- {
-
- if ( lhs.size() != rhs.size() )
- return true;
- for_( it, lhs.begin(), lhs.end() )
- {
- if ( rhs.find( *it ) == rhs.end() )
- return true;
- }
- return false;
- }
- /** Read \ref Data from \c file_r. */
- static void load( const Pathname & file_r, Data & data_r );
- /** Write \ref Data to \c file_r. */
- static void store( const Pathname & file_r, const Data & data_r );
-
- private:
- Pathname _file;
- mutable scoped_ptr<Data> _dataPtr;
- };
- ///////////////////////////////////////////////////////////////////
-
- /** \relates SoftLocksFile Stream output */
- std::ostream & operator<<( std::ostream & str, const SoftLocksFile & obj );
-
- /////////////////////////////////////////////////////////////////
- } // namespace target
- ///////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////
-} // namespace zypp
-///////////////////////////////////////////////////////////////////
-#endif // ZYPP_TARGET_SOFTLOCKSFILE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/SolvIdentFile.cc new/libzypp-14.18.0/zypp/target/SolvIdentFile.cc
--- old/libzypp-14.17.5/zypp/target/SolvIdentFile.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-14.18.0/zypp/target/SolvIdentFile.cc 2014-04-28 15:36:46.000000000 +0200
@@ -0,0 +1,95 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/target/SolvIdentFile.cc
+ *
+*/
+#include <iostream>
+#include <fstream>
+
+#include "zypp/base/LogTools.h"
+#include "zypp/base/IOStream.h"
+#include "zypp/base/String.h"
+
+#include "zypp/PathInfo.h"
+#include "zypp/TmpPath.h"
+#include "zypp/Date.h"
+
+#include "zypp/target/SolvIdentFile.h"
+
+using std::endl;
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace target
+ { /////////////////////////////////////////////////////////////////
+
+ void SolvIdentFile::load( const Pathname & file_r, Data & data_r )
+ {
+ PathInfo pi( file_r );
+ if ( ! pi.isFile() )
+ {
+ WAR << "Can't read " << pi << endl;
+ return;
+ }
+ std::ifstream infile( file_r.c_str() );
+ for( iostr::EachLine in( infile ); in; in.next() )
+ {
+ std::string l( str::trim(*in) );
+ if ( ! l.empty() && l[0] != '#' )
+ {
+ data_r.insert( IdString(l) );
+ }
+ }
+ MIL << "Read " << pi << endl;
+ }
+
+ void SolvIdentFile::store( const Pathname & file_r, const Data & data_r )
+ {
+ filesystem::TmpFile tmp( filesystem::TmpFile::makeSibling( file_r ) );
+ filesystem::chmod( tmp.path(), 0644 );
+
+ std::ofstream outs( tmp.path().c_str() );
+ outs << "# " << file_r.basename() << " generated " << Date::now() << endl;
+ dumpRange( outs, data_r.begin(), data_r.end(), "#", "\n", "\n", "\n", "#\n" );
+ outs.close();
+
+ if ( outs.good() )
+ {
+ filesystem::rename( tmp.path(), file_r );
+ MIL << "Wrote " << PathInfo(file_r) << endl;
+ }
+ else
+ {
+ ERR << "Can't write " << PathInfo(tmp.path()) << endl;
+ }
+ }
+
+ /******************************************************************
+ **
+ ** FUNCTION NAME : operator<<
+ ** FUNCTION TYPE : std::ostream &
+ */
+ std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj )
+ {
+ str << obj.file() << ' ';
+ if ( obj._dataPtr )
+ str << obj.data();
+ else
+ str << "(unloaded)";
+ return str;
+ }
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace target
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/SolvIdentFile.h new/libzypp-14.18.0/zypp/target/SolvIdentFile.h
--- old/libzypp-14.17.5/zypp/target/SolvIdentFile.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libzypp-14.18.0/zypp/target/SolvIdentFile.h 2014-04-28 15:36:46.000000000 +0200
@@ -0,0 +1,115 @@
+/*---------------------------------------------------------------------\
+| ____ _ __ __ ___ |
+| |__ / \ / / . \ . \ |
+| / / \ V /| _/ _/ |
+| / /__ | | | | | | |
+| /_____||_| |_| |_| |
+| |
+\---------------------------------------------------------------------*/
+/** \file zypp/target/SolvIdentFile.h
+ *
+*/
+#ifndef ZYPP_TARGET_SOLVIDENTFILE_H
+#define ZYPP_TARGET_SOLVIDENTFILE_H
+
+#include <iosfwd>
+
+#include "zypp/base/PtrTypes.h"
+
+#include "zypp/IdString.h"
+#include "zypp/Pathname.h"
+
+///////////////////////////////////////////////////////////////////
+namespace zypp
+{ /////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////
+ namespace target
+ { /////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ /// \class SolvIdentFile
+ /// \short Save and restore a list of solvable names (ident IdString)
+ ///////////////////////////////////////////////////////////////////
+ class SolvIdentFile
+ {
+ friend std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj );
+ public:
+ typedef std::tr1::unordered_set<IdString> Data;
+
+ public:
+ /** Ctor taking the file to read/write. */
+ SolvIdentFile( const Pathname & file_r )
+ : _file( file_r )
+ {}
+
+ /** Return the file path. */
+ const Pathname & file() const
+ { return _file; }
+
+ /** Return the data.
+ * The file is read once on demand. Returns empty \ref Data if
+ * the file does not exist or is not readable.
+ */
+ const Data & data() const
+ {
+ if ( !_dataPtr )
+ {
+ _dataPtr.reset( new Data );
+ Data & mydata( *_dataPtr );
+ load( _file, mydata );
+ }
+ return *_dataPtr;
+ }
+
+ /** Store new \ref Data.
+ * Write the new \ref Data to file, unless we know it
+ * did not change. The directory containing file must
+ * exist.
+ */
+ void setData( const Data & data_r )
+ {
+ if ( !_dataPtr )
+ _dataPtr.reset( new Data );
+
+ if ( differs( *_dataPtr, data_r ) )
+ {
+ store( _file, data_r );
+ *_dataPtr = data_r;
+ }
+ }
+
+ private:
+ /** Helper testing whether two \ref Data differ. */
+ bool differs( const Data & lhs, const Data & rhs ) const
+ {
+
+ if ( lhs.size() != rhs.size() )
+ return true;
+ for_( it, lhs.begin(), lhs.end() )
+ {
+ if ( rhs.find( *it ) == rhs.end() )
+ return true;
+ }
+ return false;
+ }
+ /** Read \ref Data from \c file_r. */
+ static void load( const Pathname & file_r, Data & data_r );
+ /** Write \ref Data to \c file_r. */
+ static void store( const Pathname & file_r, const Data & data_r );
+
+ private:
+ Pathname _file;
+ mutable scoped_ptr<Data> _dataPtr;
+ };
+ ///////////////////////////////////////////////////////////////////
+
+ /** \relates SolvIdentFile Stream output */
+ std::ostream & operator<<( std::ostream & str, const SolvIdentFile & obj );
+
+ /////////////////////////////////////////////////////////////////
+ } // namespace target
+ ///////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////
+} // namespace zypp
+///////////////////////////////////////////////////////////////////
+#endif // ZYPP_TARGET_SOLVIDENTFILE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/TargetImpl.cc new/libzypp-14.18.0/zypp/target/TargetImpl.cc
--- old/libzypp-14.17.5/zypp/target/TargetImpl.cc 2014-04-15 17:04:45.000000000 +0200
+++ new/libzypp-14.18.0/zypp/target/TargetImpl.cc 2014-04-28 15:36:46.000000000 +0200
@@ -155,9 +155,70 @@
}
} // namespace json
///////////////////////////////////////////////////////////////////
+
///////////////////////////////////////////////////////////////////
namespace target
- { /////////////////////////////////////////////////////////////////
+ {
+ ///////////////////////////////////////////////////////////////////
+ namespace
+ {
+ SolvIdentFile::Data getUserInstalledFromHistory( const Pathname & historyFile_r )
+ {
+ SolvIdentFile::Data onSystemByUserList;
+ // go and parse it: 'who' must constain an '@', then it was installed by user request.
+ // 2009-09-29 07:25:19|install|lirc-remotes|0.8.5-3.2|x86_64|root@opensuse|InstallationImage|a204211eb0...
+ std::ifstream infile( historyFile_r.c_str() );
+ for( iostr::EachLine in( infile ); in; in.next() )
+ {
+ const char * ch( (*in).c_str() );
+ // start with year
+ if ( *ch < '1' || '9' < *ch )
+ continue;
+ const char * sep1 = ::strchr( ch, '|' ); // | after date
+ if ( !sep1 )
+ continue;
+ ++sep1;
+ // if logs an install or delete
+ bool installs = true;
+ if ( ::strncmp( sep1, "install|", 8 ) )
+ {
+ if ( ::strncmp( sep1, "remove |", 8 ) )
+ continue; // no install and no remove
+ else
+ installs = false; // remove
+ }
+ sep1 += 8; // | after what
+ // get the package name
+ const char * sep2 = ::strchr( sep1, '|' ); // | after name
+ if ( !sep2 || sep1 == sep2 )
+ continue;
+ (*in)[sep2-ch] = '\0';
+ IdString pkg( sep1 );
+ // we're done, if a delete
+ if ( !installs )
+ {
+ onSystemByUserList.erase( pkg );
+ continue;
+ }
+ // now guess whether user installed or not (3rd next field contains 'user@host')
+ if ( (sep1 = ::strchr( sep2+1, '|' )) // | after version
+ && (sep1 = ::strchr( sep1+1, '|' )) // | after arch
+ && (sep2 = ::strchr( sep1+1, '|' )) ) // | after who
+ {
+ (*in)[sep2-ch] = '\0';
+ if ( ::strchr( sep1+1, '@' ) )
+ {
+ // by user
+ onSystemByUserList.insert( pkg );
+ continue;
+ }
+ }
+ }
+ MIL << "onSystemByUserList found: " << onSystemByUserList.size() << endl;
+ return onSystemByUserList;
+ }
+ } // namespace
+ ///////////////////////////////////////////////////////////////////
/** Helper for commit plugin execution.
* \ingroup g_RAII
@@ -764,7 +825,7 @@
TargetImpl::TargetImpl( const Pathname & root_r, bool doRebuild_r )
: _root( root_r )
, _requestedLocalesFile( home() / "RequestedLocales" )
- , _softLocksFile( home() / "SoftLocks" )
+ , _autoInstalledFile( home() / "AutoInstalled" )
, _hardLocksFile( Pathname::assertprefix( _root, ZConfig::instance().locksFile() ) )
{
_rpm.initDatabase( root_r, Pathname(), doRebuild_r );
@@ -1122,20 +1183,32 @@
satpool.setRequestedLocales( requestedLocales );
}
}
-#ifdef WITHSOFTLOCKS
{
- SoftLocksFile::Data softLocks( _softLocksFile.data() );
- if ( ! softLocks.empty() )
- {
- // Don't soft lock any installed item.
- for_( it, system.solvablesBegin(), system.solvablesEnd() )
- {
- softLocks.erase( it->ident() );
- }
- ResPool::instance().setAutoSoftLocks( softLocks );
- }
+ if ( ! PathInfo( _autoInstalledFile.file() ).isExist() )
+ {
+ // Initialize from history, if it does not exist
+ Pathname historyFile( Pathname::assertprefix( _root, ZConfig::instance().historyLogFile() ) );
+ if ( PathInfo( historyFile ).isExist() )
+ {
+ SolvIdentFile::Data onSystemByUser( getUserInstalledFromHistory( historyFile ) );
+ SolvIdentFile::Data onSystemByAuto;
+ for_( it, system.solvablesBegin(), system.solvablesEnd() )
+ {
+ IdString ident( (*it).ident() );
+ if ( onSystemByUser.find( ident ) == onSystemByUser.end() )
+ onSystemByAuto.insert( ident );
+ }
+ _autoInstalledFile.setData( onSystemByAuto );
+ }
+ // on the fly removed any obsolete SoftLocks file
+ filesystem::unlink( home() / "SoftLocks" );
+ }
+ // read from AutoInstalled file
+ sat::StringQueue q;
+ for ( const auto & idstr : _autoInstalledFile.data() )
+ q.push( idstr.id() );
+ satpool.setAutoInstalled( q );
}
-#endif
if ( ZConfig::instance().apply_locks_file() )
{
const HardLocksFile::Data & hardLocks( _hardLocksFile.data() );
@@ -1240,14 +1313,13 @@
filesystem::assert_dir( home() );
// requested locales
_requestedLocalesFile.setLocales( pool_r.getRequestedLocales() );
-#ifdef WITHSOFTLOCKS
- // weak locks
+ // autoinstalled
{
- SoftLocksFile::Data newdata;
- pool_r.getActiveSoftLocks( newdata );
- _softLocksFile.setData( newdata );
+ SolvIdentFile::Data newdata;
+ for ( sat::Queue::value_type id : result.rTransaction().autoInstalled() )
+ newdata.insert( IdString(id) );
+ _autoInstalledFile.setData( newdata );
}
-#endif
// hard locks
if ( ZConfig::instance().apply_locks_file() )
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libzypp-14.17.5/zypp/target/TargetImpl.h new/libzypp-14.18.0/zypp/target/TargetImpl.h
--- old/libzypp-14.17.5/zypp/target/TargetImpl.h 2014-01-24 08:44:53.000000000 +0100
+++ new/libzypp-14.18.0/zypp/target/TargetImpl.h 2014-04-28 15:36:46.000000000 +0200
@@ -27,7 +27,7 @@
#include "zypp/target/rpm/RpmDb.h"
#include "zypp/target/TargetException.h"
#include "zypp/target/RequestedLocalesFile.h"
-#include "zypp/target/SoftLocksFile.h"
+#include "zypp/target/SolvIdentFile.h"
#include "zypp/target/HardLocksFile.h"
#include "zypp/ManagedFile.h"
@@ -210,8 +210,8 @@
rpm::RpmDb _rpm;
/** Requested Locales database */
RequestedLocalesFile _requestedLocalesFile;
- /** Soft-locks database */
- SoftLocksFile _softLocksFile;
+ /** user/auto installed database */
+ SolvIdentFile _autoInstalledFile;
/** Hard-Locks database */
HardLocksFile _hardLocksFile;
/** Cache distributionVersion */
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yast2-reipl for openSUSE:Factory checked in at 2014-05-02 19:23:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-reipl (Old)
and /work/SRC/openSUSE:Factory/.yast2-reipl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-reipl"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-reipl/yast2-reipl.changes 2013-11-17 09:59:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-reipl.new/yast2-reipl.changes 2014-05-02 19:23:54.000000000 +0200
@@ -1,0 +2,6 @@
+Fri May 2 12:21:49 UTC 2014 - jreidinger(a)suse.com
+
+- adapt module to SLE12 code base (bcn#875515) ( patch by Ihno )
+- 3.1.2
+
+-------------------------------------------------------------------
Old:
----
yast2-reipl-3.1.1.tar.bz2
New:
----
yast2-reipl-3.1.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-reipl.spec ++++++
--- /var/tmp/diff_new_pack.QYoFkB/_old 2014-05-02 19:23:55.000000000 +0200
+++ /var/tmp/diff_new_pack.QYoFkB/_new 2014-05-02 19:23:55.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package yast2-reipl
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: yast2-reipl
-Version: 3.1.1
+Version: 3.1.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
BuildRequires: update-desktop-files
BuildRequires: yast2
BuildRequires: yast2-bootloader
-BuildRequires: yast2-devtools >= 3.0.6
+BuildRequires: yast2-devtools >= 3.1.10
BuildRequires: yast2-storage
BuildRequires: yast2-testsuite
++++++ yast2-reipl-3.1.1.tar.bz2 -> yast2-reipl-3.1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/VERSION new/yast2-reipl-3.1.2/VERSION
--- old/yast2-reipl-3.1.1/VERSION 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/VERSION 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-3.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/package/yast2-reipl.changes new/yast2-reipl-3.1.2/package/yast2-reipl.changes
--- old/yast2-reipl-3.1.1/package/yast2-reipl.changes 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/package/yast2-reipl.changes 2014-05-02 14:49:51.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri May 2 12:21:49 UTC 2014 - jreidinger(a)suse.com
+
+- adapt module to SLE12 code base (bcn#875515) ( patch by Ihno )
+- 3.1.2
+
+-------------------------------------------------------------------
Wed Nov 13 15:56:18 UTC 2013 - jreidinger(a)suse.com
- Add explicit COPYING file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/package/yast2-reipl.spec new/yast2-reipl-3.1.2/package/yast2-reipl.spec
--- old/yast2-reipl-3.1.1/package/yast2-reipl.spec 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/package/yast2-reipl.spec 2014-05-02 14:49:51.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-reipl
-Version: 3.1.1
+Version: 3.1.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
BuildRequires: update-desktop-files
BuildRequires: yast2
BuildRequires: yast2-bootloader
-BuildRequires: yast2-devtools >= 3.0.6
+BuildRequires: yast2-devtools >= 3.1.10
BuildRequires: yast2-storage
BuildRequires: yast2-testsuite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/inst_reipl.rb new/yast2-reipl-3.1.2/src/clients/inst_reipl.rb
--- old/yast2-reipl-3.1.1/src/clients/inst_reipl.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/inst_reipl.rb 2014-05-02 14:49:51.000000000 +0200
@@ -46,8 +46,7 @@
Yast.include self, "reipl/dialogs.rb"
# The main ()
- Builtins.y2milestone("----------------------------------------")
- Builtins.y2milestone("Reipl module started")
+ Builtins.y2milestone("Reipl module started ----------------------------------------")
@args = GetInstArgs.argmap
@@ -64,8 +63,7 @@
@ret = Convert.to_symbol(ConfigureDialog())
# Finish
- Builtins.y2milestone("Reipl module finished")
- Builtins.y2milestone("----------------------------------------")
+ Builtins.y2milestone("Reipl module finished ----------------------------------------")
@ret
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/inst_reiplauto.rb new/yast2-reipl-3.1.2/src/clients/inst_reiplauto.rb
--- old/yast2-reipl-3.1.1/src/clients/inst_reiplauto.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/inst_reiplauto.rb 2014-05-02 14:49:51.000000000 +0200
@@ -43,19 +43,12 @@
Yast.import "Confirm"
Yast.import "Storage"
# The main ()
- Builtins.y2milestone("----------------------------------------")
- Builtins.y2milestone("inst_reiplauto started")
-
- if !Reipl.SanityCheck
- Builtins.y2milestone("SanityCheck failed!")
- return :cancel
- end
+ Builtins.y2milestone("inst_reiplauto started ----------------------------------------")
@args = GetInstArgs.argmap
- if Ops.get_string(@args, "first_run", "yes") != "no"
- Ops.set(@args, "first_run", "yes")
- end
+ # first run unless explicitelly mentioned
+ @args["first_run"] = "yes" if @args["first_run"] != "no"
Wizard.HideAbortButton if Mode.mode == "firstboot"
@@ -63,12 +56,8 @@
@configuration = Reipl.ReadState
- if @configuration != nil
- @configuration = Reipl.ModifyReiplWithBootPartition(@configuration)
-
- if @configuration != nil
- Reipl.WriteState(@configuration)
- else
+ if !(a)configuration.nil?
+ if !Reipl.IPL_from_boot_zipl
Builtins.y2error("Could not modify reipl configuration")
end
else
@@ -76,10 +65,9 @@
end
# Finish
- Builtins.y2milestone("inst_reiplauto finished")
- Builtins.y2milestone("----------------------------------------")
+ Builtins.y2milestone("inst_reiplauto finished ----------------------------------------")
- :next
+ :next
# EOF
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl.rb new/yast2-reipl-3.1.2/src/clients/reipl.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl.rb 2014-05-02 14:49:51.000000000 +0200
@@ -38,8 +38,7 @@
textdomain "reipl"
# The main ()
- Builtins.y2milestone("----------------------------------------")
- Builtins.y2milestone("Reipl module started")
+ Builtins.y2milestone("Reipl module started ----------------------------------------")
Yast.import "Progress"
Yast.import "Report"
@@ -89,8 +88,7 @@
Builtins.y2debug("ret=%1", @ret)
# Finish
- Builtins.y2milestone("Reipl module finished")
- Builtins.y2milestone("----------------------------------------")
+ Builtins.y2milestone("Reipl module finished ----------------------------------------")
deep_copy(@ret)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl_auto.rb new/yast2-reipl-3.1.2/src/clients/reipl_auto.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_auto.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_auto.rb 2014-05-02 14:49:51.000000000 +0200
@@ -42,8 +42,7 @@
textdomain "reipl"
- Builtins.y2milestone("----------------------------------------")
- Builtins.y2milestone("Reipl auto started")
+ Builtins.y2milestone("Reipl auto started ----------------------------------------")
Yast.import "Reipl"
Yast.include self, "reipl/wizards.rb"
@@ -111,8 +110,7 @@
end
Builtins.y2debug("ret=%1", @ret)
- Builtins.y2milestone("Reipl auto finished")
- Builtins.y2milestone("----------------------------------------")
+ Builtins.y2milestone("Reipl auto finished ----------------------------------------")
deep_copy(@ret)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl_bootloader_finish.rb new/yast2-reipl-3.1.2/src/clients/reipl_bootloader_finish.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_bootloader_finish.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_bootloader_finish.rb 2014-05-02 14:49:51.000000000 +0200
@@ -28,88 +28,31 @@
# Other architectures do not support it
if Arch.s390
@oldConfiguration = Reipl.ReadState
- @newConfiguration = Reipl.ReadState
- if @oldConfiguration != nil
- @newConfiguration = Reipl.ModifyReiplWithBootPartition(
- @newConfiguration
- )
+ if !Reipl.IPL_from_boot_zipl
+ @newConfiguration = Reipl.ReadState
@oldCcwMap = Ops.get_map(@oldConfiguration, "ccw")
@newCcwMap = Ops.get_map(@newConfiguration, "ccw")
@oldFcpMap = Ops.get_map(@oldConfiguration, "fcp")
@newFcpMap = Ops.get_map(@newConfiguration, "fcp")
- @different = Ops.get_string(@oldConfiguration, "method", "a") !=
- Ops.get_string(@newConfiguration, "method", "b") ||
- Ops.get_string(@oldCcwMap, "device", "a") !=
- Ops.get_string(@newCcwMap, "device", "b") ||
- Ops.get_string(@oldCcwMap, "loadparm", "a") !=
- Ops.get_string(@newCcwMap, "loadparm", "b") ||
- Ops.get_string(@oldCcwMap, "parm", "a") !=
- Ops.get_string(@newCcwMap, "parm", "b") ||
- Ops.get_string(@oldFcpMap, "device", "a") !=
- Ops.get_string(@newFcpMap, "device", "b") ||
- Ops.get_string(@oldFcpMap, "wwpn", "a") !=
- Ops.get_string(@newFcpMap, "wwpn", "b") ||
- Ops.get_string(@oldFcpMap, "lun", "a") !=
- Ops.get_string(@newFcpMap, "lun", "b") ||
- Ops.get_string(@oldFcpMap, "bootprog", "a") !=
- Ops.get_string(@newFcpMap, "bootprog", "b") ||
- Ops.get_string(@oldFcpMap, "br_lba", "a") !=
- Ops.get_string(@newFcpMap, "br_lba", "b")
-
- Builtins.y2milestone(
- "(oldConfiguration['method']:'a' != newConfiguration['method']:'b') = %1",
- Ops.get_string(@oldConfiguration, "method", "a") !=
- Ops.get_string(@newConfiguration, "method", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['device']:'a' != newCcwMap['device']:'b') = %1",
- Ops.get_string(@oldCcwMap, "device", "a") !=
- Ops.get_string(@newCcwMap, "device", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['loadparm']:'a' != newCcwMap['loadparm']:'b') = %1",
- Ops.get_string(@oldCcwMap, "loadparm", "a") !=
- Ops.get_string(@newCcwMap, "loadparm", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['parm']:'a' != newCcwMap['parm']:'b') = %1",
- Ops.get_string(@oldCcwMap, "parm", "a") !=
- Ops.get_string(@newCcwMap, "parm", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['device']:'a' != newFcpMap['device']:'b') = %1",
- Ops.get_string(@oldFcpMap, "device", "a") !=
- Ops.get_string(@newFcpMap, "device", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['wwpn']:'a' != newFcpMap['wwpn']:'b') = %1",
- Ops.get_string(@oldFcpMap, "wwpn", "a") !=
- Ops.get_string(@newFcpMap, "wwpn", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['lun']:'a' != newFcpMap['lun']:'b') = %1",
- Ops.get_string(@oldFcpMap, "lun", "a") !=
- Ops.get_string(@newFcpMap, "lun", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['bootprog']:'a' != newFcpMap['bootprog']:'b') = %1",
- Ops.get_string(@oldFcpMap, "bootprog", "a") !=
- Ops.get_string(@newFcpMap, "bootprog", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['br_lba']:'a' != newFcpMap['br_lba']:'b') = %1",
- Ops.get_string(@oldFcpMap, "br_lba", "a") !=
- Ops.get_string(@newFcpMap, "br_lba", "b")
- )
+ ccw_different = ["device", "loadparm", "parm"].any? do |param|
+ # TODO: why two nils are different?
+ res = @oldCcwMap[param].nil? || @newCcwMap[param].nil? || @oldCcwMap[param] != @newCcwMap[param]
+ Builtins.y2milestone "ccw comparison for '#{param}' is different?: #{res}"
+ res
+ end
+ fcp_different = ["device", "wwpn", "lun", "bootprog", "br_lba"].any? do |param|
+ # TODO: why two nils are different?
+ res = @oldFcpMap[param].nil? || @newFcpMap[param].nil? || @oldFcpMap[param] != @newFcpMap[param]
+ Builtins.y2milestone "fcp comparison for '#{param}' is different?: #{res}"
+ res
+ end
+ @different = ccw_different || fcp_different
Builtins.y2milestone("different = %1", @different)
- Builtins.y2milestone(
- "newConfiguration['method'] : %1",
- Ops.get_string(@newConfiguration, "method", "ERROR")
- )
+ Builtins.y2milestone("newConfiguration['method'] : %1", Ops.get_string(@newConfiguration, "method", "ERROR"))
if Ops.get_string(@newConfiguration, "method", "ERROR") == "ccw"
Builtins.y2milestone("making ccw ipl text")
@dev = Builtins.substring(
@@ -170,14 +113,8 @@
end
end
- Builtins.y2milestone(
- "Configuration (reIPL) has been changed: %1",
- @different
- )
- Builtins.y2milestone(
- "Configuration (reIPL) generated shutdown dialog box message: %1",
- @ipl_msg
- )
+ Builtins.y2milestone("Configuration (reIPL) has been changed: %1", @different)
+ Builtins.y2milestone("Configuration (reIPL) generated shutdown dialog box message: %1", @ipl_msg)
@ret = { "different" => @different, "ipl_msg" => @ipl_msg }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl_finish.rb new/yast2-reipl-3.1.2/src/clients/reipl_finish.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_finish.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_finish.rb 2014-05-02 14:49:51.000000000 +0200
@@ -23,89 +23,35 @@
# Other architectures do not support it
if Arch.s390
@oldConfiguration = Reipl.ReadState
- @newConfiguration = Reipl.ReadState
- if @oldConfiguration != nil
- @newConfiguration = Reipl.ModifyReiplWithBootPartition(
- @newConfiguration
- )
+ # FIXME almost same code as reipl_bootloader_finish and this client is not called at all now
+ if Reipl.IPL_from_boot_zipl
+
+ @newConfiguration = Reipl.ReadState
@oldCcwMap = Ops.get_map(@oldConfiguration, "ccw")
@newCcwMap = Ops.get_map(@newConfiguration, "ccw")
@oldFcpMap = Ops.get_map(@oldConfiguration, "fcp")
@newFcpMap = Ops.get_map(@newConfiguration, "fcp")
- @different = Ops.get_string(@oldConfiguration, "method", "a") !=
- Ops.get_string(@newConfiguration, "method", "b") ||
- Ops.get_string(@oldCcwMap, "device", "a") !=
- Ops.get_string(@newCcwMap, "device", "b") ||
- Ops.get_string(@oldCcwMap, "loadparm", "a") !=
- Ops.get_string(@newCcwMap, "loadparm", "b") ||
- Ops.get_string(@oldCcwMap, "parm", "a") !=
- Ops.get_string(@newCcwMap, "parm", "b") ||
- Ops.get_string(@oldFcpMap, "device", "a") !=
- Ops.get_string(@newFcpMap, "device", "b") ||
- Ops.get_string(@oldFcpMap, "wwpn", "a") !=
- Ops.get_string(@newFcpMap, "wwpn", "b") ||
- Ops.get_string(@oldFcpMap, "lun", "a") !=
- Ops.get_string(@newFcpMap, "lun", "b") ||
- Ops.get_string(@oldFcpMap, "bootprog", "a") !=
- Ops.get_string(@newFcpMap, "bootprog", "b") ||
- Ops.get_string(@oldFcpMap, "br_lba", "a") !=
- Ops.get_string(@newFcpMap, "br_lba", "b")
-
- Builtins.y2milestone(
- "(oldConfiguration['method']:'a' != newConfiguration['method']:'b') = %1",
- Ops.get_string(@oldConfiguration, "method", "a") !=
- Ops.get_string(@newConfiguration, "method", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['device']:'a' != newCcwMap['device']:'b') = %1",
- Ops.get_string(@oldCcwMap, "device", "a") !=
- Ops.get_string(@newCcwMap, "device", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['loadparm']:'a' != newCcwMap['loadparm']:'b') = %1",
- Ops.get_string(@oldCcwMap, "loadparm", "a") !=
- Ops.get_string(@newCcwMap, "loadparm", "b")
- )
- Builtins.y2milestone(
- "(oldCcwMap['parm']:'a' != newCcwMap['parm']:'b') = %1",
- Ops.get_string(@oldCcwMap, "parm", "a") !=
- Ops.get_string(@newCcwMap, "parm", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['device']:'a' != newFcpMap['device']:'b') = %1",
- Ops.get_string(@oldFcpMap, "device", "a") !=
- Ops.get_string(@newFcpMap, "device", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['wwpn']:'a' != newFcpMap['wwpn']:'b') = %1",
- Ops.get_string(@oldFcpMap, "wwpn", "a") !=
- Ops.get_string(@newFcpMap, "wwpn", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['lun']:'a' != newFcpMap['lun']:'b') = %1",
- Ops.get_string(@oldFcpMap, "lun", "a") !=
- Ops.get_string(@newFcpMap, "lun", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['bootprog']:'a' != newFcpMap['bootprog']:'b') = %1",
- Ops.get_string(@oldFcpMap, "bootprog", "a") !=
- Ops.get_string(@newFcpMap, "bootprog", "b")
- )
- Builtins.y2milestone(
- "(oldFcpMap['br_lba']:'a' != newFcpMap['br_lba']:'b') = %1",
- Ops.get_string(@oldFcpMap, "br_lba", "a") !=
- Ops.get_string(@newFcpMap, "br_lba", "b")
- )
+ ccw_different = ["device", "loadparm", "parm"].any? do |param|
+ # TODO: why two nils are different?
+ res = @oldCcwMap[param].nil? || @newCcwMap[param].nil? || @oldCcwMap[param] != @newCcwMap[param]
+ Builtins.y2milestone "ccw comparison for '#{param}' is different?: #{res}"
+ res
+ end
+ fcp_different = ["device", "wwpn", "lun", "bootprog", "br_lba"].any? do |param|
+ # TODO: why two nils are different?
+ res = @oldFcpMap[param].nil? || @newFcpMap[param].nil? || @oldFcpMap[param] != @newFcpMap[param]
+ Builtins.y2milestone "fcp comparison for '#{param}' is different?: #{res}"
+ res
+ end
+
+ @different = ccw_different || fcp_different
Builtins.y2milestone("different = %1", @different)
end
- Builtins.y2milestone(
- "Configuration (reIPL) has been changed: %1",
- @different
- )
+ Builtins.y2milestone("Configuration (reIPL) has been changed: %1", @different)
end
@different
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/include/reipl/dialogs.rb new/yast2-reipl-3.1.2/src/include/reipl/dialogs.rb
--- old/yast2-reipl-3.1.1/src/include/reipl/dialogs.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/include/reipl/dialogs.rb 2014-05-02 14:49:51.000000000 +0200
@@ -42,15 +42,9 @@
# Configure dialog
# @return dialog result
def ConfigureDialog
- ccw_map = Convert.convert(
- Ops.get(Reipl.reipl_configuration, "ccw") do
+ ccw_map = Reipl.reipl_configuration["ccw"] ||
{ "device" => "", "loadparm" => "" }
- end,
- :from => "any",
- :to => "map <string, string>"
- )
- fcp_map = Convert.convert(
- Ops.get(Reipl.reipl_configuration, "fcp") do
+ fcp_map = Reipl.reipl_configuration["fcp"] ||
{
"device" => "",
"wwpn" => "",
@@ -58,10 +52,8 @@
"bootprog" => "",
"br_lba" => ""
}
- end,
- :from => "any",
- :to => "map <string, string>"
- )
+ nss_map = Reipl.reipl_configuration["nss"] ||
+ { "name" => "" }
# Reipl configure dialog caption
caption = _("Reipl Configuration")
@@ -77,7 +69,6 @@
Left(
RadioButton(
Id(:useccw),
- Opt(:notify),
_("&ccw"),
Reipl.ccw_exists
)
@@ -85,11 +76,17 @@
Left(
RadioButton(
Id(:usefcp),
- Opt(:notify),
_("&fcp"),
Reipl.fcp_exists
)
),
+ Left(
+ RadioButton(
+ Id(:usenss),
+ _("&nss"),
+ Reipl.nss_exists
+ )
+ ),
VSpacing(0.2)
)
)
@@ -144,11 +141,19 @@
_("B&oot program selector"),
Ops.get_string(fcp_map, "bootprog", "")
),
+ VSpacing(0.2)
+ )
+ )
+
+ nss_contents = Frame(
+ Id(:nss_frame),
+ _("nss parameters"),
+ VBox(
VSpacing(0.2),
TextEntry(
- Id(:fcp_br_lba),
- _("Boo&t record logical block address"),
- Ops.get_string(fcp_map, "br_lba", "")
+ Id(:nss_name),
+ _("&Name"),
+ Ops.get_string(ccw_map, "name", "")
),
VSpacing(0.2)
)
@@ -160,7 +165,9 @@
VSpacing(1),
ccw_contents,
VSpacing(1),
- fcp_contents
+ fcp_contents,
+ VSpacing(1),
+ nss_contents
)
)
@@ -176,6 +183,8 @@
UI.ChangeWidget(Id(:useccw), :Enabled, Reipl.ccw_exists)
UI.ChangeWidget(Id(:fcp_frame), :Enabled, Reipl.fcp_exists)
UI.ChangeWidget(Id(:usefcp), :Enabled, Reipl.fcp_exists)
+ UI.ChangeWidget(Id(:nss_frame), :Enabled, Reipl.nss_exists)
+ UI.ChangeWidget(Id(:usenss), :Enabled, Reipl.nss_exists)
# @TODO
# UI::ChangeWidget(`id(`ccw_device), `ValidChars, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
@@ -215,8 +224,10 @@
Convert.to_string(UI.QueryWidget(Id(:fcp_bootprog), :Value))
Reipl.modified = true
end
- if Ops.get_string(fcp_map, "br_lba", "") !=
- Convert.to_string(UI.QueryWidget(Id(:fcp_br_lba), :Value))
+ end
+ if Reipl.nss_exists
+ if Ops.get_string(nss_map, "name", "") !=
+ Convert.to_string(UI.QueryWidget(Id(:nss_name), :Value))
Reipl.modified = true
end
end
@@ -229,14 +240,10 @@
elsif ret == :next
# Grab the data from the entry fields
if Reipl.ccw_exists
- Ops.set(
- ccw_map,
- "device",
+ Ops.set(ccw_map, "device",
Convert.to_string(UI.QueryWidget(Id(:ccw_device), :Value))
)
- Ops.set(
- ccw_map,
- "loadparm",
+ Ops.set(ccw_map, "loadparm",
Convert.to_string(UI.QueryWidget(Id(:ccw_loadparm), :Value))
)
@@ -265,23 +272,21 @@
"bootprog",
Convert.to_string(UI.QueryWidget(Id(:fcp_bootprog), :Value))
)
- Ops.set(
- fcp_map,
- "br_lba",
- Convert.to_string(UI.QueryWidget(Id(:fcp_br_lba), :Value))
- )
-
# Apparently, maps are copy on write. We need to put the new one back into the globals.
Ops.set(Reipl.reipl_configuration, "fcp", fcp_map)
end
+ if Reipl.nss_exists
+ Ops.set(nss_map, "name",
+ Convert.to_string(UI.QueryWidget(Id(:nss_name), :Value))
+ )
+ # Apparently, maps are copy on write. We need to put the new one back into the globals.
+ Ops.set(Reipl.reipl_configuration, "nss", nss_map)
+ end
+
break
elsif ret == :back
break
- elsif ret == :usefcp
- next
- elsif ret == :useccw
- next
else
Builtins.y2error("unexpected retcode: %1", ret)
next
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-reipl-3.1.1/src/modules/Reipl.rb new/yast2-reipl-3.1.2/src/modules/Reipl.rb
--- old/yast2-reipl-3.1.1/src/modules/Reipl.rb 2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/modules/Reipl.rb 2014-05-02 14:49:51.000000000 +0200
@@ -76,17 +76,19 @@
# ]
#];
- @reipl_directory = Ops.add(FindSysfsRoot(), "/firmware/reipl")
- @ccw_directory = Ops.add(@reipl_directory, "/ccw")
- @fcp_directory = Ops.add(@reipl_directory, "/fcp")
- @ccw_exists = FileUtils.IsDirectory(@ccw_directory) != nil
- @fcp_exists = FileUtils.IsDirectory(@fcp_directory) != nil
+ @reipl_directory = "/sys/firmware/reipl"
+ @ccw_directory = @reipl_directory + "/ccw"
+ @fcp_directory = @reipl_directory + "/fcp"
+ @nss_directory = @reipl_directory + "/nss"
+ @ccw_exists = FileUtils.IsDirectory(@ccw_directory)
+ @fcp_exists = FileUtils.IsDirectory(@fcp_directory)
+ @nss_exists = FileUtils.IsDirectory(@fcp_directory)
end
# Abort function
# @return [Boolean] return true if abort
def Abort
- return @AbortFunction.call == true if @AbortFunction != nil
+ return @AbortFunction.call if @AbortFunction
false
end
@@ -101,384 +103,26 @@
def SetModified
Builtins.y2debug("Reipl::SetModified")
@modified = true
-
nil
end
- # Find where sysfs has been mounted.
- # @return [String] the root
- def FindSysfsRoot
- ret = nil
- mounts = nil
-
- mounts = Convert.convert(
- SCR.Read(path(".etc.mtab")),
- :from => "any",
- :to => "list <map>"
- )
-
- Builtins.foreach(mounts) do |mount|
- Builtins.y2debug("FindSysfsRoot: mount = %1", mount)
- if ret == nil && Ops.get_string(mount, "vfstype", "ERROR") == "sysfs" &&
- Ops.get_string(mount, "spec", "ERROR") == "sysfs"
- ret = Ops.get_string(mount, "file")
- end
- end
-
- if ret == nil
- Builtins.y2error("FindSysfsRoot: after all this, ret is still nil!")
-
- # Note: This likely won't work so you need to check the results of calls using what we
- # are returning now.
- ret = "/sys"
- end
-
- Builtins.y2milestone("FindSysfsRoot: returning %1", ret)
-
- ret
- end
-
# Check to see if reipl is supported by the kernel.
# @return [Boolean] true if support exists.
- def SanityCheck
- # @TBD The following is broken during install since the id command is missing
- # bash-3.1# find `echo $PATH | tr ':' ' '` -name id
- # if (!Confirm::MustBeRoot ()) {
- # y2error ("User must be root!");
- # }
-
- if !FileUtils.IsDirectory(@reipl_directory)
- Builtins.y2error("Directory does not exist: %1", @reipl_directory)
- return false
- end
-
- if !@ccw_exists && !@fcp_exists
- Builtins.y2error(
- "Either ccw or fcp must exist under %1",
- @reipl_directory
- )
- return false
- end
-
- if @ccw_exists
- if !FileUtils.Exists(Ops.add(@ccw_directory, "/device"))
- Builtins.y2error("Missing device under %1", @ccw_directory)
- return false
- end
- if !FileUtils.Exists(Ops.add(@ccw_directory, "/loadparm"))
- Builtins.y2error("Missing loadparm under %1", @ccw_directory)
- return false
- end
- # don't check for "parm" since it might not be there under zLPAR
- end
-
- if @fcp_exists
- if !FileUtils.Exists(Ops.add(@fcp_directory, "/device"))
- Builtins.y2error("Missing device under %1", @fcp_directory)
- return false
- end
- if !FileUtils.Exists(Ops.add(@fcp_directory, "/wwpn"))
- Builtins.y2error("Missing wwpn under %1", @fcp_directory)
- return false
- end
- if !FileUtils.Exists(Ops.add(@fcp_directory, "/lun"))
- Builtins.y2error("Missing lun under %1", @fcp_directory)
- return false
- end
- if !FileUtils.Exists(Ops.add(@fcp_directory, "/bootprog"))
- Builtins.y2error("Missing bootprog under %1", @fcp_directory)
- return false
- end
- if !FileUtils.Exists(Ops.add(@fcp_directory, "/br_lba"))
- Builtins.y2error("Missing br_lba under %1", @fcp_directory)
- return false
- end
- end
-
- if !FileUtils.Exists(Ops.add(@reipl_directory, "/reipl_type"))
- Builtins.y2error("Missing reipl_type under %1", @reipl_directory)
- return false
- end
-
- true
- end
-
- # Returns the parameters of the boot partition that was found where the
- # MBR was located.
- # @return a list of parameters
- def FindBootPartition
- uParts = nil
- fError = false
- command = nil
- result = nil
-
- mp = Storage.GetMountPoints
-
- mountdata_boot = Ops.get_list(mp, "/boot", Ops.get_list(mp, "/", []))
- Builtins.y2milestone("mountdata_boot %1", mountdata_boot)
- boot_device = Ops.get_string(mountdata_boot, 0, "")
-
- # Examples: /dev/dasda2 or /dev/sda3
- Builtins.y2milestone(
- "FindBootPartition: BootPartitionDevice = %1",
- boot_device
- )
-
- # Examples: dasda2 or sda3
- fullDisk = Builtins.substring(boot_device, 5)
-
- Builtins.y2milestone("FindBootPartition: fullDisk = %1", fullDisk)
-
- if Builtins.substring(fullDisk, 0, 4) == "dasd"
- disk = nil
- # fullDisk might be a full block device or just a partition on such a
- # block device. If it is a partition we have to get rid of the suffix
- # specifying the partition in order to get the containing block device.
- # This device could have thousands of block devices, which is not uncommon
- # on s390. In such a case the devices would have names such as "dasdaab" or
- # "dasdaab1."
- split = Builtins.regexptokenize(fullDisk, "^(dasd)([a-z]*)([0-9]*)$")
-
- if split == nil || Builtins.size(split) != 3
- Builtins.y2error(
- "FindBootPartition: Could not regexptokenize fullDisk, split = %1",
- split
- )
-
- fError = true
- else
- disk = Ops.add(Ops.get(split, 0, ""), Ops.get(split, 1, ""))
- end
-
- Builtins.y2milestone(
- "FindBootPartition: found that the MBR uses dasd (%1)",
- disk
- )
-
- if disk != nil
- # bash-3.1# readlink -m /sys/block/dasda/device
- # /sys/devices/css0/0.0.0006/0.0.4dcf
- command = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("/usr/bin/readlink -n -m ", FindSysfsRoot()),
- "/block/"
- ),
- disk
- ),
- "/device"
- )
- Builtins.y2milestone("Executing %1", command)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), command)
- )
-
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "FindBootPartition: Execute errors and returns %1",
- Ops.get_integer(result, "exit", -1)
- )
- Builtins.y2error(
- "FindBootPartition: Execute stdout is \"%1\"",
- Ops.get_string(result, "stdout", "")
- )
- Builtins.y2error(
- "FindBootPartition: Execute stderr is \"%1\"",
- Ops.get_string(result, "stderr", "")
- )
-
- fError = true
- end
-
- Builtins.y2milestone("FindBootPartition: result = %1", result)
-
- readlinkParts = nil
-
- readlinkParts = Builtins.splitstring(
- Ops.get_string(result, "stdout", ""),
- "/"
- )
-
- Builtins.y2milestone(
- "FindBootPartition: readlinkParts = %1",
- readlinkParts
- )
-
- if Ops.less_than(Builtins.size(readlinkParts), 1)
- Builtins.y2error(
- "FindBootPartition: readlinkParts size is unexpected %1",
- readlinkParts
- )
-
- fError = true
- end
-
- ccwDevice = Ops.get(
- readlinkParts,
- Ops.subtract(Builtins.size(readlinkParts), 1),
- ""
- )
-
- uParts = ["ccw", ccwDevice] if !fError
- end
- elsif Builtins.substring(fullDisk, 0, 2) == "sd"
- disk = nil
- # fullDisk might be a full block device or just a partition on such a
- # block device. If it is a partition we have to get rid of the suffix
- # specifying the partition in order to get the containing block device.
- # This device could have thousands of block devices, which is not uncommon
- # on s390. In such a case the devices would have names such as "sdaab" or
- # "sdaab1."
- split = Builtins.regexptokenize(fullDisk, "^(sd)([a-z]*)([0-9]*)$")
-
- if split == nil || Builtins.size(split) != 3
- Builtins.y2error(
- "FindBootPartition: Could not regexptokenize fullDisk, split = %1",
- split
- )
-
- fError = true
- else
- disk = Ops.add(Ops.get(split, 0, ""), Ops.get(split, 1, ""))
- end
-
- if disk != nil
- Builtins.y2milestone(
- "FindBootPartition: found that the MBR uses SCSI (%1)",
- disk
- )
-
- deviceDirectory = Ops.add(
- Ops.add(Ops.add(FindSysfsRoot(), "/block/"), disk),
- "/device/"
- )
-
- # bash-3.1# cat /sys/block/sda/device/hba_id
- # 0.0.1734
- hbaId = Convert.to_string(
- SCR.Read(path(".target.string"), Ops.add(deviceDirectory, "hba_id"))
- )
-
- # bash-3.1# cat /sys/block/sda/device/wwpn
- # 0x500507630300c562
- wwpn = Convert.to_string(
- SCR.Read(path(".target.string"), Ops.add(deviceDirectory, "wwpn"))
- )
-
- # bash-3.1# cat /sys/block/sda/device/fcp_lun
- # 0x401040eb00000000
- fcpLun = Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(deviceDirectory, "fcp_lun")
- )
- )
-
- Builtins.y2milestone("FindBootPartition: hbaId = %1", hbaId)
- Builtins.y2milestone("FindBootPartition: wwpn = %1", wwpn)
- Builtins.y2milestone("FindBootPartition: fcpLun = %1", fcpLun)
-
- hbaId = Builtins.deletechars(hbaId, "\n ")
- wwpn = Builtins.deletechars(wwpn, "\n ")
- fcpLun = Builtins.deletechars(fcpLun, "\n ")
-
- if hbaId == nil || Builtins.size(hbaId) == 0
- Builtins.y2error("FindBootPartition: hbaId is empty!")
- fError = true
- end
- if wwpn == nil || Builtins.size(wwpn) == 0
- Builtins.y2error("FindBootPartition: wwpn is empty!")
- fError = true
- end
- if fcpLun == nil || Builtins.size(fcpLun) == 0
- Builtins.y2error("FindBootPartition: fcpLun is empty!")
- fError = true
- end
-
- uParts = ["zfcp", hbaId, wwpn, fcpLun] if !fError
- end
- else
- Builtins.y2error(
- "FindBootPartition: Unexpected format \"%1\"",
- fullDisk
- )
- end
-
- Builtins.y2milestone("FindBootPartition: returning uParts = %1", uParts)
-
- deep_copy(uParts)
- end
-
# Returns the reipl configuration passed in with what it should be for the detected
# boot partition.
# @param [Hash{String => Object}] configuration an old configuration.
# @return a map of the new target configuration.
- def ModifyReiplWithBootPartition(configuration)
- configuration = deep_copy(configuration)
+ def IPL_from_boot_zipl
# get target information
- uParts = FindBootPartition()
-
- if uParts == nil
- Builtins.y2error("ModifyReiplWithBootPartition: uParts is nil")
- end
-
- fCCW = false
- fFCP = false
-
- if Builtins.size(uParts) == 2
- if Ops.get(uParts, 0, "") == "ccw"
- fCCW = true
- else
- Builtins.y2error(
- "ModifyReiplWithBootPartition: size of uParts is 2, but first word is not ccw!"
- )
- end
- elsif Builtins.size(uParts) == 4
- if Ops.get(uParts, 0, "") == "zfcp"
- fFCP = true
- else
- Builtins.y2error(
- "ModifyReiplWithBootPartition: size of uParts is 4, but format is not what we expect"
- )
- end
- else
- Builtins.y2error(
- "ModifyReiplWithBootPartition: size of uParts is not 2 or 4"
- )
- end
-
- if fCCW
- Ops.set(configuration, "method", "ccw")
- ccw_map = Ops.get_map(configuration, "ccw")
-
- Ops.set(ccw_map, "device", Ops.get(uParts, 1, ""))
- Ops.set(ccw_map, "loadparm", "")
- #ccw_map["parm"] = ""; /* SLES 11 and z/VM only */ // read only
- Ops.set(configuration, "ccw", ccw_map)
- Builtins.y2milestone("ModifyReiplWithBootPartition: modified ccw map")
- elsif fFCP
- Ops.set(configuration, "method", "fcp")
- fcp_map = Ops.get_map(configuration, "fcp")
-
- Ops.set(fcp_map, "device", Ops.get(uParts, 1, ""))
- Ops.set(fcp_map, "wwpn", Ops.get(uParts, 2, ""))
- Ops.set(fcp_map, "lun", Ops.get(uParts, 3, ""))
- Ops.set(fcp_map, "bootprog", "0")
- Ops.set(fcp_map, "br_lba", "0")
- Ops.set(configuration, "fcp", fcp_map)
- Builtins.y2milestone("ModifyReiplWithBootPartition: modified fcp map")
- else
- Builtins.y2error("ModifyReiplWithBootPartition: Unknown disk type!")
- Ops.set(configuration, "method", "unknown_disk_type")
- end
-
- deep_copy(configuration)
+ result = Yast::SCR.Execute(path(".target.bash_output"), "chreipl node /mnt/boot/zipl")
+ return result["exit"] == 0
end
# Read all reipl settings
# @return [Hash{String => Object}] of settings
def ReadState
configuration = {}
+ Builtins.y2milestone("ReadState: The beginngn")
Ops.set(
configuration,
"ccw",
@@ -487,152 +131,39 @@
Ops.set(
configuration,
"fcp",
- {
- "device" => "",
- "wwpn" => "",
- "lun" => "",
- "bootprog" => "",
- "br_lba" => ""
- }
+ { "device" => "", "wwpn" => "", "lun" => "", "bootprog" => "", "br_lba" => "", "bootparms" => "" }
)
+ Ops.set(
+ configuration,
+ "nss",
+ { "name" => "", "loadparm" => "", "parm" => "" }
+ )
+
+ result = Yast::SCR.Execute(path(".target.bash_output"), "lsreipl")
+ raise "Calling lsreipl failed with #{result["stderr"]}" unless result["exit"].zero?
+
+ lsreipl_lines = result["stdout"].split("\n")
+ type = lsreipl_lines[0][/ccw$|fcp$|node$/]
+ if type == "ccw"
+ ccw_map = Ops.get_map(configuration, "ccw")
+ Ops.set(ccw_map, "device", Builtins.deletechars(Convert.to_string(lsreipl_lines[1][/[0-3]\.[0-3]\.[\h.]*$/]), "\n "))
+ Ops.set(ccw_map, "loadparm", Builtins.deletechars(Convert.to_string(lsreipl_lines[2][/".*"$/]), "\n \""))
+ Ops.set(ccw_map, "parm", Builtins.deletechars(Convert.to_string(lsreipl_lines[3][/".*"$/]), "\n \""))
+ Ops.set(configuration, "ccw", ccw_map)
+ end
+ if type == "fcp"
+ fcp_map = Ops.get_map(configuration, "fcp")
+ Ops.set(ccw_map, "wwpm", Builtins.deletechars(Convert.to_string(lsreipl_lines[1][/[x\h]*$/]), "\n "))
+ Ops.set(ccw_map, "lun", Builtins.deletechars(Convert.to_string(lsreipl_lines[2][/[x\h]*$/]), "\n "))
+ Ops.set(ccw_map, "device", Builtins.deletechars(Convert.to_string(lsreipl_lines[3][/[0-3]\.[0-3]\.[\h.]*$/]), "\n "))
+ Ops.set(ccw_map, "bootprog", Builtins.deletechars(Convert.to_string(lsreipl_lines[4][/[0-9]*$/]), "\n "))
+ Ops.set(ccw_map, "br_lbr", Builtins.deletechars(Convert.to_string(lsreipl_lines[5][/[0-9]*$/]), "\n "))
+ Ops.set(ccw_map, "bootparms", Builtins.deletechars(Convert.to_string(lsreipl_lines[6][/".*"*$/]), "\n \""))
+ Ops.set(configuration, "fcp", fcp_map)
- if !SanityCheck()
- Builtins.y2error("Reipl::Read: SanityCheck failed!")
-
- # Popup::Error (_("This machine does not support reipl!"));
- # Don't bother the user, just silently do shutdown in the end.
- # Especially, since this would currently popup three times
- # during installation.
-
- return deep_copy(configuration)
- end
-
- if @ccw_exists
- ccw_map = Ops.get_map(configuration, "ccw")
-
- Ops.set(
- ccw_map,
- "device",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@ccw_directory, "/device")
- )
- ),
- "\n "
- )
- )
- Ops.set(
- ccw_map,
- "loadparm",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@ccw_directory, "/loadparm")
- )
- ),
- "\n "
- )
- )
- Ops.set(
- ccw_map,
- "parm",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(path(".target.string"), Ops.add(@ccw_directory, "/parm"))
- ),
- "\n "
- )
- ) # SLES 11 and z/VM only
-
- Ops.set(configuration, "ccw", ccw_map)
- else
- Builtins.y2warning("Reipl::Read: ccw is not configured.")
- end
-
- if @fcp_exists
- fcp_map = Ops.get_map(configuration, "fcp")
-
- Ops.set(
- fcp_map,
- "device",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@fcp_directory, "/device")
- )
- ),
- "\n "
- )
- )
- Ops.set(
- fcp_map,
- "wwpn",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(path(".target.string"), Ops.add(@fcp_directory, "/wwpn"))
- ),
- "\n "
- )
- )
- Ops.set(
- fcp_map,
- "lun",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(path(".target.string"), Ops.add(@fcp_directory, "/lun"))
- ),
- "\n "
- )
- )
- Ops.set(
- fcp_map,
- "bootprog",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@fcp_directory, "/bootprog")
- )
- ),
- "\n "
- )
- )
- Ops.set(
- fcp_map,
- "br_lba",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@fcp_directory, "/br_lba")
- )
- ),
- "\n "
- )
- )
-
- Ops.set(configuration, "fcp", fcp_map)
- else
- Builtins.y2warning("Reipl::Read: fcp is not configured.")
end
- Ops.set(
- configuration,
- "method",
- Builtins.deletechars(
- Convert.to_string(
- SCR.Read(
- path(".target.string"),
- Ops.add(@reipl_directory, "/reipl_type")
- )
- ),
- "\n "
- )
- )
+ configuration["method"] = type
deep_copy(configuration)
end
@@ -642,7 +173,7 @@
def Read
configuration = ReadState()
- @reipl_configuration = deep_copy(configuration) if configuration != nil
+ @reipl_configuration = deep_copy(configuration) if configuration
return false if Abort()
@modified = false
@@ -655,94 +186,24 @@
def WriteState(configuration)
configuration = deep_copy(configuration)
rc = true
+ result = nil
if Ops.get(configuration, "method") != nil &&
Ops.get_string(configuration, "method", "unknown_disk_type") !=
"unknown_disk_type"
- Builtins.y2milestone(
- "Reipl::WriteState: writing out method %1",
- Ops.get_string(configuration, "method", "")
- )
-
- SCR.Write(
- path(".target.string"),
- Ops.add(@reipl_directory, "/reipl_type"),
- Ops.get_string(configuration, "method")
- )
- # I see a difference between the value written to the log and written to sysfs:
- # configuration["method"]:"" <===> (string)configuration["method"]:nil
- # But that's probably OK here and not the reason for the obvious bug in the y2log.
- end
-
- if @ccw_exists
- result = nil
- echoCmd = nil
-
- Builtins.y2milestone(
- "Reipl::WriteState: writing out ccw configuration."
- )
+ type = Ops.get_string(configuration, "method")
+ Builtins.y2milestone("Reipl::WriteState: writing out method %1", type)
+ end
+
+ if type == "ccw"
ccw_map = Ops.get_map(configuration, "ccw")
if ccw_map != nil
- Builtins.y2milestone(
- "Reipl::WriteState: ccw_map device is now \"%1\"",
- Ops.get_string(ccw_map, "device", "???")
- )
- Builtins.y2milestone(
- "Reipl::WriteState: ccw_map loadparm is now \"%1\"",
- Ops.get_string(ccw_map, "loadparm", "???")
- )
-
- # NOTE: It should be this, but you cannot write an empty ("") string out!
- # rc = SCR::Write (.target.string, ccw_directory + "/device", (string)ccw_map["device"]:nil);
- # rc = SCR::Write (.target.string, ccw_directory + "/loadparm", (string)ccw_map["loadparm"]:nil);
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(ccw_map, "device")),
- "\" > "
- ),
- @ccw_directory
- ),
- "/device"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing ccw device returns %1",
- Ops.get_string(result, "stderr", "")
- )
-
- rc = false
- end
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(ccw_map, "loadparm")),
- "\" > "
- ),
- @ccw_directory
- ),
- "/loadparm"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing ccw loadparm returns %1",
- Ops.get_string(result, "stderr", "")
- )
- rc = false
- end
+ device = Ops.get_string(ccw_map, "device", "???")
+ loadparm = Ops.get_string(ccw_map, "loadparm", "???")
+
else
Builtins.y2error("Reipl::WriteState: ccw_map is nil!")
@@ -750,158 +211,46 @@
end
end
- if @fcp_exists
- result = nil
- echoCmd = nil
-
- Builtins.y2milestone(
- "Reipl::WriteState: writing out fcp configuration."
- )
-
+ if type == "fcp"
fcp_map = Ops.get_map(configuration, "fcp")
if fcp_map != nil
- Builtins.y2milestone(
- "Reipl::WriteState: fcp_map device is now \"%1\"",
- Ops.get_string(fcp_map, "device", "???")
- )
- Builtins.y2milestone(
- "Reipl::WriteState: fcp_map wwpn is now \"%1\"",
- Ops.get_string(fcp_map, "wwpn", "???")
- )
- Builtins.y2milestone(
- "Reipl::WriteState: fcp_map lun is now \"%1\"",
- Ops.get_string(fcp_map, "lun", "???")
- )
- Builtins.y2milestone(
- "Reipl::WriteState: fcp_map bootprog is now \"%1\"",
- Ops.get_string(fcp_map, "bootprog", "???")
- )
- Builtins.y2milestone(
- "Reipl::WriteState: fcp_map br_lba is now \"%1\"",
- Ops.get_string(fcp_map, "br_lba", "???")
- )
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(fcp_map, "device")),
- "\" > "
- ),
- @fcp_directory
- ),
- "/device"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing fcp device returns %1",
- Ops.get_string(result, "stderr", "")
- )
-
- rc = false
- end
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(fcp_map, "wwpn")),
- "\" > "
- ),
- @fcp_directory
- ),
- "/wwpn"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing fcp wwpn returns %1",
- Ops.get_string(result, "stderr", "")
- )
-
- rc = false
- end
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(fcp_map, "lun")),
- "\" > "
- ),
- @fcp_directory
- ),
- "/lun"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing fcp lun returns %1",
- Ops.get_string(result, "stderr", "")
- )
-
- rc = false
- end
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(fcp_map, "bootprog")),
- "\" > "
- ),
- @fcp_directory
- ),
- "/bootprog"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing fcp bootprog returns %1",
- Ops.get_string(result, "stderr", "")
- )
-
- rc = false
- end
-
- echoCmd = Ops.add(
- Ops.add(
- Ops.add(
- Ops.add("echo \"", Ops.get_string(fcp_map, "br_lba")),
- "\" > "
- ),
- @fcp_directory
- ),
- "/br_lba"
- )
- Builtins.y2milestone("Executing %1", echoCmd)
- result = Convert.to_map(
- SCR.Execute(path(".target.bash_output"), echoCmd)
- )
- if Ops.get_integer(result, "exit", -1) != 0
- Builtins.y2error(
- "Error: Writing fcp br_lba returns %1",
- Ops.get_string(result, "stderr", "")
- )
+ Builtins.y2milestone("Reipl::WriteState: fcp_map device is now \"%1\"", Ops.get_string(fcp_map, "device", "???"))
+ Builtins.y2milestone("Reipl::WriteState: fcp_map wwpn is now \"%1\"", Ops.get_string(fcp_map, "wwpn", "???"))
+ Builtins.y2milestone("Reipl::WriteState: fcp_map lun is now \"%1\"", Ops.get_string(fcp_map, "lun", "???"))
+ Builtins.y2milestone("Reipl::WriteState: fcp_map bootprog is now \"%1\"", Ops.get_string(fcp_map, "bootprog", "???"))
+ Builtins.y2milestone("Reipl::WriteState: fcp_map br_lba is now \"%1\"", Ops.get_string(fcp_map, "br_lba", "???"))
+
+ device = Ops.get_string(fcp_map, "device") + " " + Ops.get_string(fcp_map, "wwpn") + " " + Ops.get_string(fcp_map, "lun")
+ loadparm = Ops.get_string(fcp_map, "loadparm", "???")
+
+ Builtins.y2milestone("FCP Device %1, loadparm %2 %1", device, loadparm)
- rc = false
- end
else
Builtins.y2error("Reipl::Write: fcp_map is nil!")
rc = false
end
end
+ if type == "nss"
+ nss_map = Ops.get_map(configuration, "nss")
+ if nss_map != nil
+ device = Ops.get_string(fcp_map, "name")
+ loadparm = ""
+ end
+ end
+ # now type, device, loadparm contain all what is needed to call chreipl
+ chreiplCmd = "chreipl " + type + " " + device
+ if loadparm != ""
+ chreiplCmd << " -L " + loadparm
+ end
+ Builtins.y2milestone("Executing %1", chreiplCmd)
+ result = Convert.to_map(SCR.Execute(path(".target.bash_output"), chreiplCmd))
+ if Ops.get_integer(result, "exit", -1) != 0
+ Builtins.y2error( "Error: Calling chreipl fails with code %1 and output %2", Ops.get_integer(result, "exit", -1), Ops.get_string(result, "stderr", ""))
+
+ rc = false
+ end
rc
end
@@ -1040,16 +389,15 @@
publish :variable => :AbortFunction, :type => "boolean ()"
publish :function => :Abort, :type => "boolean ()"
publish :function => :SetModified, :type => "void ()"
- publish :function => :FindSysfsRoot, :type => "string ()"
publish :variable => :reipl_configuration, :type => "map <string, any>"
publish :variable => :reipl_directory, :type => "string"
publish :variable => :ccw_directory, :type => "string"
publish :variable => :fcp_directory, :type => "string"
+ publish :variable => :nss_directory, :type => "string"
publish :variable => :ccw_exists, :type => "boolean"
publish :variable => :fcp_exists, :type => "boolean"
- publish :function => :SanityCheck, :type => "boolean ()"
- publish :function => :FindBootPartition, :type => "list <string> ()"
- publish :function => :ModifyReiplWithBootPartition, :type => "map <string, any> (map <string, any>)"
+ publish :variable => :nss_exists, :type => "boolean"
+ publish :function => :IPL_from_boot_zipl, :type => "boolean ()"
publish :function => :ReadState, :type => "map <string, any> ()"
publish :function => :Read, :type => "boolean ()"
publish :function => :WriteState, :type => "boolean (map <string, any>)"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package e2fsprogs for openSUSE:Factory checked in at 2014-05-02 19:22:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/e2fsprogs (Old)
and /work/SRC/openSUSE:Factory/.e2fsprogs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "e2fsprogs"
Changes:
--------
--- /work/SRC/openSUSE:Factory/e2fsprogs/e2fsprogs.changes 2014-02-02 18:08:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.e2fsprogs.new/e2fsprogs.changes 2014-05-02 19:22:06.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Apr 28 17:45:46 UTC 2014 - mfasheh(a)suse.com
+
+- Add filefrag-print-shared-extent-flag.patch: lets filefrag print shared
+ extent flag when it gets it. Helps with fate#316317 / bnc#868847. Patch
+ sent to upstream 4/17/2014.
+
+-------------------------------------------------------------------
New:
----
filefrag-print-shared-extent-flag.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ e2fsprogs.spec ++++++
--- /var/tmp/diff_new_pack.yHnP9h/_old 2014-05-02 19:22:08.000000000 +0200
+++ /var/tmp/diff_new_pack.yHnP9h/_new 2014-05-02 19:22:08.000000000 +0200
@@ -76,8 +76,9 @@
# e2fsprogs patches
#
Patch1: e2fsprogs-1.41.1-splash_support.patch
+Patch2: filefrag-print-shared-extent-flag.patch
# libcom_err patches
-Patch2: libcom_err-compile_et_permissions.patch
+Patch3: libcom_err-compile_et_permissions.patch
Patch4: e2fsprogs-1.42-implicit_fortify_decl.patch
Patch5: e2fsprogs-1.42-ext2fsh_implicit.patch
# Do not suppress make commands
@@ -189,8 +190,9 @@
%setup -q -n e2fsprogs-%{version}
# e2fsprogs patches
%patch1
-# libcom_err patches
%patch2 -p1
+# libcom_err patches
+%patch3 -p1
%patch4
%patch5
cp %{SOURCE2} .
++++++ filefrag-print-shared-extent-flag.patch ++++++
>From 6a14c51d612184f2c09c5b4148abb6afbb2e1fb0 Mon Sep 17 00:00:00 2001
From: Mark Fasheh <mfasheh(a)suse.de>
Date: Thu, 17 Apr 2014 14:31:56 -0700
Subject: filefrag: print shared extent flag
Filefrag doesn't catch and print the shared extent flag. Add this for
users of filefrag on file systems with shared extents (such as btrfs).
Signed-off-by: Mark Fasheh <mfasheh(a)suse.de>
---
lib/ext2fs/fiemap.h | 2 ++
misc/filefrag.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/lib/ext2fs/fiemap.h b/lib/ext2fs/fiemap.h
index 30bf555..895cd0b 100644
--- a/lib/ext2fs/fiemap.h
+++ b/lib/ext2fs/fiemap.h
@@ -64,5 +64,7 @@ struct fiemap {
#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively
* support extents. Result
* merged for efficiency. */
+#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
+ * files. */
#endif /* _LINUX_FIEMAP_H */
diff --git a/misc/filefrag.c b/misc/filefrag.c
index a050a22..929a33b 100644
--- a/misc/filefrag.c
+++ b/misc/filefrag.c
@@ -165,6 +165,8 @@ static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
strcat(flags, "unwritten,");
if (fm_extent->fe_flags & FIEMAP_EXTENT_MERGED)
strcat(flags, "merged,");
+ if (fm_extent->fe_flags & FIEMAP_EXTENT_SHARED)
+ strcat(flags, "shared,");
if (fm_extent->fe_logical + fm_extent->fe_length >= (__u64) st->st_size)
strcat(flags, "eof,");
--
1.8.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package talloc for openSUSE:Factory checked in at 2014-05-02 19:22:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/talloc (Old)
and /work/SRC/openSUSE:Factory/.talloc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "talloc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/talloc/talloc.changes 2013-12-09 07:19:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.talloc.new/talloc.changes 2014-05-02 19:22:04.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Apr 23 16:42:59 UTC 2014 - dmueller(a)suse.com
+
+- Remove dependency on gpg-offline to reduce rebuild times; signature checking
+ is implemented already in the source validator.
+
+-------------------------------------------------------------------
Old:
----
samba-library-distribution-pubkey_13084025.asc
talloc-2.1.0.tar.gz
New:
----
talloc-2.1.0.tar
talloc.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ talloc.spec ++++++
--- /var/tmp/diff_new_pack.oaVTit/_old 2014-05-02 19:22:05.000000000 +0200
+++ /var/tmp/diff_new_pack.oaVTit/_new 2014-05-02 19:22:05.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package talloc
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 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
@@ -27,9 +27,6 @@
BuildRequires: autoconf
BuildRequires: docbook-xsl-stylesheets
BuildRequires: doxygen
-%if 0%{?suse_version} > 1220
-BuildRequires: gpg-offline
-%endif
BuildRequires: libxslt
%if 0%{?suse_version} > 1020
BuildRequires: pkg-config
@@ -47,10 +44,16 @@
Summary: Samba talloc Library
License: LGPL-3.0+
Group: System/Libraries
-Source: http://download.samba.org/pub/talloc/talloc-%{version}.tar.gz
+# Unfortunately upstream is mindboggingly stupid here by gpg signing the
+# uncompressed tarball, but not publishing the uncompressed tarball but
+# only a compressed one. so we need to unpack it manually so that
+# gpg verification works, but then we can't have download verification
+
+# http://download.samba.org/pub/talloc/talloc-%{version}.tar
+Source: talloc-%{version}.tar
Source1: http://download.samba.org/pub/talloc/talloc-%{version}.tar.asc
-Source2: samba-library-distribution-pubkey_13084025.asc
Source4: baselibs.conf
+Source50: %name.keyring
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -109,11 +112,6 @@
%prep
-%if 0%{?suse_version} > 1220
-gzip -dc %{SOURCE0} >${RPM_SOURCE_DIR}/%{name}-%{version}.tar
-%{?gpg_verify: %gpg_verify --keyring %{SOURCE2} %{SOURCE1}}
-rm ${RPM_SOURCE_DIR}/%{name}-%{version}.tar
-%endif
%setup -n talloc-%{version} -q
%build
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libgpg-error for openSUSE:Factory checked in at 2014-05-02 19:22:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgpg-error (Old)
and /work/SRC/openSUSE:Factory/.libgpg-error.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgpg-error"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgpg-error/libgpg-error.changes 2013-08-21 13:46:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libgpg-error.new/libgpg-error.changes 2014-05-02 19:22:02.000000000 +0200
@@ -1,0 +2,24 @@
+Sun Apr 27 16:18:42 UTC 2014 - andreas.stieger(a)gmx.de
+
+- update to 1.13:
+ * Added a portable mutex API.
+ * The AM_PATH_GPG_ERROR macro now defines GPG_ERROR_MT_CFLAGS
+ and GPG_ERROR_MT_LIBS autoconf output variables for use by
+ programs which need gpgrt based thread support.
+ gpg-error-config has a new option --mt.
+- Interface changes relative to the 1.12 release:
+ GPG_ERR_KEY_ON_CARD NEW.
+ GPG_ERR_MAC_ALGO NEW.
+ GPG_ERR_INV_LOCK_OBJ NEW.
+ gpgrt_lock_t NEW.
+ GPGRT_LOCK_INITIALIZER NEW.
+ GPGRT_LOCK_DEFINE NEW.
+ gpgrt_lock_init NEW.
+ gpgrt_lock_lock NEW.
+ gpgrt_lock_unlock NEW.
+ gpgrt_lock_destroy NEW.
+ gpgrt_yield NEW.
+- run available tests
+- fix SLE 11 SP2 build (make install)
+
+-------------------------------------------------------------------
Old:
----
libgpg-error-1.12.tar.bz2
libgpg-error-1.12.tar.bz2.sig
New:
----
libgpg-error-1.13.tar.bz2
libgpg-error-1.13.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgpg-error.spec ++++++
--- /var/tmp/diff_new_pack.6UZ6My/_old 2014-05-02 19:22:03.000000000 +0200
+++ /var/tmp/diff_new_pack.6UZ6My/_new 2014-05-02 19:22:03.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libgpg-error
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: libgpg-error
-Version: 1.12
+Version: 1.13
Release: 0
Summary: Library That Defines Common Error Values for All GnuPG Components
License: GPL-2.0+ and LGPL-2.1+
@@ -26,10 +26,10 @@
Source: ftp://ftp.gnupg.org/gcrypt/libgpg-error/%{name}-%{version}.tar.bz2
Source1: ftp://ftp.gnupg.org/gcrypt/libgpg-error/%{name}-%{version}.tar.bz2.sig
# http://www.gnupg.org/signature_key.en.html
-Source2: %name.keyring
+Source2: %{name}.keyring
Source3: baselibs.conf
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libtool
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
#BuildRequires: gpg-offline
%description
@@ -41,13 +41,13 @@
Summary: Library That Defines Common Error Values for All GnuPG Components
License: GPL-2.0+ and LGPL-2.1+
Group: Development/Libraries/C and C++
+#
+Provides: libgpg-error = %{version}
+Obsoletes: libgpg-error < %{version}
# bug437293
%ifarch ppc64
Obsoletes: libgpg-error-64bit
%endif
-#
-Provides: libgpg-error = %version
-Obsoletes: libgpg-error < %version
%description -n libgpg-error0
This is a library that defines common error values for all GnuPG
@@ -58,34 +58,36 @@
Summary: Development package for libgpg-error
License: GPL-2.0+ and LGPL-2.1+ and MIT
Group: Development/Libraries/C and C++
+#
+Requires: glibc-devel
+Requires: libgpg-error0 = %{version}
# bug437293
%ifarch ppc64
Obsoletes: libgpg-error-devel-64bit
%endif
-#
-Requires: glibc-devel
-Requires: libgpg-error0 = %version
%description devel
Files needed for software development using libgpg-error.
%prep
-%setup -q -n libgpg-error-%version
+%setup -q -n libgpg-error-%{version}
%build
%configure --disable-static --with-pic
make %{?_smp_mflags}
%install
-%make_install
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
rm %{buildroot}%{_libdir}/libgpg-error.la
# Drop the lisp stuff, it depends on ASDF and CFFI
# which needs to be packaged first
rm -r %{buildroot}%{_datadir}/common-lisp
%find_lang %{name}
-%clean
-rm -rf %{buildroot}
+%check
+make check %{?_smp_mflags}
+%{buildroot}/%{_bindir}/gpg-error-config --libs | grep -q -v "\-lpthread"
+%{buildroot}/%{_bindir}/gpg-error-config --mt --libs | grep -q "\-lpthread"
%post -n libgpg-error0 -p /sbin/ldconfig
++++++ libgpg-error-1.12.tar.bz2 -> libgpg-error-1.13.tar.bz2 ++++++
++++ 44429 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-Jinja2 for openSUSE:Factory checked in at 2014-05-02 19:21:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Jinja2 (Old)
and /work/SRC/openSUSE:Factory/.python-Jinja2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Jinja2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Jinja2/python-Jinja2.changes 2014-01-23 15:53:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-Jinja2.new/python-Jinja2.changes 2014-05-02 19:21:59.000000000 +0200
@@ -1,0 +2,5 @@
+Sat Apr 26 19:38:39 UTC 2014 - dmueller(a)suse.com
+
+- avoid rebuildcycle with vim
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Jinja2.spec ++++++
--- /var/tmp/diff_new_pack.0XSyGH/_old 2014-05-02 19:21:59.000000000 +0200
+++ /var/tmp/diff_new_pack.0XSyGH/_new 2014-05-02 19:21:59.000000000 +0200
@@ -27,7 +27,6 @@
BuildRequires: fdupes
BuildRequires: python-devel
BuildRequires: python-setuptools
-BuildRequires: vim
Provides: python-jinja2 = %{version}
Obsoletes: python-jinja2 < %{version}
Requires: python-markupsafe
@@ -99,6 +98,9 @@
%files vim
%defattr(-,root,root,-)
+%dir %{_datadir}/vim
+%dir %{_datadir}/vim/site
+%dir %{_datadir}/vim/site/syntax
%{_datadir}/vim/site/syntax/jinja.vim
%files emacs
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package samba for openSUSE:Factory checked in at 2014-05-02 19:21:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/samba (Old)
and /work/SRC/openSUSE:Factory/.samba.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "samba"
Changes:
--------
--- /work/SRC/openSUSE:Factory/samba/samba.changes 2014-04-23 20:35:47.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.samba.new/samba.changes 2014-05-02 19:21:41.000000000 +0200
@@ -1,0 +2,11 @@
+Fri Apr 25 08:47:57 UTC 2014 - ddiss(a)suse.com
+
+- Clone the base share security descriptor when exposing a snapshot share;
+ (bnc#874656).
+
+-------------------------------------------------------------------
+Thu Apr 24 16:21:04 UTC 2014 - ddiss(a)suse.com
+
+- Use appropriate HRESULT return codes; (bnc#875046).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.kv8rMW/_old 2014-05-02 19:21:43.000000000 +0200
+++ /var/tmp/diff_new_pack.kv8rMW/_new 2014-05-02 19:21:43.000000000 +0200
@@ -144,7 +144,7 @@
%else
%define build_make_smp_mflags %{?jobs:-j%jobs}
%endif
-%define SOURCE_TIMESTAMP 3229
+%define SOURCE_TIMESTAMP 3233
%define BRANCH %{version}
%global with_mitkrb5 1
%global with_dc 0
++++++ patches.tar.bz2 ++++++
++++ 33117 lines of diff (skipped)
++++++ samba-pubkey_6568B7EA.asc ++++++
--- /var/tmp/diff_new_pack.kv8rMW/_old 2014-05-02 19:21:43.000000000 +0200
+++ /var/tmp/diff_new_pack.kv8rMW/_new 2014-05-02 19:21:43.000000000 +0200
@@ -1,6 +1,6 @@
-pub 1024D/6568B7EA 2007-02-04 [expires: 2014-02-25]
+pub 1024D/6568B7EA 2007-02-04 [expires: 2016-01-17]
uid Samba Distribution Verification Key <samba-bugs(a)samba.org>
-sub 2048g/DA6DFB44 2007-02-04 [expires: 2014-02-25]
+sub 2048g/DA6DFB44 2007-02-04 [expires: 2016-01-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
@@ -25,18 +25,39 @@
ezhvaZZCPBHWiEYEEBECAAYFAkZQmboACgkQVVCoNUmKuAcl1wCdEzFgS3DIgIhY
y6Id5a9EqUjArLkAnArdjXskM952gLuyJjgictCiHdIeiEYEEBECAAYFAkZdvkMA
CgkQw1Ohknblb7ZN8gCgjD/SWG0qBCBD7w19I5kVTijU9j4AmwbPf4wU7hY942tn
-1NxUyKwF+edxuQINBEXGOWEQCADIOV4TpVG6tDXU7YD1VjJ39xduomiWTg94dIOD
-g1bZHLvwUa5I1X7zsjYmghZ5Qa6WxNknbRywWnaP0POMXSMspVWnqBQTZknxdApM
-bMQEko0pPJSLwdTD3+0y5ht4edf08asWdSBT5yvu5Oak4O/Sa3P5lNIe8Q3SjfqR
-YiSX12uWgqeh+2JsQC50Lr9rnz9AMjKqZEx2v7XKnCkxoaFy1XwOpPjJtIuPFaSI
-5OunNsuhXYeGQv7MqqA2RNuulonoHgl9J6YzRBjdmDB28Lm+JKXyJpnHDrUkK6c5
-04EuxVXXQKOvLNPwod3U89OCZ3gFZU/zeESQdpWxXMiQvUqPAAQLCACnbn0cYaXh
-l3UnnQgyPYVUJV12/sAjhlgAQq08SPgTJp4GE/Jx9C2KMS7dlWYH4tjDSbeO+RLL
-d26npdhiy8Cn9UvsJvDs71/+5S2PTpV16eH5QzQZkvJ/PXkkRXQ1Ilovkvt5rKie
-HCx4n6QZb5td9AuAeRZp75UXERO7pXKG/57o/SzswrD/tSEKRpBKQED4eHsPohLw
-3dMKDWG6hLRf4GR8v+xKLFivqXr3ttELb9xS7ZyZqz6FSFucQAp6XY/xjnR3CFzf
-Kq9pHO4PwvhU53uQeI9suAHSPecxfUIcQfrCaN6K6ktEMY+KxeTJUgqB7Fnskqyn
-Cof0MN2OA40+iE8EGBECAA8CGwwFAk9Ki+YFCQ1GuYUACgkQbzORW2Vot+poJACe
-Mx7cSix0y3zIgTvAIty06thlOMUAn1hZdeMtAkWjaKfu8LWk/umBetPI
-=49fm
+1NxUyKwF+edxiEYEEBECAAYFAkXIC4MACgkQi9gubzC5S1zMJgCgqQOcgVsXQ7IT
+BsUTEFPiGPwUis8An1sb+UQfnsoRVoiwxiczw55ACi1BiEYEEBECAAYFAkku3m0A
+CgkQSOk3aI7hFogLEgCeKMOoyGUtcp5FqhmspG2VwkKBuQkAnRloBsefS7AdUfiF
+b+R878ikkKbliEYEEBECAAYFAkoebcIACgkQXox4WnRne2nv5gCdEiyazjMYBfqr
+9a0pJQDN/iCIxacAoJOyzJp+JuItm7lmKZcRYmcPZqmsiEYEEBECAAYFAkoebdoA
+CgkQFJEptQgNy8JooQCgmdL/Gea2PmDrU2ZvopA3aYp+uUYAn1plmv07PAuVjieN
+MiUdhCpUU21KiF4EEBEIAAYFAlI1FtQACgkQEXiFBUEonDt+tgD/Zho5K93GblMx
+Jz+0SQV/xqOAq3eC3RZ9XrxsBsyTaE4A/2B8LbPeW1dg2Kn3mOwQeD8WJm7Yakt1
+k6AZTcStB2TKiGYEExECACYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCR81n
+qQUJA+hh4gAKCRBvM5FbZWi36vi9AJ4mVG9nQnBvew0UM4d+/wi+9Lb31ACfSriq
+m7CdG27eSY4+631lFdRV9meIZgQTEQIAJgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4B
+AheABQJJtjjzBQkHsmasAAoJEG8zkVtlaLfqxAQAoI0BuXAfJd6e36a/2rt4zVFO
+3EmeAKCrWxRIFlIWArnqOfG2peNa9+tnQohmBBMRAgAmAhsDBgsJCAcDAgQVAggD
+BBYCAwECHgECF4AFAk1jjnEFCQl+iKoACgkQbzORW2Vot+o+KQCgkMVKNdbKjF9s
+F7k97c0qd/xMyy8AnR6EnNmLXPZNxQlcp9ZWYcPl+IUiiGYEExECACYCGwMGCwkI
+BwMCBBUCCAMEFgIDAQIeAQIXgAUCUtjwHQUJENUd0gAKCRBvM5FbZWi36rskAJ46
+KBD19wYQIVj/7wV/ztpr80cbCgCgqAmyho6JTtwE696dgGKjobV8wJ+IZgQTEQIA
+JgUCRcY5RwIbAwUJAeEzgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEG8zkVtl
+aLfqFfkAn1T7m5GZcOgn7+vv4pWL1iRgVfH8AJ9UZyFrbR5MuvzGY3XNNC0YM6Nq
+ebkCDQRFxjlhEAgAyDleE6VRurQ11O2A9VYyd/cXbqJolk4PeHSDg4NW2Ry78FGu
+SNV+87I2JoIWeUGulsTZJ20csFp2j9DzjF0jLKVVp6gUE2ZJ8XQKTGzEBJKNKTyU
+i8HUw9/tMuYbeHnX9PGrFnUgU+cr7uTmpODv0mtz+ZTSHvEN0o36kWIkl9drloKn
+oftibEAudC6/a58/QDIyqmRMdr+1ypwpMaGhctV8DqT4ybSLjxWkiOTrpzbLoV2H
+hkL+zKqgNkTbrpaJ6B4JfSemM0QY3ZgwdvC5viSl8iaZxw61JCunOdOBLsVV10Cj
+ryzT8KHd1PPTgmd4BWVP83hEkHaVsVzIkL1KjwAECwgAp259HGGl4Zd1J50IMj2F
+VCVddv7AI4ZYAEKtPEj4EyaeBhPycfQtijEu3ZVmB+LYw0m3jvkSy3dup6XYYsvA
+p/VL7Cbw7O9f/uUtj06Vdenh+UM0GZLyfz15JEV0NSJaL5L7eayonhwseJ+kGW+b
+XfQLgHkWae+VFxETu6Vyhv+e6P0s7MKw/7UhCkaQSkBA+Hh7D6IS8N3TCg1huoS0
+X+BkfL/sSixYr6l697bRC2/cUu2cmas+hUhbnEAKel2P8Y50dwhc3yqvaRzuD8L4
+VOd7kHiPbLgB0j3nMX1CHEH6wmjeiupLRDGPisXkyVIKgexZ7JKspwqH9DDdjgON
+PohPBBgRAgAPAhsMBQJPSovmBQkNRrmFAAoJEG8zkVtlaLfqaCQAnjMe3EosdMt8
+yIE7wCLctOrYZTjFAJ9YWXXjLQJFo2in7vC1pP7pgXrTyIhPBBgRAgAPAhsMBQJS
+2PADBQkQ1R2SAAoJEG8zkVtlaLfqWU0AniUMsF8RV9nmW1GHMHS8wqZrPHDbAJ9A
+9GHh4cjTsKMmRsY6FDkDm8mExQ==
+=nU8K
-----END PGP PUBLIC KEY BLOCK-----
++++++ vendor-files.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/tools/package-data new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2014-04-17 18:25:05.000000000 +0200
+++ new/vendor-files/tools/package-data 2014-04-25 11:30:42.000000000 +0200
@@ -1,2 +1,2 @@
# This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="3229"
+SAMBA_PACKAGE_SVN_VERSION="3233"
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package texlive for openSUSE:Factory checked in at 2014-05-02 19:21:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlive (Old)
and /work/SRC/openSUSE:Factory/.texlive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlive"
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlive/texlive.changes 2014-02-02 07:40:33.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.texlive.new/texlive.changes 2014-05-02 19:21:38.000000000 +0200
@@ -1,0 +2,12 @@
+Fri May 2 08:40:22 UTC 2014 - werner(a)suse.de
+
+- Correct patch number scheme of latest change
+
+-------------------------------------------------------------------
+Wed Apr 30 20:05:29 UTC 2014 - dimstar(a)opensuse.org
+
+- Add source-poppler-0.26.patch: Fix build with poppler 0.26:
+ with poppler commit e04cab, there was an API break. Apply patch
+ onlt when building against poppler 0.26 or newer.
+
+-------------------------------------------------------------------
New:
----
source-poppler-0.26.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlive.spec ++++++
--- /var/tmp/diff_new_pack.O8IzjR/_old 2014-05-02 19:21:41.000000000 +0200
+++ /var/tmp/diff_new_pack.O8IzjR/_new 2014-05-02 19:21:41.000000000 +0200
@@ -19,7 +19,7 @@
%define texlive_version 2013
%define texlive_previous 2011
%define texlive_release 20130620
-%define texlive_noarch 81
+%define texlive_noarch 83
%define texlive_source texlive-20130620-source
%define __perl_requires %{nil}
@@ -221,6 +221,8 @@
Patch21: source-bnc856363.dif
# PATCH-FIX-UPSTREAM Do not be fooled on big endian and
Patch22: source-dvipdfmx.dif
+# PATCH-FIX-UPSTREAM source-poppler-0.26.patch dimstar(a)opensuse.org -- Fix build with Poppler 0.26
+Patch23: source-poppler-0.26.patch
# PATCH-FIX-UPSTREAM build with perl 5.18.0
Patch40: biber-dev.patch
# PATCH-EXTEND-UPSTREAM Use always system CA certificates
@@ -2283,6 +2285,7 @@
%patch20 -p0 -b .asymptote
%patch21 -p0 -b .bnc856363
%patch22 -p0 -b .be
+%patch23 -p1 -b .poppler-0.26
%patch0
%if %{with buildbiber}
pushd ../biblatex-biber-*
++++++ source-poppler-0.26.patch ++++++
diff -ur texlive-20130620-source/texk/web2c/luatexdir/lua/lepdflib.cc texlive-20130620-source.patched/texk/web2c/luatexdir/lua/lepdflib.cc
--- texlive-20130620-source/texk/web2c/luatexdir/lua/lepdflib.cc 2013-04-05 13:37:46.000000000 +0200
+++ texlive-20130620-source.patched/texk/web2c/luatexdir/lua/lepdflib.cc 2014-05-01 16:13:08.955638067 +0200
@@ -23,6 +23,7 @@
"$URL: https://foundry.supelec.fr/svn/luatex/tags/beta-0.76.0/source/texk/web2c/lu… $";
#include "image/epdf.h"
+#include <cpp/poppler-version.h>
// define DEBUG
@@ -65,6 +66,7 @@
#define M_PDFRectangle "PDFRectangle"
#define M_Ref "Ref"
#define M_Stream "Stream"
+#define M_StructTreeRoot "StructTreeRoot"
#define M_XRefEntry "XRefEntry"
#define M_XRef "XRef"
@@ -96,6 +98,7 @@
new_poppler_userdata(PDFRectangle);
new_poppler_userdata(Ref);
new_poppler_userdata(Stream);
+new_poppler_userdata(StructTreeRoot);
new_poppler_userdata(XRef);
//**********************************************************************
@@ -573,7 +576,11 @@
m_poppler_get_GOOSTRING(Catalog, getBaseURI);
m_poppler_get_GOOSTRING(Catalog, readMetadata);
+#if ((POPPLER_VERSION_MAJOR > 0) || (POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR > 25) || (POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR == 25 && POPPLER_VERSION_MICRO > 1))
+m_poppler_get_poppler(Catalog, StructTreeRoot, getStructTreeRoot);
+#else
m_poppler_get_poppler(Catalog, Object, getStructTreeRoot);
+#endif
static int m_Catalog_findPage(lua_State * L)
{
@@ -2146,7 +2153,11 @@
static int m_PDFDoc_getStructTreeRoot(lua_State * L)
{
+#if ((POPPLER_VERSION_MAJOR > 0) || (POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR > 25) || (POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR == 25 && POPPLER_VERSION_MICRO > 1))
+ StructTreeRoot *obj;
+#else
Object *obj;
+#endif
udstruct *uin, *uout;
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
if (uin->pd != NULL && uin->pd->pc != uin->pc)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0