openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2017
- 1 participants
- 1683 discussions
Hello community,
here is the log from the commit of package bluedevil5 for openSUSE:Factory checked in at 2017-07-02 13:33:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bluedevil5 (Old)
and /work/SRC/openSUSE:Factory/.bluedevil5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluedevil5"
Sun Jul 2 13:33:15 2017 rev:41 rq:506528 version:5.10.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/bluedevil5/bluedevil5.changes 2017-06-16 10:48:57.684672082 +0200
+++ /work/SRC/openSUSE:Factory/.bluedevil5.new/bluedevil5.changes 2017-07-02 13:33:18.732231789 +0200
@@ -1,0 +2,10 @@
+Tue Jun 27 17:49:12 CEST 2017 - fabian(a)ritter-vogt.de
+
+- Update to 5.10.3
+ * New bugfix release
+ * For more details please see:
+ * https://www.kde.org/announcements/plasma-5.10.3.php
+- Changes since 5.10.2:
+ * None
+
+-------------------------------------------------------------------
Old:
----
bluedevil-5.10.2.tar.xz
New:
----
bluedevil-5.10.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bluedevil5.spec ++++++
--- /var/tmp/diff_new_pack.dWKZNl/_old 2017-07-02 13:33:19.332147195 +0200
+++ /var/tmp/diff_new_pack.dWKZNl/_new 2017-07-02 13:33:19.336146630 +0200
@@ -19,7 +19,7 @@
%bcond_without lang
Name: bluedevil5
-Version: 5.10.2
+Version: 5.10.3
Release: 0
Summary: Bluetooth Manager for KDE Plasma
License: GPL-2.0+
++++++ bluedevil-5.10.2.tar.xz -> bluedevil-5.10.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluedevil-5.10.2/CMakeLists.txt new/bluedevil-5.10.3/CMakeLists.txt
--- old/bluedevil-5.10.2/CMakeLists.txt 2017-06-13 19:48:29.000000000 +0200
+++ new/bluedevil-5.10.3/CMakeLists.txt 2017-06-27 11:41:29.000000000 +0200
@@ -1,5 +1,5 @@
project(bluedevil)
-set(PROJECT_VERSION "5.10.2")
+set(PROJECT_VERSION "5.10.3")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 2.8.12)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluedevil-5.10.2/po/tr/bluedevil.po new/bluedevil-5.10.3/po/tr/bluedevil.po
--- old/bluedevil-5.10.2/po/tr/bluedevil.po 2017-06-13 19:48:22.000000000 +0200
+++ new/bluedevil-5.10.3/po/tr/bluedevil.po 2017-06-27 11:41:26.000000000 +0200
@@ -158,7 +158,8 @@
#: kcmodule/common/systemcheck.cpp:102
#, kde-format
msgid "Your default Bluetooth adapter is not visible for remote devices."
-msgstr "Öntanımlı Bluetooth bağdaştırıcınız uzak aygıtlar tarafından görülemez."
+msgstr ""
+"Öntanımlı Bluetooth bağdaştırıcınız uzak aygıtlar tarafından görülemez."
#: kcmodule/common/systemcheck.cpp:113
#, kde-format
1
0
Hello community,
here is the log from the commit of package yast2-apparmor for openSUSE:Factory checked in at 2017-07-02 13:32:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-apparmor (Old)
and /work/SRC/openSUSE:Factory/.yast2-apparmor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-apparmor"
Sun Jul 2 13:32:57 2017 rev:60 rq:507371 version:3.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-apparmor/yast2-apparmor.changes 2017-04-12 17:09:40.582808377 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-apparmor.new/yast2-apparmor.changes 2017-07-02 13:32:59.738910023 +0200
@@ -1,0 +2,6 @@
+Fri Jun 30 12:44:14 UTC 2017 - jreidinger(a)suse.com
+
+- fix name of apparmor systemd service (bsc#1046750)
+- 3.2.1
+
+-------------------------------------------------------------------
Old:
----
yast2-apparmor-3.2.0.tar.bz2
New:
----
yast2-apparmor-3.2.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-apparmor.spec ++++++
--- /var/tmp/diff_new_pack.5H0Sqy/_old 2017-07-02 13:33:00.478805691 +0200
+++ /var/tmp/diff_new_pack.5H0Sqy/_new 2017-07-02 13:33:00.478805691 +0200
@@ -17,7 +17,7 @@
Name: yast2-apparmor
-Version: 3.2.0
+Version: 3.2.1
Release: 0
Summary: YaST2 - Plugins for AppArmor Profile Management
License: GPL-2.0
++++++ yast2-apparmor-3.2.0.tar.bz2 -> yast2-apparmor-3.2.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-apparmor-3.2.0/package/yast2-apparmor.changes new/yast2-apparmor-3.2.1/package/yast2-apparmor.changes
--- old/yast2-apparmor-3.2.0/package/yast2-apparmor.changes 2017-04-05 10:21:30.785108603 +0200
+++ new/yast2-apparmor-3.2.1/package/yast2-apparmor.changes 2017-06-30 15:24:27.532314934 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Jun 30 12:44:14 UTC 2017 - jreidinger(a)suse.com
+
+- fix name of apparmor systemd service (bsc#1046750)
+- 3.2.1
+
+-------------------------------------------------------------------
Wed Apr 5 07:03:30 UTC 2017 - mfilka(a)suse.com
- bnc#1026027
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-apparmor-3.2.0/package/yast2-apparmor.spec new/yast2-apparmor-3.2.1/package/yast2-apparmor.spec
--- old/yast2-apparmor-3.2.0/package/yast2-apparmor.spec 2017-04-05 10:21:30.789108603 +0200
+++ new/yast2-apparmor-3.2.1/package/yast2-apparmor.spec 2017-06-30 15:24:27.532314934 +0200
@@ -17,7 +17,7 @@
Name: yast2-apparmor
-Version: 3.2.0
+Version: 3.2.1
Release: 0
Summary: YaST2 - Plugins for AppArmor Profile Management
Url: https://github.com/yast/yast-apparmor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-apparmor-3.2.0/src/servers_non_y2/ag_aa_config new/yast2-apparmor-3.2.1/src/servers_non_y2/ag_aa_config
--- old/yast2-apparmor-3.2.0/src/servers_non_y2/ag_aa_config 2017-04-05 10:21:30.789108603 +0200
+++ new/yast2-apparmor-3.2.1/src/servers_non_y2/ag_aa_config 2017-06-30 15:24:27.568314934 +0200
@@ -39,7 +39,7 @@
}
}
close(RUN);
- system("systemctl enable boot.apparmor");
+ system("systemctl enable apparmor");
} else {
if (-e "/sbin/rcapparmor") {
open(RUN, "/sbin/rcapparmor stop 2>&1 |");
@@ -52,7 +52,7 @@
}
}
close(RUN);
- system("systemctl disable boot.apparmor");
+ system("systemctl disable apparmor");
}
return $errmsg;
}
1
0
Hello community,
here is the log from the commit of package skelcd-control-openSUSE for openSUSE:Factory checked in at 2017-07-02 13:32:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/skelcd-control-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.skelcd-control-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "skelcd-control-openSUSE"
Sun Jul 2 13:32:50 2017 rev:188 rq:507087 version:42.3.99.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/skelcd-control-openSUSE/skelcd-control-openSUSE-promo.changes 2017-06-24 08:34:08.243077602 +0200
+++ /work/SRC/openSUSE:Factory/.skelcd-control-openSUSE.new/skelcd-control-openSUSE-promo.changes 2017-07-02 13:32:54.307675876 +0200
@@ -1,0 +2,6 @@
+Wed Jun 28 18:06:31 UTC 2017 - lnussel(a)suse.de
+
+- Reword role selection dialog (boo#1045180)
+- 42.3.99.9
+
+-------------------------------------------------------------------
@@ -50 +56 @@
-- 42.3.99.2
+- 42.3.2
@@ -56 +61,0 @@
-- 42.3.99.1
@@ -59 +64,7 @@
-Wed Dec 7 17:26:12 UTC 2016 - jberry(a)suse.com
+Thu Jan 5 10:04:44 UTC 2017 - dmueller(a)suse.com
+
+- Fix Leap 42.3 setup for ports ( lets reuse previous bnc#1010989)
+- 42.3.1
+
+-------------------------------------------------------------------
+Tue Dec 6 01:32:20 UTC 2016 - jberry(a)suse.com
@@ -61,2 +72,2 @@
-- Increase version beyond Leap 42.3.
-- 42.3.99.0
+- Start Leap 42.3 version.
+- 42.3.0
skelcd-control-openSUSE.changes: same change
Old:
----
skelcd-control-openSUSE-42.3.99.8.tar.bz2
New:
----
skelcd-control-openSUSE-42.3.99.9.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ skelcd-control-openSUSE-promo.spec ++++++
--- /var/tmp/diff_new_pack.wRJ9ic/_old 2017-07-02 13:32:56.047430555 +0200
+++ /var/tmp/diff_new_pack.wRJ9ic/_new 2017-07-02 13:32:56.047430555 +0200
@@ -27,7 +27,7 @@
#
######################################################################
Name: skelcd-control-openSUSE-promo
-Version: 42.3.99.8
+Version: 42.3.99.9
Release: 0
Summary: The openSUSE Installation Control file
License: MIT
skelcd-control-openSUSE.spec: same change
++++++ skelcd-control-openSUSE-42.3.99.8.tar.bz2 -> skelcd-control-openSUSE-42.3.99.9.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skelcd-control-openSUSE-42.3.99.8/control/control.openSUSE.xml new/skelcd-control-openSUSE-42.3.99.9/control/control.openSUSE.xml
--- old/skelcd-control-openSUSE-42.3.99.8/control/control.openSUSE.xml 2017-06-21 12:49:45.743439349 +0200
+++ new/skelcd-control-openSUSE-42.3.99.9/control/control.openSUSE.xml 2017-06-29 16:24:53.447017347 +0200
@@ -489,36 +489,31 @@
<roles_caption>
<!-- TRANSLATORS: dialog caption -->
- <label>Computer Role</label>
+ <label>Please select a user interface</label>
</roles_caption>
<roles_text>
<!-- TRANSLATORS: label in a dialog -->
- <label>Computer Role is a predefined use case which tailor the system
-for the selected scenario.</label>
+ <label>Choose a pre-defined user interface or a custom software selection.</label>
</roles_text>
<roles_help>
<!-- TRANSLATORS: dialog help -->
- <label><p>The computer role adjustments are in the range from package selection up
-to running additional services. By choosing a computer role, the system is
-configured accordingly to match the use case of the role. For the <em>Custom</em> role
-an additional dialog is displayed which allows manual software pattern selection. </p></label>
+ <label><p>Choose a pre-defined user interface or customize the
+ software selection manually.</p></label>
</roles_help>
<kde>
<!-- TRANSLATORS: a label for a system role -->
- <label>Workstation with KDE Plasma</label>
+ <label>Desktop with KDE Plasma</label>
</kde>
<kde_description>
- <label>KDE is a powerful and intuitive desktop environment that uses Kontact as mailer,
-Dolphin as file manager, and offers both Firefox and Konqueror as Web browsers.
+ <label>KDE Plasma is a graphical desktop environment and the default on openSUSE Leap.
</label>
</kde_description>
<gnome>
<!-- TRANSLATORS: a label for a system role -->
- <label>Workstation with GNOME</label>
+ <label>Desktop with GNOME</label>
</gnome>
<gnome_description>
- <label>GNOME is a powerful and intuitive desktop environment that uses Evolution as mailer,
-Firefox as browser, and Nautilus as file manager.
+ <label>GNOME is a graphical desktop environment and the default on SUSE Linux Enterprise.
</label>
</gnome_description>
<server>
@@ -526,15 +521,14 @@
<label>Server (Text Mode)</label>
</server>
<server_description>
- <label>The "Server" role is useful when the computer should not have any graphical interaction
-with the user and only provide a command line.</label>
+ <label>The server selection installs a reduced set of packages and offers a text mode interface.</label>
</server_description>
<custom>
<!-- TRANSLATORS: a label for a system role -->
<label>Custom</label>
</custom>
<custom_description>
- <label>Custom role runs additional dialog where user can select software that fits his requirements.</label>
+ <label>The custom selection allows to select alternative software patterns to customize the installation. Additional software is available in the online repositories.</label>
</custom_description>
</texts>
@@ -857,7 +851,7 @@
<enable_back>yes</enable_back>
</module>
<module>
- <label>Computer Role</label>
+ <label>User Interface</label>
<name>desktop_roles</name>
<enable_back>yes</enable_back>
</module>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skelcd-control-openSUSE-42.3.99.8/package/skelcd-control-openSUSE.changes new/skelcd-control-openSUSE-42.3.99.9/package/skelcd-control-openSUSE.changes
--- old/skelcd-control-openSUSE-42.3.99.8/package/skelcd-control-openSUSE.changes 2017-06-21 12:49:45.743439349 +0200
+++ new/skelcd-control-openSUSE-42.3.99.9/package/skelcd-control-openSUSE.changes 2017-06-29 16:24:53.467017347 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed Jun 28 18:06:31 UTC 2017 - lnussel(a)suse.de
+
+- Reword role selection dialog (boo#1045180)
+- 42.3.99.9
+
+-------------------------------------------------------------------
Tue Jun 20 15:44:27 UTC 2017 - cwh(a)suse.com
- added yast2-s390 as a requirement for s390(x) as a Storage NG
@@ -10,7 +16,7 @@
- bnc#1042482
- Fixed "Server role" description
-- 42.3.99.7
+- 42.3.99.7
-------------------------------------------------------------------
Thu Jun 1 13:21:39 CEST 2017 - schubi(a)suse.de
@@ -32,10 +38,10 @@
Tue May 9 07:23:50 UTC 2017 - sflees(a)suse.de
- Replace the generic_server pattern reference with console.
- * As part of the patterns cleanup the generic_server pattern
+ * As part of the patterns cleanup the generic_server pattern
was merged into the console pattern and removed. (bsc#1038233)
- 42.3.99.4
-
+
-------------------------------------------------------------------
Tue Apr 18 14:48:28 UTC 2017 - tchvatal(a)suse.com
@@ -47,19 +53,24 @@
Wed Feb 8 14:50:06 UTC 2017 - jreidinger(a)suse.com
- add new desktop selection workflow (poo#14936, bsc#1025415)
-- 42.3.99.2
+- 42.3.2
-------------------------------------------------------------------
Wed Jan 25 13:04:28 UTC 2017 - jreidinger(a)suse.com
- initial support for s390 (bsc#1021615)
-- 42.3.99.1
-------------------------------------------------------------------
-Wed Dec 7 17:26:12 UTC 2016 - jberry(a)suse.com
+Thu Jan 5 10:04:44 UTC 2017 - dmueller(a)suse.com
+
+- Fix Leap 42.3 setup for ports ( lets reuse previous bnc#1010989)
+- 42.3.1
+
+-------------------------------------------------------------------
+Tue Dec 6 01:32:20 UTC 2016 - jberry(a)suse.com
-- Increase version beyond Leap 42.3.
-- 42.3.99.0
+- Start Leap 42.3 version.
+- 42.3.0
-------------------------------------------------------------------
Tue Nov 22 16:43:21 CET 2016 - schubi(a)suse.de
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/skelcd-control-openSUSE-42.3.99.8/package/skelcd-control-openSUSE.spec new/skelcd-control-openSUSE-42.3.99.9/package/skelcd-control-openSUSE.spec
--- old/skelcd-control-openSUSE-42.3.99.8/package/skelcd-control-openSUSE.spec 2017-06-21 12:49:45.743439349 +0200
+++ new/skelcd-control-openSUSE-42.3.99.9/package/skelcd-control-openSUSE.spec 2017-06-29 16:24:53.467017347 +0200
@@ -27,7 +27,7 @@
#
######################################################################
Name: skelcd-control-openSUSE
-Version: 42.3.99.8
+Version: 42.3.99.9
Release: 0
Summary: The openSUSE Installation Control file
License: MIT
1
0
Hello community,
here is the log from the commit of package yast2-ntp-client for openSUSE:Factory checked in at 2017-07-02 13:32:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-ntp-client (Old)
and /work/SRC/openSUSE:Factory/.yast2-ntp-client.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-ntp-client"
Sun Jul 2 13:32:45 2017 rev:95 rq:507026 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-ntp-client/yast2-ntp-client.changes 2017-06-07 13:09:02.410318193 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-ntp-client.new/yast2-ntp-client.changes 2017-07-02 13:32:46.708747391 +0200
@@ -1,0 +2,7 @@
+Mon Jun 26 17:23:52 UTC 2017 - jlopez(a)suse.com
+
+- AutoYaST: Fixed crash in CFA when creating restrict record from
+ scratch (bsc#1045777)
+- 3.3.0
+
+-------------------------------------------------------------------
Old:
----
yast2-ntp-client-3.2.8.tar.bz2
New:
----
yast2-ntp-client-3.3.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-ntp-client.spec ++++++
--- /var/tmp/diff_new_pack.FfV1yJ/_old 2017-07-02 13:32:47.288665618 +0200
+++ /var/tmp/diff_new_pack.FfV1yJ/_new 2017-07-02 13:32:47.292665054 +0200
@@ -17,7 +17,7 @@
Name: yast2-ntp-client
-Version: 3.2.8
+Version: 3.3.0
Release: 0
Summary: YaST2 - NTP Client Configuration
License: GPL-2.0+
++++++ yast2-ntp-client-3.2.8.tar.bz2 -> yast2-ntp-client-3.3.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-ntp-client-3.2.8/package/yast2-ntp-client.changes new/yast2-ntp-client-3.3.0/package/yast2-ntp-client.changes
--- old/yast2-ntp-client-3.2.8/package/yast2-ntp-client.changes 2017-06-06 11:09:07.669780499 +0200
+++ new/yast2-ntp-client-3.3.0/package/yast2-ntp-client.changes 2017-06-29 12:41:52.639939132 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Mon Jun 26 17:23:52 UTC 2017 - jlopez(a)suse.com
+
+- AutoYaST: Fixed crash in CFA when creating restrict record from
+ scratch (bsc#1045777)
+- 3.3.0
+
+-------------------------------------------------------------------
Fri Jun 2 16:37:27 CEST 2017 - schubi(a)suse.de
- AutoYaST: Fixed crash in CFA class while writing settings to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-ntp-client-3.2.8/package/yast2-ntp-client.spec new/yast2-ntp-client-3.3.0/package/yast2-ntp-client.spec
--- old/yast2-ntp-client-3.2.8/package/yast2-ntp-client.spec 2017-06-06 11:09:07.669780499 +0200
+++ new/yast2-ntp-client-3.3.0/package/yast2-ntp-client.spec 2017-06-29 12:41:52.639939132 +0200
@@ -17,7 +17,7 @@
Name: yast2-ntp-client
-Version: 3.2.8
+Version: 3.3.0
Release: 0
Summary: YaST2 - NTP Client Configuration
License: GPL-2.0+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-ntp-client-3.2.8/src/lib/cfa/ntp_conf.rb new/yast2-ntp-client-3.3.0/src/lib/cfa/ntp_conf.rb
--- old/yast2-ntp-client-3.2.8/src/lib/cfa/ntp_conf.rb 2017-06-06 11:09:07.681780499 +0200
+++ new/yast2-ntp-client-3.3.0/src/lib/cfa/ntp_conf.rb 2017-06-29 12:41:52.643939132 +0200
@@ -488,30 +488,46 @@
# For example:
# restrict -4 default notrap nomodify nopeer noquery
#
+ # FIXME: right now there is no way to create an ipv4 restrict
+ # record from scratch using old lens. The reason is that it
+ # is not possible to detect an old_lens? case for a new record.
+ #
# Restrict entry has its own options interpretation.
class RestrictRecord < Record
AUGEAS_KEY = "restrict[]".freeze
def options
return [] unless tree_value?
- res = augeas_options.map { |option| option[:value] }
- res.shift if old_lens?
+ res = augeas_options.map { |augeas_option| option(augeas_option) }
+
+ if old_lens?
+ res.shift
+ res.unshift("ipv4") if orig_value == "-4"
+ end
res
end
+ # Set restrict options
+ # @param options [Array<String>] It can contain values as "ipv4", "ipv6",
+ # "notrap", "nomodify", "nopeer", "noquery".
+ #
+ # @note ip version is an option: "ipv4" or "ipv6"
def options=(options)
+ ensure_tree_value
+
# backward compatibility with old lens that set value ip restriction
# instead of address
if old_lens?
options = options.dup
+ self.orig_value = "-4" if options.include?("ipv4")
+ options.delete("ipv4")
address = augeas_options.map { |option| option[:value] }.first
options.unshift(address) if address
end
- ensure_tree_value
tree_value.tree.delete(options_matcher)
- options.each { |option| tree_value.tree.add("action[]", option) }
+ options.each { |option| add_option(option) }
end
alias_method :orig_value, :value
@@ -519,6 +535,7 @@
old_lens? ? augeas_options.map { |option| option[:value] }.first : orig_value
end
+ alias_method :orig_value=, :value=
def value=(value)
if old_lens?
holder = tree_value.tree.select(options_matcher).first
@@ -531,8 +548,25 @@
private
+ def add_option(option)
+ if ["ipv4", "ipv6"].include?(option)
+ key = option
+ value = nil
+ else
+ key = "action[]"
+ value = option
+ end
+ tree_value.tree.add(key, value)
+ end
+
+ def option(augeas_option)
+ key = augeas_option[:key]
+ return key if ["ipv4", "ipv6"].include?(key)
+ augeas_option[:value]
+ end
+
def options_matcher
- Matcher.new { |k, _v| k.include?("action") }
+ Matcher.new { |k, _v| !k.match(/action|ipv4|ipv6/).nil? }
end
# backward compatibility with old lens that set value ip restriction
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-ntp-client-3.2.8/src/modules/NtpClient.rb new/yast2-ntp-client-3.3.0/src/modules/NtpClient.rb
--- old/yast2-ntp-client-3.2.8/src/modules/NtpClient.rb 2017-06-06 11:09:07.681780499 +0200
+++ new/yast2-ntp-client-3.3.0/src/modules/NtpClient.rb 2017-06-29 12:41:52.647939132 +0200
@@ -676,13 +676,17 @@
end
next deep_copy(p)
end
+
+ # sanitize records
+ @ntp_records = @ntp_records.map { |r| sanitize_record(r) }
+
# restricts is a list of entries whereas restrict_map
# is a map with target key (ip, ipv4-tag, ipv6-tag,...).
restricts = settings["restricts"] || []
@restrict_map = {}
restricts.each do |entry|
- target = entry.delete("target")
- @restrict_map[target] = entry
+ target = entry.delete("target").strip
+ @restrict_map[target] = sanitize_record(entry)
end
@modified = true
true
@@ -983,6 +987,13 @@
private
+ # Remove blank spaces in values
+ def sanitize_record(record)
+ sanitized = record.dup
+ sanitized.each_value(&:strip!)
+ sanitized
+ end
+
# Set @ntp_policy according to NETCONFIG_NTP_POLICY value found in
# /etc/sysconfig/network/config or with "auto" if not found
#
@@ -1227,14 +1238,23 @@
# Returns current restrict map as a list of ntp records
def restrict_map_records
@restrict_map.map do |key, m|
- options = " "
- options << "mask #{m["mask"]} " if !m["mask"].to_s.empty?
- options << m["options"].to_s
+ address = key
+ options = m["options"].to_s.split
+
+ if ["-4", "-6"].include?(key)
+ address = options.first
+ options.shift
+ options.unshift("ipv4") if key == "-4"
+ options.unshift("ipv6") if key == "-6"
+ end
+
+ options << "mask #{m["mask"]}" if !m["mask"].to_s.empty?
+
{
"type" => "restrict",
- "address" => key,
+ "address" => address,
"comment" => m["comment"].to_s,
- "options" => options,
+ "options" => options.join(" "),
"cfa_record" => m["cfa_record"]
}
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-ntp-client-3.2.8/test/cfa/ntp_conf_test.rb new/yast2-ntp-client-3.3.0/test/cfa/ntp_conf_test.rb
--- old/yast2-ntp-client-3.2.8/test/cfa/ntp_conf_test.rb 2017-06-06 11:09:07.681780499 +0200
+++ new/yast2-ntp-client-3.3.0/test/cfa/ntp_conf_test.rb 2017-06-29 12:41:52.647939132 +0200
@@ -390,13 +390,13 @@
describe "#options" do
it "obtains the options of the record" do
- expect(record.options).to eq(%w(notrap nomodify nopeer))
+ expect(record.options).to eq(%w(ipv4 notrap nomodify nopeer))
end
end
context "#options=" do
it "sets options to the record" do
- options = ["notrap"]
+ options = ["ipv4", "notrap"]
record.options = options
expect(record.options).to eq(options)
ntp.save
@@ -406,18 +406,29 @@
describe "#raw_options" do
it "obtains options as string" do
- expect(record.raw_options).to eq("notrap nomodify nopeer")
+ expect(record.raw_options).to eq("ipv4 notrap nomodify nopeer")
end
end
describe "#raw_options=" do
it "sets options from a string" do
- record.raw_options = "notrap"
- expect(record.options).to eq(["notrap"])
+ record.raw_options = "ipv4 notrap"
+ expect(record.options).to eq(["ipv4", "notrap"])
ntp.save
expect(file.content).to include("restrict -4 default notrap\n")
end
end
+
+ context "when creating a new record from scratch" do
+ it "sets values correctly" do
+ record = CFA::NtpConf::RestrictRecord.new
+ record.value = "default"
+ record.options = ["ipv6", "notrap"]
+ ntp.records << record
+ ntp.save
+ expect(file.content).to include("restrict -6 default notrap\n")
+ end
+ end
end
describe CFA::NtpConf::TrustedkeyRecord do
1
0
Hello community,
here is the log from the commit of package yast2-kdump for openSUSE:Factory checked in at 2017-07-02 13:32:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-kdump (Old)
and /work/SRC/openSUSE:Factory/.yast2-kdump.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-kdump"
Sun Jul 2 13:32:39 2017 rev:84 rq:506968 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-kdump/yast2-kdump.changes 2017-06-24 08:33:20.013897308 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-kdump.new/yast2-kdump.changes 2017-07-02 13:32:42.601326573 +0200
@@ -1,0 +2,8 @@
+Mon Jun 26 15:27:06 CEST 2017 - schubi(a)suse.de
+
+- Crash in AutoYaST clone: Fix for "dup" while getting
+ crash_xen_kernel_values and crash_kernel_values values.
+ (bnc#1045965)
+- 3.3.0
+
+-------------------------------------------------------------------
Old:
----
yast2-kdump-3.2.6.tar.bz2
New:
----
yast2-kdump-3.3.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-kdump.spec ++++++
--- /var/tmp/diff_new_pack.KFaU7W/_old 2017-07-02 13:32:43.133251568 +0200
+++ /var/tmp/diff_new_pack.KFaU7W/_new 2017-07-02 13:32:43.137251004 +0200
@@ -17,7 +17,7 @@
Name: yast2-kdump
-Version: 3.2.6
+Version: 3.3.0
Release: 0
Summary: Configuration of kdump
License: GPL-2.0
++++++ yast2-kdump-3.2.6.tar.bz2 -> yast2-kdump-3.3.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-kdump-3.2.6/package/yast2-kdump.changes new/yast2-kdump-3.3.0/package/yast2-kdump.changes
--- old/yast2-kdump-3.2.6/package/yast2-kdump.changes 2017-06-22 15:29:27.273595575 +0200
+++ new/yast2-kdump-3.3.0/package/yast2-kdump.changes 2017-06-29 10:37:19.430757928 +0200
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Mon Jun 26 15:27:06 CEST 2017 - schubi(a)suse.de
+
+- Crash in AutoYaST clone: Fix for "dup" while getting
+ crash_xen_kernel_values and crash_kernel_values values.
+ (bnc#1045965)
+- 3.3.0
+
+-------------------------------------------------------------------
Wed Jun 21 09:10:56 UTC 2017 - gsouza(a)suse.com
- Fixed regular expression that verifies alloc_mem parameter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-kdump-3.2.6/package/yast2-kdump.spec new/yast2-kdump-3.3.0/package/yast2-kdump.spec
--- old/yast2-kdump-3.2.6/package/yast2-kdump.spec 2017-06-22 15:29:27.273595575 +0200
+++ new/yast2-kdump-3.3.0/package/yast2-kdump.spec 2017-06-29 10:37:19.430757928 +0200
@@ -17,7 +17,7 @@
Name: yast2-kdump
-Version: 3.2.6
+Version: 3.3.0
Release: 0
Summary: Configuration of kdump
License: GPL-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-kdump-3.2.6/src/modules/Kdump.rb new/yast2-kdump-3.3.0/src/modules/Kdump.rb
--- old/yast2-kdump-3.2.6/src/modules/Kdump.rb 2017-06-22 15:29:27.277595575 +0200
+++ new/yast2-kdump-3.3.0/src/modules/Kdump.rb 2017-06-29 10:37:19.454757928 +0200
@@ -1145,7 +1145,11 @@
# modification.
# The old value (ensuring the Array format) will be returned.
if @crashkernel_list_ranges
- return Array((a)crashkernel_param_values.dup)
+ if @crashkernel_param_values.is_a? Symbol
+ return Array((a)crashkernel_param_values.to_s)
+ else
+ return Array((a)crashkernel_param_values.dup)
+ end
end
result = []
@@ -1173,7 +1177,11 @@
# modification.
# The old value (ensuring the Array format) will be returned.
if @crashkernel_list_ranges
- return Array((a)crashkernel_xen_param_values.dup)
+ if @crashkernel_xen_param_values.is_a? Symbol
+ return Array((a)crashkernel_xen_param_values.to_s)
+ else
+ return Array((a)crashkernel_xen_param_values.dup)
+ end
end
result = []
1
0
Hello community,
here is the log from the commit of package yast2 for openSUSE:Factory checked in at 2017-07-02 13:32:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2 (Old)
and /work/SRC/openSUSE:Factory/.yast2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2"
Sun Jul 2 13:32:34 2017 rev:405 rq:506966 version:3.2.40
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2/yast2.changes 2017-06-24 08:33:25.133173431 +0200
+++ /work/SRC/openSUSE:Factory/.yast2.new/yast2.changes 2017-07-02 13:32:35.318353535 +0200
@@ -1,0 +2,10 @@
+Fri Jun 23 07:26:03 UTC 2017 - mvidner(a)suse.com
+
+- Support for the new Expert Partitioner (boo#1039901):
+- Added UI::Sequence, UI::Greasemonkey
+- Added CWM::Dialog
+- RSpec.shared_examples for CWM: Page, PushButton, RadioButtons,
+ RichText.
+- 3.2.40
+
+-------------------------------------------------------------------
Old:
----
yast2-3.2.39.tar.bz2
New:
----
yast2-3.2.40.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.o8XTyK/_old 2017-07-02 13:32:35.970261611 +0200
+++ /var/tmp/diff_new_pack.o8XTyK/_new 2017-07-02 13:32:35.970261611 +0200
@@ -17,7 +17,7 @@
Name: yast2
-Version: 3.2.39
+Version: 3.2.40
Release: 0
Summary: YaST2 - Main Package
License: GPL-2.0
++++++ yast2-3.2.39.tar.bz2 -> yast2-3.2.40.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/src/Makefile.am new/yast2-3.2.40/library/cwm/src/Makefile.am
--- old/yast2-3.2.39/library/cwm/src/Makefile.am 2017-06-22 16:34:32.438119103 +0200
+++ new/yast2-3.2.40/library/cwm/src/Makefile.am 2017-06-29 10:29:38.850757928 +0200
@@ -15,6 +15,7 @@
lib/cwm/abstract_widget.rb \
lib/cwm/common_widgets.rb \
lib/cwm/custom_widget.rb \
+ lib/cwm/dialog.rb \
lib/cwm/page.rb \
lib/cwm/pager.rb \
lib/cwm/replace_point.rb \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/src/lib/cwm/dialog.rb new/yast2-3.2.40/library/cwm/src/lib/cwm/dialog.rb
--- old/yast2-3.2.39/library/cwm/src/lib/cwm/dialog.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/cwm/src/lib/cwm/dialog.rb 2017-06-29 10:29:38.862757928 +0200
@@ -0,0 +1,104 @@
+require "yast"
+
+Yast.import "CWM"
+
+module CWM
+ # An OOP API and the pieces missing from {Yast::CWMClass#show Yast::CWM.show}:
+ # - creating and closing a wizard dialog
+ # - Back/Abort/Next buttons
+ #
+ # @see UI::Dialog
+ # @see CWM::AbstractWidget
+ class Dialog
+ include Yast::Logger
+ include Yast::I18n
+ include Yast::UIShortcuts
+
+ # @return [String,nil] The dialog title. `nil`: keep the existing title.
+ def title
+ nil
+ end
+
+ # @return [CWM::WidgetTerm]
+ abstract_method :contents
+
+ # A shortcut for `.new(*args).run`
+ def self.run(*args)
+ new(*args).run
+ end
+
+ # The entry point.
+ # Will open (and close) a wizard dialog unless one already exists.
+ # @return [Symbol]
+ def run
+ if should_open_dialog?
+ wizard_create_dialog { cwm_show }
+ else
+ cwm_show
+ end
+ end
+
+ def should_open_dialog?
+ !Yast::Wizard.IsWizardDialog
+ end
+
+ # The :back button
+ # @return [String,true,nil] button label,
+ # `true` to use the default label, or `nil` to omit the button
+ def back_button
+ true
+ end
+
+ # The :abort button
+ # @return [String,true,nil] button label,
+ # `true` to use the default label, or `nil` to omit the button
+ def abort_button
+ true
+ end
+
+ # The :next button
+ # @return [String,true,nil] button label,
+ # `true` to use the default label, or `nil` to omit the button
+ def next_button
+ true
+ end
+
+ # @return [Array<Symbol>]
+ # Events for which `store` won't be called, see {Yast::CWMClass#show}
+ def skip_store_for
+ []
+ end
+
+ private
+
+ # Create a wizard dialog, run the *block*, ensure the dialog is closed.
+ # @param block
+ def wizard_create_dialog(&block)
+ Yast::Wizard.CreateDialog
+ block.call
+ ensure
+ Yast::Wizard.CloseDialog
+ end
+
+ # Call {Yast::CWMClass#show} with appropriate arguments
+ # @return [Symbol] wizard sequencer symbol
+ def cwm_show
+ Yast::CWM.show(
+ contents,
+ caption: title,
+ back_button: replace_true(back_button, Yast::Label.BackButton),
+ abort_button: replace_true(abort_button, Yast::Label.AbortButton),
+ next_button: replace_true(next_button, Yast::Label.NextButton),
+ skip_store_for: skip_store_for
+ )
+ end
+
+ def replace_true(value, replacement)
+ if value == true
+ replacement
+ else
+ value
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/src/lib/cwm/rspec.rb new/yast2-3.2.40/library/cwm/src/lib/cwm/rspec.rb
--- old/yast2-3.2.39/library/cwm/src/lib/cwm/rspec.rb 2017-06-22 16:34:32.442119103 +0200
+++ new/yast2-3.2.40/library/cwm/src/lib/cwm/rspec.rb 2017-06-29 10:29:38.866757928 +0200
@@ -58,10 +58,15 @@
include_examples "CWM::CustomWidget"
end
-RSpec.shared_examples "CWM::Tab" do
+RSpec.shared_examples "CWM::Page" do
include_examples "CWM::CustomWidget"
end
+# Tab is an alias for Page
+RSpec.shared_examples "CWM::Tab" do
+ include_examples "CWM::Page"
+end
+
RSpec.shared_examples "CWM::ItemsSelection" do
describe "#items" do
it "produces an array of pairs of strings" do
@@ -79,6 +84,23 @@
include_examples "CWM::ItemsSelection"
end
+RSpec.shared_examples "CWM::PushButton" do
+ include_examples "CWM::AbstractWidget"
+end
+
+RSpec.shared_examples "CWM::RadioButtons" do
+ include_examples "CWM::AbstractWidget"
+ include_examples "CWM::ItemsSelection"
+end
+
+RSpec.shared_examples "CWM::ValueBasedWidget" do
+end
+
+RSpec.shared_examples "CWM::RichText" do
+ include_examples "CWM::AbstractWidget"
+ include_examples "CWM::ValueBasedWidget"
+end
+
RSpec.shared_examples "CWM::Table" do
include_examples "CWM::AbstractWidget"
@@ -100,3 +122,41 @@
end
end
end
+
+RSpec.shared_examples "CWM::Dialog" do
+ describe "#contents" do
+ it "produces a Term" do
+ expect(subject.contents).to be_a Yast::Term
+ end
+ end
+
+ describe "#title" do
+ it "produces a String or nil" do
+ expect(subject.title).to be_a(String).or be_nil
+ end
+ end
+
+ describe "#back_button" do
+ it "produces a String or true or nil" do
+ expect(subject.back_button).to be_a(String).or be(true).or be_nil
+ end
+ end
+
+ describe "#abort_button" do
+ it "produces a String or true or nil" do
+ expect(subject.abort_button).to be_a(String).or be(true).or be_nil
+ end
+ end
+
+ describe "#next_button" do
+ it "produces a String or true or nil" do
+ expect(subject.next_button).to be_a(String).or be(true).or be_nil
+ end
+ end
+
+ describe "#skip_store_for" do
+ it "produces an Array" do
+ expect(subject.skip_store_for).to be_an Array
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/src/lib/cwm/tree.rb new/yast2-3.2.40/library/cwm/src/lib/cwm/tree.rb
--- old/yast2-3.2.39/library/cwm/src/lib/cwm/tree.rb 2017-06-22 16:34:32.446119103 +0200
+++ new/yast2-3.2.40/library/cwm/src/lib/cwm/tree.rb 2017-06-29 10:29:38.866757928 +0200
@@ -50,7 +50,7 @@
Yast::UI.ChangeWidget(Id(widget_id), :CurrentItem, val)
end
- # An alias for {TreeItem.new}
+ # An alias for {TreeItem#initialize TreeItem.new}
def new_item(*args, **kwargs)
TreeItem.new(*args, **kwargs)
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/test/Makefile.am new/yast2-3.2.40/library/cwm/test/Makefile.am
--- old/yast2-3.2.39/library/cwm/test/Makefile.am 2017-06-22 16:34:32.454119103 +0200
+++ new/yast2-3.2.40/library/cwm/test/Makefile.am 2017-06-29 10:29:38.910757928 +0200
@@ -2,6 +2,7 @@
abstract_widget_test.rb \
common_widgets_test.rb \
custom_widget_test.rb \
+ dialog_test.rb \
pager_test.rb \
replace_point_test.rb \
table_test.rb \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/cwm/test/dialog_test.rb new/yast2-3.2.40/library/cwm/test/dialog_test.rb
--- old/yast2-3.2.39/library/cwm/test/dialog_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/cwm/test/dialog_test.rb 2017-06-29 10:29:38.910757928 +0200
@@ -0,0 +1,48 @@
+#! /usr/bin/env rspec
+require_relative "test_helper"
+
+require "cwm/dialog"
+require "cwm/rspec"
+
+describe "CWM::Dialog" do
+ class TestCWMDialog < CWM::Dialog
+ def contents
+ VBox()
+ end
+ end
+ subject { TestCWMDialog.new }
+
+ include_examples "CWM::Dialog"
+
+ describe ".run" do
+ it "opens a dialog when needed, and calls CWM#show" do
+ expect(Yast::Wizard).to receive(:IsWizardDialog).and_return(false)
+ expect(Yast::Wizard).to receive(:CreateDialog)
+ expect(Yast::Wizard).to receive(:CloseDialog)
+ expect(Yast::CWM).to receive(:show).and_return(:launch)
+
+ expect(subject.class.run).to eq(:launch)
+ end
+
+ it "does not open a dialog when not needed, and calls CWM#show" do
+ expect(Yast::Wizard).to receive(:IsWizardDialog).and_return(true)
+ expect(Yast::Wizard).to_not receive(:CreateDialog)
+ expect(Yast::Wizard).to_not receive(:CloseDialog)
+ expect(Yast::CWM).to receive(:show).and_return(:launch)
+
+ expect(subject.class.run).to eq(:launch)
+ end
+ end
+
+ describe "#replace_true" do
+ it "replaces true" do
+ expect(subject.send(:replace_true, true, :new)).to eq :new
+ end
+
+ it "does not replace others" do
+ expect(subject.send(:replace_true, nil, :new)).to eq nil
+ expect(subject.send(:replace_true, false, :new)).to eq false
+ expect(subject.send(:replace_true, :old, :new)).to eq :old
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/general/src/Makefile.am new/yast2-3.2.40/library/general/src/Makefile.am
--- old/yast2-3.2.39/library/general/src/Makefile.am 2017-06-22 16:34:32.490119103 +0200
+++ new/yast2-3.2.40/library/general/src/Makefile.am 2017-06-29 10:29:38.954757928 +0200
@@ -91,6 +91,7 @@
lib/ui/dialog.rb \
lib/ui/installation_dialog.rb \
lib/ui/event_dispatcher.rb \
+ lib/ui/greasemonkey.rb \
lib/ui/service_status.rb \
lib/ui/widgets.rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/general/src/lib/ui/greasemonkey.rb new/yast2-3.2.40/library/general/src/lib/ui/greasemonkey.rb
--- old/yast2-3.2.39/library/general/src/lib/ui/greasemonkey.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/general/src/lib/ui/greasemonkey.rb 2017-06-29 10:29:38.954757928 +0200
@@ -0,0 +1,264 @@
+# encoding: utf-8
+
+# Copyright (c) 2012 Novell, Inc.
+#
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, contact Novell, Inc.
+#
+# To contact Novell about this file by physical or electronic mail, you may
+# find current contact information at www.novell.com.
+
+require "yast"
+
+module UI
+ # UI layout helpers.
+ #
+ # These started out in the Expert Partitioner in yast2-storage.
+ # The use case is reusing pieces of this legacy code in the new
+ # yast2-partitioner.
+ # That is why the API and the implementation look old.
+ module Greasemonkey
+ include Yast::UIShortcuts
+ extend Yast::UIShortcuts
+
+ Builtins = Yast::Builtins
+ Convert = Yast::Convert
+ Ops = Yast::Ops
+
+ Yast.import "Directory"
+
+ @handlers = [
+ :VStackFrames,
+ :FrameWithMarginBox,
+ :ComboBoxSelected,
+ :LeftRadioButton,
+ :LeftRadioButtonWithAttachment,
+ :LeftCheckBox,
+ :LeftCheckBoxWithAttachment,
+ :IconAndHeading
+ ]
+
+ # The compatibility API needs CamelCase method names
+ # rubocop:disable MethodName
+
+ # Wrap terms in a VBox with small vertical spacings in between.
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(
+ # :VStackFrames,
+ # Frame("f1"),
+ # Frame("f2"),
+ # Frame("f3")
+ # )
+ # ->
+ # VBox(
+ # Frame("f1"),
+ # VSpacing(0.45),
+ # Frame("f2"),
+ # VSpacing(0.45),
+ # Frame("f3")
+ # )
+ def VStackFrames(old)
+ frames = Convert.convert(
+ Builtins.argsof(old),
+ from: "list",
+ to: "list <term>"
+ )
+
+ new = VBox()
+ Builtins.foreach(frames) do |frame|
+ new = Builtins.add(new, VSpacing(0.45)) if Builtins.size(new) != 0
+ new = Builtins.add(new, frame)
+ end
+ new
+ end
+ module_function :VStackFrames
+
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:FrameWithMarginBox, "Title", "arg1", "arg2")
+ # ->
+ # Frame("Title", MarginBox(1.45, 0.45, "arg1", "arg2"))
+ def FrameWithMarginBox(old)
+ title = Ops.get_string(old, 0, "error")
+ args = Builtins.sublist(Builtins.argsof(old), 1)
+ Frame(
+ title,
+ Builtins.toterm(:MarginBox, Builtins.union([1.45, 0.45], args))
+ )
+ end
+ module_function :FrameWithMarginBox
+
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(
+ # :ComboBoxSelected,
+ # Id(:wish), Opt(:notify), "Wish",
+ # [
+ # Item(Id(:time), "Time"),
+ # Item(Id(:love), "Love"),
+ # Item(Id(:money), "Money")
+ # ],
+ # Id(:love)
+ # )
+ # ->
+ # ComboBox(
+ # Id(:wish), Opt(:notify), "Wish",
+ # [
+ # Item(Id(:time), "Time", false),
+ # Item(Id(:love), "Love", true),
+ # Item(Id(:money), "Money", false)
+ # ]
+ # )
+ def ComboBoxSelected(old)
+ args = Builtins.argsof(old)
+
+ tmp = Builtins.sublist(args, 0, Ops.subtract(Builtins.size(args), 2))
+ items = Ops.get_list(args, Ops.subtract(Builtins.size(args), 2), [])
+ id = Ops.get_term(args, Ops.subtract(Builtins.size(args), 1), Id())
+
+ items = Builtins.maplist(items) do |item|
+ Item(Ops.get(item, 0), Ops.get(item, 1), Ops.get(item, 0) == id)
+ end
+
+ Builtins.toterm(:ComboBox, Builtins.add(tmp, items))
+ end
+ module_function :ComboBoxSelected
+
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:LeftRadioButton, Id(...), "args")
+ # ->
+ # Left(RadioButton(Id(...), "args"))
+ def LeftRadioButton(old)
+ Left(Builtins.toterm(:RadioButton, Builtins.argsof(old)))
+ end
+ module_function :LeftRadioButton
+
+ # NOTE that it does not expand the nested
+ # Greasemonkey term LeftRadioButton! {#transform} does that.
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:LeftRadioButtonWithAttachment, "foo", "bar", "contents")
+ # ->
+ # VBox(
+ # term(:LeftRadioButton, "foo", "bar"),
+ # HBox(HSpacing(4), "contents")
+ # )
+ def LeftRadioButtonWithAttachment(old)
+ args = Builtins.argsof(old)
+
+ tmp1 = Builtins.sublist(args, 0, Ops.subtract(Builtins.size(args), 1))
+ tmp2 = Ops.get(args, Ops.subtract(Builtins.size(args), 1))
+
+ if tmp2 == Empty() # rubocop:disable Style/GuardClause
+ return VBox(Builtins.toterm(:LeftRadioButton, tmp1))
+ else
+ return VBox(
+ Builtins.toterm(:LeftRadioButton, tmp1),
+ HBox(HSpacing(4), tmp2)
+ )
+ end
+ end
+ module_function :LeftRadioButtonWithAttachment
+
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:LeftCheckBox, Id(...), "args")
+ # ->
+ # Left(CheckBox(Id(...), "args"))
+ def LeftCheckBox(old)
+ Left(Builtins.toterm(:CheckBox, Builtins.argsof(old)))
+ end
+ module_function :LeftCheckBox
+
+ # NOTE that it does not expand the nested
+ # Greasemonkey term LeftCheckBox! {#transform} does that.
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:LeftCheckBoxWithAttachment, "foo", "bar", "contents")
+ # ->
+ # VBox(
+ # term(:LeftCheckBox, "foo", "bar"),
+ # HBox(HSpacing(4), "contents")
+ # )
+ def LeftCheckBoxWithAttachment(old)
+ args = Builtins.argsof(old)
+
+ tmp1 = Builtins.sublist(args, 0, Ops.subtract(Builtins.size(args), 1))
+ tmp2 = Ops.get(args, Ops.subtract(Builtins.size(args), 1))
+
+ if tmp2 == Empty() # rubocop:disable Style/GuardClause
+ return VBox(Builtins.toterm(:LeftCheckBox, tmp1))
+ else
+ return VBox(
+ Builtins.toterm(:LeftCheckBox, tmp1),
+ HBox(HSpacing(4), tmp2)
+ )
+ end
+ end
+ module_function :LeftCheckBoxWithAttachment
+
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ # @example
+ # term(:IconAndHeading, "title", "icon")
+ # ->
+ # Left(
+ # HBox(
+ # Image("/usr/share/YaST2/theme/current/icons/22x22/apps/icon", ""),
+ # Heading("title")
+ # )
+ # )
+ def IconAndHeading(old)
+ args = Builtins.argsof(old)
+
+ title = Ops.get_string(args, 0, "")
+ icon = Ops.add(
+ Ops.add(Yast::Directory.icondir, "22x22/apps/"),
+ Ops.get_string(args, 1, "")
+ )
+
+ Left(HBox(Image(icon, ""), Heading(title)))
+ end
+ module_function :IconAndHeading
+
+ # Recursively apply all Greasemonkey methods on *old*
+ # @param old [Yast::Term]
+ # @return [Yast::Term]
+ def Transform(old)
+ s = Builtins.symbolof(old)
+
+ handler = Greasemonkey.method(s) if @handlers.include?(s)
+ return Transform(handler.call(old)) if !handler.nil?
+
+ new = Builtins::List.reduce(Builtins.toterm(s), Builtins.argsof(old)) do |tmp, arg|
+ arg = Transform(Convert.to_term(arg)) if Ops.is_term?(arg)
+ Builtins.add(tmp, arg)
+ end
+ new
+ end
+ module_function :Transform
+
+ alias_method :transform, :Transform
+ module_function :transform
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/general/test/Makefile.am new/yast2-3.2.40/library/general/test/Makefile.am
--- old/yast2-3.2.39/library/general/test/Makefile.am 2017-06-22 16:34:32.506119103 +0200
+++ new/yast2-3.2.40/library/general/test/Makefile.am 2017-06-29 10:29:38.966757928 +0200
@@ -5,6 +5,7 @@
directory_test.rb \
event_dispatcher_test.rb \
finish_client_test.rb \
+ greasemonkey_test.rb \
hooks_test.rb \
linuxrc_test.rb \
os_release_test.rb \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/general/test/greasemonkey_test.rb new/yast2-3.2.40/library/general/test/greasemonkey_test.rb
--- old/yast2-3.2.39/library/general/test/greasemonkey_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/general/test/greasemonkey_test.rb 2017-06-29 10:29:38.966757928 +0200
@@ -0,0 +1,151 @@
+#! /usr/bin/env rspec
+require_relative "test_helper"
+require "ui/greasemonkey"
+
+describe "UI::Greasemonkey" do
+ RSpec.shared_examples "a Greasemonkey method" do |mname|
+ it "transforms its argument properly" do
+ expect(UI::Greasemonkey.public_send(mname, old)).to eq new
+ end
+ end
+
+ describe ".VStackFrames" do
+ let(:old) do
+ term(
+ :VStackFrames,
+ Frame("f1"),
+ Frame("f2"),
+ Frame("f3")
+ )
+ end
+ let(:new) do
+ VBox(
+ Frame("f1"),
+ VSpacing(0.45),
+ Frame("f2"),
+ VSpacing(0.45),
+ Frame("f3")
+ )
+ end
+ it_behaves_like "a Greasemonkey method", :VStackFrames
+ end
+
+ describe ".FrameWithMarginBox" do
+ let(:old) { term(:FrameWithMarginBox, "Title", "arg1", "arg2") }
+ let(:new) { Frame("Title", MarginBox(1.45, 0.45, "arg1", "arg2")) }
+ it_behaves_like "a Greasemonkey method", :FrameWithMarginBox
+ end
+
+ describe ".ComboBoxSelected" do
+ let(:old) do
+ term(
+ :ComboBoxSelected,
+ Id(:wish), Opt(:notify), "Wish",
+ [
+ Item(Id(:time), "Time"),
+ Item(Id(:love), "Love"),
+ Item(Id(:money), "Money")
+ ],
+ Id(:love)
+ )
+ end
+ let(:new) do
+ ComboBox(
+ Id(:wish), Opt(:notify), "Wish",
+ [
+ Item(Id(:time), "Time", false),
+ Item(Id(:love), "Love", true),
+ Item(Id(:money), "Money", false)
+ ]
+ )
+ end
+ it_behaves_like "a Greasemonkey method", :ComboBoxSelected
+ end
+
+ describe ".LeftRadioButton" do
+ let(:old) { term(:LeftRadioButton, "some", "args") }
+ let(:new) { Left(RadioButton("some", "args")) }
+ it_behaves_like "a Greasemonkey method", :LeftRadioButton
+ end
+
+ describe ".LeftRadioButtonWithAttachment" do
+ let(:old) { term(:LeftRadioButtonWithAttachment, "foo", "bar", "contents") }
+ let(:new) do
+ VBox(
+ # NOTE that it does not expand this Greasemonkey term!
+ term(:LeftRadioButton, "foo", "bar"),
+ HBox(HSpacing(4), "contents")
+ )
+ end
+ it_behaves_like "a Greasemonkey method", :LeftRadioButtonWithAttachment
+
+ it "discards the attachment when it is Empty()" do
+ old = term(:LeftRadioButtonWithAttachment, "foo", "bar", Empty())
+ new = VBox(term(:LeftRadioButton, "foo", "bar"))
+ expect(UI::Greasemonkey.LeftRadioButtonWithAttachment(old)).to eq new
+ end
+ end
+
+ describe ".LeftCheckBox" do
+ let(:old) { term(:LeftCheckBox, "some", "args") }
+ let(:new) { Left(CheckBox("some", "args")) }
+ it_behaves_like "a Greasemonkey method", :LeftCheckBox
+ end
+
+ describe ".LeftCheckBoxWithAttachment" do
+ let(:old) { term(:LeftCheckBoxWithAttachment, "foo", "bar", "contents") }
+ let(:new) do
+ VBox(
+ # NOTE that it does not expand this Greasemonkey term!
+ term(:LeftCheckBox, "foo", "bar"),
+ HBox(HSpacing(4), "contents")
+ )
+ end
+ it_behaves_like "a Greasemonkey method", :LeftCheckBoxWithAttachment
+
+ it "discards the attachment when it is Empty()" do
+ old = term(:LeftCheckBoxWithAttachment, "foo", "bar", Empty())
+ new = VBox(term(:LeftCheckBox, "foo", "bar"))
+ expect(UI::Greasemonkey.LeftCheckBoxWithAttachment(old)).to eq new
+ end
+ end
+
+ describe ".IconAndHeading" do
+ let(:old) { term(:IconAndHeading, "title", "icon") }
+ let(:new) do
+ Left(
+ HBox(
+ Image("/usr/share/YaST2/theme/current/icons/22x22/apps/icon", ""),
+ Heading("title")
+ )
+ )
+ end
+ it_behaves_like "a Greasemonkey method", :IconAndHeading
+ end
+
+ describe ".transform" do
+ it "transforms the term recursively" do
+ old = term(
+ :FrameWithMarginBox,
+ "Title",
+ VBox(
+ term(:LeftRadioButton, "arg1"),
+ VSpacing(3),
+ term(:LeftRadioButton, "arg2")
+ )
+ )
+ new = Frame(
+ "Title",
+ MarginBox(
+ 1.45, 0.45,
+ VBox(
+ Left(RadioButton("arg1")),
+ VSpacing(3),
+ Left(RadioButton("arg2"))
+ )
+ )
+ )
+ expect(UI::Greasemonkey.transform(old)).to eq new
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/runlevel/test/services_proposal_test.rb new/yast2-3.2.40/library/runlevel/test/services_proposal_test.rb
--- old/yast2-3.2.39/library/runlevel/test/services_proposal_test.rb 2017-06-22 16:34:32.550119103 +0200
+++ new/yast2-3.2.40/library/runlevel/test/services_proposal_test.rb 2017-06-29 10:29:39.458757928 +0200
@@ -1,9 +1,5 @@
#!/usr/bin/env rspec
-
-top_srcdir = File.expand_path("../../../..", __FILE__)
-inc_dirs = Dir.glob("#{top_srcdir}/library/*/src")
-ENV["Y2DIR"] = inc_dirs.join(":")
-
+require_relative "test_helper"
require "yast"
module Yast
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/Makefile.am new/yast2-3.2.40/library/sequencer/Makefile.am
--- old/yast2-3.2.39/library/sequencer/Makefile.am 2017-06-22 16:34:32.550119103 +0200
+++ new/yast2-3.2.40/library/sequencer/Makefile.am 2017-06-29 10:29:39.458757928 +0200
@@ -1,3 +1,3 @@
# Makefile.am for yast2/library/sequencer
-SUBDIRS = src testsuite
+SUBDIRS = src test testsuite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/src/Makefile.am new/yast2-3.2.40/library/sequencer/src/Makefile.am
--- old/yast2-3.2.39/library/sequencer/src/Makefile.am 2017-06-22 16:34:32.550119103 +0200
+++ new/yast2-3.2.40/library/sequencer/src/Makefile.am 2017-06-29 10:29:39.462757928 +0200
@@ -7,6 +7,10 @@
ynclude_DATA = \
include/wizard/sequencer.rb
-EXTRA_DIST = $(module_DATA) $(ynclude_DATA)
+ylibdir = @ylibdir@/ui
+ylib_DATA = \
+ lib/ui/sequence.rb
-include $(top_srcdir)/Makefile.am.common
\ No newline at end of file
+EXTRA_DIST = $(module_DATA) $(ynclude_DATA) $(ylib_DATA)
+
+include $(top_srcdir)/Makefile.am.common
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/src/lib/ui/sequence.rb new/yast2-3.2.40/library/sequencer/src/lib/ui/sequence.rb
--- old/yast2-3.2.39/library/sequencer/src/lib/ui/sequence.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/sequencer/src/lib/ui/sequence.rb 2017-06-29 10:29:39.462757928 +0200
@@ -0,0 +1,77 @@
+require "yast"
+Yast.import "Sequencer"
+
+module UI
+ # A {UI::Sequence} is an object-oriented interface for the good old
+ # {Yast::SequencerClass Yast::Sequencer}.
+ # In the simple case it runs a sequence of dialogs
+ # connected by Back and Next buttons.
+ class Sequence
+ include Yast::I18n
+
+ # A reserved name in the sequence hash to mark the graph entry point.
+ START = "ws_start".freeze
+
+ # A drop-in replacement for
+ # {Yast::SequencerClass#Run Yast::Sequencer.Run}
+ def self.run(aliases, sequence)
+ Yast::Sequencer.Run(aliases, sequence)
+ end
+
+ # A replacement for
+ # {Yast::SequencerClass#Run Yast::Sequencer.Run}
+ # but smarter:
+ # - auto :abort (see {#abortable})
+ # - *aliases* are assumed to be method names if unspecified
+ # (see {#from_methods})
+ def run(aliases: nil, sequence:)
+ aliases ||= from_methods(sequence)
+ self.class.run(aliases, abortable(sequence))
+ end
+
+ # Add !{abort: :abort} transitions if missing
+ # (an :abort from a dialog should :abort the whole sequence)
+ def abortable(sequence_hash)
+ sequence_hash.map do |name, destination|
+ if name == START
+ [name, destination]
+ else
+ [name, { abort: :abort }.merge(destination)]
+ end
+ end.to_h
+ end
+
+ # Make `aliases` from `sequence_hash` assuming there is a method
+ # for each alias.
+ # @return [Hash{String => Proc}] aliases
+ def from_methods(sequence_hash)
+ sequence_hash.keys.map do |name|
+ next nil if name == START
+ if self.class.skip_stack?(name)
+ [name, [method(name), true]]
+ else
+ [name, method(name)]
+ end
+ end.compact.to_h
+ end
+
+ class << self
+ # Declare that a method is skipped when going :back,
+ # useful for noninteractive steps.
+ # (also see Yast::SequencerClass#WS_special)
+ # @param name [Symbol,String] method name
+ def skip_stack(name)
+ @skip_stack ||= {}
+ @skip_stack[name.to_sym] = true
+ end
+
+ # @param name [Symbol,String] method name
+ # @return [Boolean]
+ # @api private
+ def skip_stack?(name)
+ @skip_stack ||= {}
+ @skip_stack[name.to_sym]
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/test/Makefile.am new/yast2-3.2.40/library/sequencer/test/Makefile.am
--- old/yast2-3.2.39/library/sequencer/test/Makefile.am 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/sequencer/test/Makefile.am 2017-06-29 10:29:39.462757928 +0200
@@ -0,0 +1,7 @@
+TESTS = \
+ sequence_test.rb
+
+TEST_EXTENSIONS = .rb
+RB_LOG_COMPILER = rspec
+VERBOSE = 1
+EXTRA_DIST = $(TESTS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/test/sequence_test.rb new/yast2-3.2.40/library/sequencer/test/sequence_test.rb
--- old/yast2-3.2.39/library/sequencer/test/sequence_test.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/sequencer/test/sequence_test.rb 2017-06-29 10:29:39.462757928 +0200
@@ -0,0 +1,99 @@
+require_relative "test_helper"
+require "ui/sequence"
+
+describe UI::Sequence do
+ describe "#abortable" do
+ it "adds aborting edges where missing" do
+ old = {
+ "ws_start" => "read",
+ "read" => { next: "process" },
+ "process" => { next: "write" },
+ "write" => { next: :next }
+ }
+ new = {
+ "ws_start" => "read",
+ "read" => { abort: :abort, next: "process" },
+ "process" => { abort: :abort, next: "write" },
+ "write" => { abort: :abort, next: :next }
+ }
+
+ expect(subject.abortable(old)).to eq(new)
+ end
+
+ it "keeps existing aborting edges" do
+ old = {
+ "ws_start" => "read",
+ "process" => { abort: :back, next: "write" },
+ "write" => { next: :next }
+ }
+ new = {
+ "ws_start" => "read",
+ "process" => { abort: :back, next: "write" },
+ "write" => { abort: :abort, next: :next }
+ }
+
+ expect(subject.abortable(old)).to eq(new)
+ end
+ end
+
+ describe "#from_methods" do
+ class TestSequence < UI::Sequence
+ def skipped
+ end
+ skip_stack :skipped
+
+ def first
+ end
+
+ def second
+ end
+ end
+ subject { TestSequence.new }
+
+ it "defines the aliases from instance methods" do
+ seq = {
+ "ws_start" => "skipped",
+ "skipped" => { next: "first" },
+ "first" => { next: "second" },
+ "second" => { next: :next }
+ }
+ wanted = {
+ "skipped" => [subject.method(:skipped), true],
+ "first" => subject.method(:first),
+ "second" => subject.method(:second)
+ }
+
+ expect(subject.from_methods(seq)).to eq(wanted)
+ end
+
+ it "does not confuse skip_stack across classes" do
+ class TestSequenceA < UI::Sequence
+ def doit
+ end
+ skip_stack :doit
+ end
+
+ class TestSequenceB < UI::Sequence
+ def doit
+ end
+ end
+
+ seq = {
+ "ws_start" => "doit",
+ "doit" => { next: :next }
+ }
+
+ a = TestSequenceA.new
+ b = TestSequenceB.new
+ wanted_a = {
+ "doit" => [a.method(:doit), true]
+ }
+ wanted_b = {
+ "doit" => b.method(:doit)
+ }
+
+ expect(a.from_methods(seq)).to eq(wanted_a)
+ expect(b.from_methods(seq)).to eq(wanted_b)
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/library/sequencer/test/test_helper.rb new/yast2-3.2.40/library/sequencer/test/test_helper.rb
--- old/yast2-3.2.39/library/sequencer/test/test_helper.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-3.2.40/library/sequencer/test/test_helper.rb 2017-06-29 10:29:39.462757928 +0200
@@ -0,0 +1 @@
+require_relative "../../../test/test_helper.rb"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/package/yast2.changes new/yast2-3.2.40/package/yast2.changes
--- old/yast2-3.2.39/package/yast2.changes 2017-06-22 16:34:32.606119103 +0200
+++ new/yast2-3.2.40/package/yast2.changes 2017-06-29 10:29:39.958757928 +0200
@@ -1,4 +1,14 @@
-------------------------------------------------------------------
+Fri Jun 23 07:26:03 UTC 2017 - mvidner(a)suse.com
+
+- Support for the new Expert Partitioner (boo#1039901):
+- Added UI::Sequence, UI::Greasemonkey
+- Added CWM::Dialog
+- RSpec.shared_examples for CWM: Page, PushButton, RadioButtons,
+ RichText.
+- 3.2.40
+
+-------------------------------------------------------------------
Thu Jun 22 11:27:46 UTC 2017 - jreidinger(a)suse.com
- Add hint for UI about application name and its icon (bsc#1037891)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-3.2.39/package/yast2.spec new/yast2-3.2.40/package/yast2.spec
--- old/yast2-3.2.39/package/yast2.spec 2017-06-22 16:34:32.606119103 +0200
+++ new/yast2-3.2.40/package/yast2.spec 2017-06-29 10:29:39.958757928 +0200
@@ -17,7 +17,7 @@
Name: yast2
-Version: 3.2.39
+Version: 3.2.40
Release: 0
Summary: YaST2 - Main Package
License: GPL-2.0
1
0
Hello community,
here is the log from the commit of package yast2-trans for openSUSE:Factory checked in at 2017-07-02 13:32:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-trans (Old)
and /work/SRC/openSUSE:Factory/.yast2-trans.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-trans"
Sun Jul 2 13:32:28 2017 rev:132 rq:506461 version:84.87.20170627.4e7fec5c
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-trans/yast2-trans.changes 2017-06-20 09:32:44.640800373 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-trans.new/yast2-trans.changes 2017-07-02 13:32:32.354771425 +0200
@@ -1,0 +2,30 @@
+Tue Jun 27 11:48:58 UTC 2017 - git(a)opensuse.org
+
+- Update to version 84.87.20170627.4e7fec5c:
+ * New POT for text domain 'country'.
+ * New POT for text domain 'kdump'.
+ * New POT for text domain 'pkg-bindings'.
+ * New POT for text domain 'qt-pkg'.
+ * New POT for text domain 'registration'.
+ * New POT for text domain 'storage'.
+ * Translated using Weblate (Catalan)
+ * Translated using Weblate (Chinese (Taiwan))
+ * Translated using Weblate (Danish)
+ * Translated using Weblate (Dutch)
+ * Translated using Weblate (German)
+ * Translated using Weblate (Italian)
+ * Translated using Weblate (Japanese)
+ * Translated using Weblate (Lithuanian)
+ * Translated using Weblate (Portuguese (Brazil))
+ * Translated using Weblate (Slovak)
+ * Translated using Weblate (Spanish)
+ * Translated using Weblate (Ukrainian)
+
+-------------------------------------------------------------------
+Tue Jun 27 11:40:57 UTC 2017 - lnussel(a)suse.de
+
+- fix translation generator script to fail if po files have failing
+ checks rather than silently continuing without translations
+ (boo#1044028)
+
+-------------------------------------------------------------------
Old:
----
yast2-trans-84.87.20170618.0f9396fd.tar.xz
New:
----
yast2-trans-84.87.20170627.4e7fec5c.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-trans.spec ++++++
--- /var/tmp/diff_new_pack.8ciFPK/_old 2017-07-02 13:32:33.470614082 +0200
+++ /var/tmp/diff_new_pack.8ciFPK/_new 2017-07-02 13:32:33.474613518 +0200
@@ -17,7 +17,7 @@
Name: yast2-trans
-Version: 84.87.20170618.0f9396fd
+Version: 84.87.20170627.4e7fec5c
Release: 0
Summary: YaST2 - Translation Container Package
License: GPL-2.0+
@@ -699,14 +699,20 @@
mkdir -p $pack_dir
cp %{S:1} $pack_dir/COPYING
# touch %%{buildroot}/usr/share/doc/packages/yast2-trans-$l/status.txt
- {
- for t in $(find * -maxdepth 1 -type d); do
- [ -r $t/$l.po ] || continue
- msgfmt --statistics -o $target_dir/$t.mo $t/$l.po 2>&1
- done
- } | bash %{S:2} | head -n 6 \
+ for po in */$l.po; do
+ domain="${po%%/*}"
+ if ! msgfmt --statistics -o $target_dir/$domain.mo $po > out 2>&1; then
+ cat out >> failed
+ fi
+ done | tee $l.txt
+ bash %{S:2} < $l.txt | head -n 6 \
> %{buildroot}/usr/share/doc/packages/yast2-trans-$l/status.txt
done
+if [ -s "failed" ]; then
+ echo "## PO FILES WITH FAILED CHECKS ###"
+ cat failed
+ exit 1
+fi
popd
%clean
++++++ _service ++++++
--- /var/tmp/diff_new_pack.8ciFPK/_old 2017-07-02 13:32:33.522606751 +0200
+++ /var/tmp/diff_new_pack.8ciFPK/_new 2017-07-02 13:32:33.522606751 +0200
@@ -1,5 +1,5 @@
<services>
- <service name="tar_scm" mode="localonly">
+ <service name="tar_scm" mode="disabled">
<param name="filename">yast2-trans</param>
<param name="versionformat">%cd.%h</param>
<!-- it's tumbleweed -->
@@ -9,9 +9,9 @@
<param name="changesgenerate">enable</param>
<param name="changesauthor">git(a)opensuse.org</param>
</service>
- <service name="recompress" mode="localonly">
+ <service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
- <service name="set_version" mode="localonly"/>
+ <service name="set_version" mode="disabled"/>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.8ciFPK/_old 2017-07-02 13:32:33.542603931 +0200
+++ /var/tmp/diff_new_pack.8ciFPK/_new 2017-07-02 13:32:33.542603931 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/yast/yast-translations.git</param>
- <param name="changesrevision">0f9396fdf1e97630b69d15e280b7d20ae4607994</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">4e7fec5c23defd94f23b6c0a32223ad174cf77ae</param></service></servicedata>
\ No newline at end of file
++++++ yast2-trans-84.87.20170618.0f9396fd.tar.xz -> yast2-trans-84.87.20170627.4e7fec5c.tar.xz ++++++
/work/SRC/openSUSE:Factory/yast2-trans/yast2-trans-84.87.20170618.0f9396fd.tar.xz /work/SRC/openSUSE:Factory/.yast2-trans.new/yast2-trans-84.87.20170627.4e7fec5c.tar.xz differ: char 26, line 1
1
0
Hello community,
here is the log from the commit of package yast2-storage for openSUSE:Factory checked in at 2017-07-02 13:32:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage (Old)
and /work/SRC/openSUSE:Factory/.yast2-storage.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-storage"
Sun Jul 2 13:32:23 2017 rev:295 rq:506286 version:3.2.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage/yast2-storage.changes 2017-06-20 09:32:31.066715355 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-storage.new/yast2-storage.changes 2017-07-02 13:32:24.823833350 +0200
@@ -1,0 +2,6 @@
+Mon Jun 26 11:13:00 CEST 2017 - shundhammer(a)suse.de
+
+- Allow different mount point for home partition (Fate#323532)
+- 3.2.17
+
+-------------------------------------------------------------------
Old:
----
yast2-storage-3.2.16.tar.bz2
New:
----
yast2-storage-3.2.17.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-storage.spec ++++++
--- /var/tmp/diff_new_pack.J33g8o/_old 2017-07-02 13:32:25.387753833 +0200
+++ /var/tmp/diff_new_pack.J33g8o/_new 2017-07-02 13:32:25.391753269 +0200
@@ -17,7 +17,7 @@
Name: yast2-storage
-Version: 3.2.16
+Version: 3.2.17
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-storage-3.2.16.tar.bz2 -> yast2-storage-3.2.17.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-storage-3.2.16/package/yast2-storage.changes new/yast2-storage-3.2.17/package/yast2-storage.changes
--- old/yast2-storage-3.2.16/package/yast2-storage.changes 2017-06-16 14:01:45.973518659 +0200
+++ new/yast2-storage-3.2.17/package/yast2-storage.changes 2017-06-26 17:12:35.446338830 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Mon Jun 26 11:13:00 CEST 2017 - shundhammer(a)suse.de
+
+- Allow different mount point for home partition (Fate#323532)
+- 3.2.17
+
+-------------------------------------------------------------------
Fri Jun 16 08:07:04 UTC 2017 - igonzalezsosa(a)suse.com
- Fix Btrfs default subvolume name detection (bsc#1044434 and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-storage-3.2.16/package/yast2-storage.spec new/yast2-storage-3.2.17/package/yast2-storage.spec
--- old/yast2-storage-3.2.16/package/yast2-storage.spec 2017-06-16 14:01:45.973518659 +0200
+++ new/yast2-storage-3.2.17/package/yast2-storage.spec 2017-06-26 17:12:35.446338830 +0200
@@ -17,7 +17,7 @@
Name: yast2-storage
-Version: 3.2.16
+Version: 3.2.17
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-storage-3.2.16/src/modules/StorageProposal.rb new/yast2-storage-3.2.17/src/modules/StorageProposal.rb
--- old/yast2-storage-3.2.16/src/modules/StorageProposal.rb 2017-06-16 14:01:45.993518659 +0200
+++ new/yast2-storage-3.2.17/src/modules/StorageProposal.rb 2017-06-26 17:12:35.466338830 +0200
@@ -42,6 +42,15 @@
include Yast::Logger
include Yast::StorageHelpers::TargetMapFormatter
+ # Internal name of the home partition or volume.
+ # This does not change, even if the mount point for this is really "/data"
+ # or anything else.
+ #
+ # The mount point for this (which might be "/home" or "/data") is
+ # GetHomePath() / SetHomePath().
+ HOME_VOL_NAME = "home"
+ DEFAULT_HOME_PATH = "/home"
+
def main
textdomain "storage"
@@ -76,6 +85,10 @@
@proposal_settings_editable = true
@expert_partitioner_warning = false
+ # Path of the home partition or volume.
+ # This might become "data" in certain setups (CaaSP).
+ @home_path = DEFAULT_HOME_PATH
+
@cfg_xml = {}
@swapable = {}
@@ -108,6 +121,19 @@
end
+ def SetHomePath(val)
+ @home_path = val
+ end
+
+ def GetHomePath
+ @home_path
+ end
+
+ def GetStrippedHomePath
+ @home_path.gsub(/^\//, "")
+ end
+
+
def GetProposalLvm
@proposal_lvm
end
@@ -293,6 +319,15 @@
Ops.set(@cfg_xml, "home_max", 25 * 1024)
end
+ @home_path = ProductFeatures.GetStringFeature("partitioning", "home_path")
+ @home_path ||= DEFAULT_HOME_PATH
+ if !(a)home_path.start_with?("/")
+ log.error("home_path in control.xml does not start with /")
+ log.error("falling back to @{DEFAULT_HOME_PATH}")
+ @home_path = DEFAULT_HOME_PATH
+ end
+ log.info("home_path: #{@home_path}") unless @home_path == DEFAULT_HOME_PATH
+
btmp = ProductFeatures.GetBooleanFeature("partitioning", "proposal_lvm")
Ops.set(@cfg_xml, "prop_lvm", btmp ? true : false)
@@ -2544,7 +2579,7 @@
"/boot/zipl" => 0,
"swap" => 1,
"/" => 5,
- "/home" => 6
+ GetHomePath() => 6
}
Builtins.foreach(Ops.get_list(g, "gap", [])) do |e|
if !Ops.get_boolean(e, "exists", false) &&
@@ -3814,7 +3849,7 @@
if !Ops.get_boolean(p, "delete", false) &&
Ops.get_string(p, "device", "") ==
Ops.get_string(pl, [0, "device"], "")
- p = Storage.SetVolOptions(p, "/home", PropDefaultHomeFs(), "", "", "")
+ p = Storage.SetVolOptions(p, GetHomePath(), PropDefaultHomeFs(), "", "", "")
end
deep_copy(p)
end
@@ -3970,7 +4005,7 @@
if GetProposalHome() &&
Ops.less_than(Ops.get_integer(opts, "home_limit", 0), avail_size)
home = {
- "mount" => "/home",
+ "mount" => GetHomePath(),
"increasable" => true,
"fsys" => PropDefaultHomeFs(),
"size" => 512 * 1024 * 1024,
@@ -4019,7 +4054,7 @@
conf,
"partitions",
Builtins.filter(Ops.get_list(conf, "partitions", [])) do |p|
- Ops.get_string(p, "mount", "") != "/home" &&
+ Ops.get_string(p, "mount", "") != GetHomePath() &&
Ops.get_string(p, "mount", "") != "/"
end
)
@@ -4476,7 +4511,7 @@
end
# check whether we have a home partition
- if volume["mount"] == "/home"
+ if volume["mount"] == StorageProposal.GetHomePath()
@have_home_partition = true
end
@@ -4507,9 +4542,9 @@
if StorageProposal.PropDefaultFs() == :btrfs && @have_home_partition
if volume["mount"] == "/"
if FileSystems.default_subvol.empty?
- home = "home"
+ home = StorageProposal.GetStrippedHomePath()
else
- home = FileSystems.default_subvol + "/" + "home"
+ home = FileSystems.default_subvol + "/" + StorageProposal.GetStrippedHomePath()
end
volume["subvol"].delete_if { |subvol| subvol["name"] == home }
end
@@ -4665,7 +4700,7 @@
[s, "partitions"],
remove_p_settings(
Ops.get_list(target, [s, "partitions"], []),
- ["/", "/home"]
+ ["/", GetHomePath()]
)
)
end
@@ -4866,7 +4901,7 @@
avail_size
)
home = {
- "mount" => "/home",
+ "mount" => GetHomePath(),
"increasable" => true,
"fsys" => PropDefaultHomeFs(),
"size" => 512 * 1024 * 1024,
@@ -4922,7 +4957,7 @@
conf,
"partitions",
Builtins.filter(Ops.get_list(conf, "partitions", [])) do |p2|
- Ops.get_string(p2, "mount", "") != "/home" &&
+ Ops.get_string(p2, "mount", "") != GetHomePath() &&
Ops.get_string(p2, "mount", "") != "/"
end
)
@@ -4993,7 +5028,7 @@
if Ops.get_boolean(ps1, "ok", false)
mb = [get_mb_sol(ps1, "/")]
if GetProposalHome()
- home_mb = get_mb_sol(ps1, "/home")
+ home_mb = get_mb_sol(ps1, GetHomePath())
mb = Builtins.add(mb, home_mb)
# penalty for not having separate /home
if home_mb == 0
@@ -5370,7 +5405,7 @@
Ops.get_string(p, "name", "") == "root"
end
home = Builtins.find(Ops.get_list(ret, "partitions", [])) do |p|
- Ops.get_string(p, "name", "") == "home"
+ Ops.get_string(p, "name", "") == HOME_VOL_NAME
end
Builtins.y2milestone(
"modify_vm swap %1 root %2 home %3",
@@ -5408,7 +5443,7 @@
)
end
)
- keep = ["root", "home", "swap"]
+ keep = ["root", HOME_VOL_NAME, "swap"]
root_pe = sizek_to_pe(
Ops.multiply(Ops.get_integer(opts, "root_base", 0), 1024),
pe,
@@ -5643,11 +5678,11 @@
if home == nil && Ops.greater_than(home_pe, 0)
p = {
"create" => true,
- "name" => "home",
- "device" => Ops.add(Ops.get_string(ret, "device", ""), "/home"),
+ "name" => HOME_VOL_NAME,
+ "device" => Ops.add(Ops.get_string(ret, "device", ""), GetHomePath()),
"size_k" => pe_to_sizek(home_pe, pe)
}
- p = Storage.SetVolOptions(p, "/home", PropDefaultHomeFs(), "", "", "")
+ p = Storage.SetVolOptions(p, GetHomePath(), PropDefaultHomeFs(), "", "", "")
Builtins.y2milestone("modify_vm created %1", p)
Ops.set(
ret,
@@ -5659,8 +5694,8 @@
ret,
"partitions",
Builtins.maplist(Ops.get_list(ret, "partitions", [])) do |p|
- if Ops.get_string(p, "name", "") == "home"
- p = Storage.SetVolOptions(p, "/home", PropDefaultHomeFs(), "", "", "")
+ if Ops.get_string(p, "name", "") == HOME_VOL_NAME
+ p = Storage.SetVolOptions(p, GetHomePath(), PropDefaultHomeFs(), "", "", "")
Builtins.y2milestone("modify_vm reuse %1", p)
end
deep_copy(p)
@@ -6602,7 +6637,7 @@
)
end
ret = Builtins.size(Builtins.filter(ls) do |p|
- Ops.get_string(p, "mount", "") == "/home"
+ Ops.get_string(p, "mount", "") == GetHomePath()
end) == 0
Builtins.y2milestone("CouldNotDoSeparateHome ls: %1", ls)
end
1
0
Hello community,
here is the log from the commit of package yast2-installation for openSUSE:Factory checked in at 2017-07-02 13:32:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
and /work/SRC/openSUSE:Factory/.yast2-installation.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-installation"
Sun Jul 2 13:32:15 2017 rev:388 rq:506285 version:3.2.46
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes 2017-06-20 09:32:47.448404287 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes 2017-07-02 13:32:19.160631907 +0200
@@ -1,0 +2,6 @@
+Mon Jun 26 11:11:19 CEST 2017 - shundhammer(a)suse.de
+
+- Allow different mount point for home partition (Fate#323532)
+- 3.2.46
+
+-------------------------------------------------------------------
Old:
----
yast2-installation-3.2.45.tar.bz2
New:
----
yast2-installation-3.2.46.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.mEStv2/_old 2017-07-02 13:32:19.840536036 +0200
+++ /var/tmp/diff_new_pack.mEStv2/_new 2017-07-02 13:32:19.840536036 +0200
@@ -17,7 +17,7 @@
Name: yast2-installation
-Version: 3.2.45
+Version: 3.2.46
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-installation-3.2.45.tar.bz2 -> yast2-installation-3.2.46.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.2.45/doc/control-file.md new/yast2-installation-3.2.46/doc/control-file.md
--- old/yast2-installation-3.2.45/doc/control-file.md 2017-06-19 12:25:42.438704245 +0200
+++ new/yast2-installation-3.2.46/doc/control-file.md 2017-06-26 17:11:22.294338830 +0200
@@ -1021,6 +1021,30 @@
filesystems. If another root filesystem type is chosen, this might fail
silently.
+*home_path* (string) is the path (mount point) for the home
+partition or volume, if any is created (depending on *try_separate_home*,
+*limit_try_home* and available disk space).
+
+By default, this is "/home". This can be set to another value like "/data", in
+which case the same partitioning proposal logic (including the other _home_
+parameters in this control.xml file) will be used as for "/home", just for
+"/data" as the mount point, and "/home" will be on the root filesystem again
+(with its own subvolume if Btrfs is used). Notice that you cannot have both a
+separate "/home" and a separate "/data" with this mechanism.
+
+**NOTICE:**
+
+_This "home_path" parameter is a hack, introduced to make a feature possible
+against all odds at the very latest stages of CaaSP 1.0 development without
+breaking the entire storage proposal logic._
+
+It is strongly advised not to use this in general. This documentation only
+exists for the sake of completeness, not as an encouragement to use this
+parameter.
+
+Please contact the YaST team if you feel you need this.
+
+
#### Subvolumes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.2.45/package/yast2-installation.changes new/yast2-installation-3.2.46/package/yast2-installation.changes
--- old/yast2-installation-3.2.45/package/yast2-installation.changes 2017-06-19 12:25:42.606704245 +0200
+++ new/yast2-installation-3.2.46/package/yast2-installation.changes 2017-06-26 17:11:22.374338830 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Mon Jun 26 11:11:19 CEST 2017 - shundhammer(a)suse.de
+
+- Allow different mount point for home partition (Fate#323532)
+- 3.2.46
+
+-------------------------------------------------------------------
Mon Jun 19 07:03:16 UTC 2017 - lslezak(a)suse.cz
- install the yast2-registration package only in SLE (bsc#1043122)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-installation-3.2.45/package/yast2-installation.spec new/yast2-installation-3.2.46/package/yast2-installation.spec
--- old/yast2-installation-3.2.45/package/yast2-installation.spec 2017-06-19 12:25:42.606704245 +0200
+++ new/yast2-installation-3.2.46/package/yast2-installation.spec 2017-06-26 17:11:22.374338830 +0200
@@ -17,7 +17,7 @@
Name: yast2-installation
-Version: 3.2.45
+Version: 3.2.46
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
1
0
Hello community,
here is the log from the commit of package exim for openSUSE:Factory checked in at 2017-07-01 14:06:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/exim (Old)
and /work/SRC/openSUSE:Factory/.exim.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "exim"
Sat Jul 1 14:06:08 2017 rev:42 rq:507377 version:4.86.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/exim/exim.changes 2016-10-04 16:00:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.exim.new/exim.changes 2017-07-01 14:06:34.195441613 +0200
@@ -1,0 +2,28 @@
+Mon Jun 19 16:27:45 UTC 2017 - meissner(a)suse.com
+
+- exim-CVE-2017-1000369.patch: Fixed memory leaks that could be
+ exploited to "stack crash" local privilege escalation (bsc#1044692)
+
+- Require user(mail) group(mail) to meet new users handling in TW.
+
+- Prerequire permissions (fixes rpmlint).
+
+-------------------------------------------------------------------
+Mon Apr 24 07:45:00 UTC 2017 - wullinger(a)rz.uni-kiel.de
+
+- conditionally disable DANE on SuSE versions with OpenSSL < 1.0
+
+- exim-4.86.2+fixes-867e8fe25dbfb1e31493488ad695bde55b890397.patch:
+ import exim-4_86_2+fixes branch
+ + fix CVE-2016-1531
+ when installed setuid root, allows local users to gain privileges via the perl_startup
+ argument.
+ + fix Bug 1805: store the initial working directory, expand $initial_cwd
+ + fix Bug 1671: segfault after delivery (https://bugs.exim.org/show_bug.cgi?id=1671)
+ + Don't issue env warning if env is empty
+
+- fix-CVE-2016-9963-31c02defdc5118834e801d4fe8f11c1d9b5ebadf.patch:
+ DKIM information leakage
+
+
+-------------------------------------------------------------------
New:
----
exim-4.86.2+fixes-867e8fe25dbfb1e31493488ad695bde55b890397.patch
exim-CVE-2017-1000369.patch
fix-CVE-2016-9963-31c02defdc5118834e801d4fe8f11c1d9b5ebadf.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ exim.spec ++++++
--- /var/tmp/diff_new_pack.VVFUrR/_old 2017-07-01 14:06:34.815354379 +0200
+++ /var/tmp/diff_new_pack.VVFUrR/_new 2017-07-01 14:06:34.815354379 +0200
@@ -1,7 +1,7 @@
#
# spec file for package exim
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,6 +20,14 @@
%bcond_without pgsql
%bcond_without sqlite
%bcond_without ldap
+%if 0%{?suse_version} < 1199 || 0%{?centos_version} < 599 || 0%{?rhel_version} < 599
+%bcond_with dane
+%else
+%bcond_without dane
+%endif
+# disable for now,
+# since utf8_downconvert currently crashes
+%bcond_without i18n
Name: exim
BuildRequires: cyrus-sasl-devel
@@ -53,8 +61,13 @@
%else
Requires(pre): %insserv_prereq
%endif
-Requires(pre): %fillup_prereq
-Requires(pre): /usr/sbin/useradd
+Requires(pre): %fillup_prereq permissions
+%if 0%{?suse_version} >= 1330
+BuildRequires: group(mail)
+BuildRequires: user(mail)
+Requires(pre): user(mail)
+Requires(pre): group(mail)
+%endif
Requires(pre): fileutils textutils
%endif
Version: 4.86.2
@@ -72,8 +85,8 @@
License: GPL-2.0+
Group: Productivity/Networking/Email/Servers
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: http://ftp.exim.org/pub/exim/exim4/exim-%{version}.tar.bz2
-Source3: http://ftp.exim.org/pub/exim/exim4/exim-%{version}.tar.bz2.asc
+Source: http://ftp.exim.org/pub/exim/exim4/old/exim-%{version}.tar.bz2
+Source3: http://ftp.exim.org/pub/exim/exim4/old/exim-%{version}.tar.bz2.asc
# http://ftp.exim.org/pub/exim/Exim-Maintainers-Keyring.asc
Source4: exim.keyring
Source1: sysconfig.exim
@@ -86,7 +99,10 @@
Source31: eximstats.conf
Source32: eximstats.conf-2.2
Source40: exim.service
-Patch: exim-tail.patch
+Patch0: exim-tail.patch
+Patch1: exim-4.86.2+fixes-867e8fe25dbfb1e31493488ad695bde55b890397.patch
+Patch2: fix-CVE-2016-9963-31c02defdc5118834e801d4fe8f11c1d9b5ebadf.patch
+Patch3: exim-CVE-2017-1000369.patch
%package -n eximon
Summary: Eximon, an graphical frontend to administer Exim's mail queue
@@ -128,7 +144,10 @@
%prep
%setup -q -n exim-%{version}
-%patch
+%patch0
+%patch1 -p 1
+%patch2 -p 1
+%patch3 -p 1
# build with fPIE/pie on SUSE 10.0 or newer, or on any other platform
%if %{?suse_version:%suse_version}%{?!suse_version:99999} > 930
fPIE="-fPIE"
@@ -264,9 +283,13 @@
EXPERIMENTAL_PROXY=yes
EXPERIMENTAL_CERTNAMES=yes
EXPERIMENTAL_DSN=yes
+%if %{with dane}
EXPERIMENTAL_DANE=yes
+%endif
EXPERIMENTAL_SOCKS=yes
+%if %{with i18n}
EXPERIMENTAL_INTERNATIONAL=yes
+%endif
LDFLAGS += -lidn
CFLAGS=$RPM_OPT_FLAGS -Wall $CFLAGS_OPT_WERROR -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLDAP_DEPRECATED $fPIE
EXTRALIBS=-ldl -lpam -L/usr/X11R6/%{_lib} $pie
@@ -465,7 +488,7 @@
%attr(0750,root,www) /srv/www/eximstats
%dir /etc/apache2
%dir /etc/apache2/conf.d
-/etc/apache2/conf.d/eximstats.conf
+%config /etc/apache2/conf.d/eximstats.conf
%{_sbindir}/eximstats-html-update.py
%changelog
++++++ exim-4.86.2+fixes-867e8fe25dbfb1e31493488ad695bde55b890397.patch ++++++
++++ 1425 lines (skipped)
++++++ exim-CVE-2017-1000369.patch ++++++
commit 65e061b76867a9ea7aeeb535341b790b90ae6c21
Author: Heiko Schlittermann (HS12-RIPE) <hs(a)schlittermann.de>
Date: Wed May 31 23:08:56 2017 +0200
Cleanup (prevent repeated use of -p/-oMr to avoid mem leak)
diff --git a/src/exim.c b/src/src/exim.c
index 67583e58..88e11977 100644
--- a/src/exim.c
+++ b/src/exim.c
@@ -3106,7 +3106,14 @@ for (i = 1; i < argc; i++)
/* -oMr: Received protocol */
- else if (Ustrcmp(argrest, "Mr") == 0) received_protocol = argv[++i];
+ else if (Ustrcmp(argrest, "Mr") == 0)
+
+ if (received_protocol)
+ {
+ fprintf(stderr, "received_protocol is set already\n");
+ exit(EXIT_FAILURE);
+ }
+ else received_protocol = argv[++i];
/* -oMs: Set sender host name */
@@ -3202,7 +3209,15 @@ for (i = 1; i < argc; i++)
if (*argrest != 0)
{
- uschar *hn = Ustrchr(argrest, ':');
+ uschar *hn;
+
+ if (received_protocol)
+ {
+ fprintf(stderr, "received_protocol is set already\n");
+ exit(EXIT_FAILURE);
+ }
+
+ hn = Ustrchr(argrest, ':');
if (hn == NULL)
{
received_protocol = argrest;
++++++ fix-CVE-2016-9963-31c02defdc5118834e801d4fe8f11c1d9b5ebadf.patch ++++++
>From 31c02defdc5118834e801d4fe8f11c1d9b5ebadf Mon Sep 17 00:00:00 2001
From: Jeremy Harris <jgh(a)wizmail.org>
Date: Fri, 16 Dec 2016 20:36:39 +0000
Subject: [PATCH 1/3] Fix DKIM information leakage
Cherry picked from exim-4_87 .. exim-4_87_1
---
doc/doc-txt/ChangeLog | 7 +++
doc/doc-txt/cve-2016-9663 | 86 +++++++++++++++++++++++++++++++++
src/src/dkim.c | 1 +
src/src/transports/smtp.c | 4 +-
test/confs/4510 | 71 +++++++++++++++++++++++++++
test/log/4510 | 20 ++++++++
test/mail/4510.store | 58 ++++++++++++++++++++++
test/runtest | 8 +++
test/scripts/4510-DKIM-Bounces/4510 | 15 ++++++
test/scripts/4510-DKIM-Bounces/REQUIRES | 2 +
10 files changed, 271 insertions(+), 1 deletion(-)
create mode 100644 doc/doc-txt/cve-2016-9663
create mode 100644 test/confs/4510
create mode 100644 test/log/4510
create mode 100644 test/mail/4510.store
create mode 100644 test/scripts/4510-DKIM-Bounces/4510
create mode 100644 test/scripts/4510-DKIM-Bounces/REQUIRES
diff --git a/src/dkim.c b/src/dkim.c
index 3e71545..8e93566 100644
--- a/src/dkim.c
+++ b/src/dkim.c
@@ -519,6 +519,7 @@ dkim_exim_sign(int dkim_fd, uschar *dkim_private_key,
(char *)dkim_signing_selector,
(char *)dkim_private_key_expanded
);
+ dkim_private_key_expanded[0] = '\0';
pdkim_set_debug_stream(ctx,debug_file);
diff --git a/src/transports/smtp.c b/src/transports/smtp.c
index a952413..cc8f025 100644
--- a/src/transports/smtp.c
+++ b/src/transports/smtp.c
@@ -293,6 +293,7 @@ static uschar *rf_names[] = { US"NEVER", US"SUCCESS", US"FAILURE", US"DELAY" };
static uschar *smtp_command; /* Points to last cmd for error messages */
static uschar *mail_command; /* Points to MAIL cmd for error messages */
static BOOL update_waiting; /* TRUE to update the "wait" database */
+static uschar *data_command = US""; /* Points to DATA cmd for error messages */
/*************************************************
@@ -2244,6 +2245,7 @@ if (ok || (smtp_use_pipelining && !mua_wrapper))
case -1: goto END_OFF; /* Timeout on RCPT */
default: goto RESPONSE_FAILED; /* I/O error, or any MAIL/DATA error */
}
+ data_command = string_copy(big_buffer); /* Save for later error message */
}
/* Save the first address of the next batch. */
@@ -2418,7 +2420,7 @@ if (!ok) ok = TRUE; else
#else
"LMTP error after %s: %s",
#endif
- big_buffer, string_printing(buffer));
+ data_command, string_printing(buffer));
setflag(addr, af_pass_message); /* Allow message to go to user */
if (buffer[0] == '5')
addr->transport_return = FAIL;
1
0