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
January 2018
- 1 participants
- 2007 discussions
Hello community,
here is the log from the commit of package museic for openSUSE:Factory checked in at 2018-01-31 19:54:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/museic (Old)
and /work/SRC/openSUSE:Factory/.museic.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "museic"
Wed Jan 31 19:54:06 2018 rev:2 rq:571346 version:1.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/museic/museic.changes 2018-01-10 23:32:09.600492480 +0100
+++ /work/SRC/openSUSE:Factory/.museic.new/museic.changes 2018-01-31 19:54:13.042988012 +0100
@@ -1,0 +2,16 @@
+Tue Jan 30 19:59:13 UTC 2018 - avvissu(a)yandex.by
+
+- Update to 1.5.1:
+ * Focus current file played onclick it's name in status labelº
+ * Connect open signal
+ * Update interface
+ * Add searchbox to search anf queque files
+ * Imp artist search: use search entry
+ * Add search bar for artists
+ * hange shown filelist onclick an artist
+ * Show artists im a liststore in a popover
+ * Max volume to 2
+ * Remote info as Popover
+ * Bugfix: copy correctlly filelist
+
+-------------------------------------------------------------------
Old:
----
MuseIC-1.5.0.tar.gz
New:
----
MuseIC-1.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ museic.spec ++++++
--- /var/tmp/diff_new_pack.s2L44g/_old 2018-01-31 19:54:13.734955831 +0100
+++ /var/tmp/diff_new_pack.s2L44g/_new 2018-01-31 19:54:13.734955831 +0100
@@ -17,7 +17,7 @@
Name: museic
-Version: 1.5.0
+Version: 1.5.1
Release: 0
Summary: Audio player with remote control
License: GPL-3.0
++++++ MuseIC-1.5.0.tar.gz -> MuseIC-1.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MuseIC-1.5.0/data/com.github.bcedu.museic.appdata.xml new/MuseIC-1.5.1/data/com.github.bcedu.museic.appdata.xml
--- old/MuseIC-1.5.0/data/com.github.bcedu.museic.appdata.xml 2017-11-25 19:42:33.000000000 +0100
+++ new/MuseIC-1.5.1/data/com.github.bcedu.museic.appdata.xml 2018-01-20 16:45:11.000000000 +0100
@@ -33,6 +33,14 @@
</screenshot>
</screenshots>
<releases>
+ <release version="1.5.1" date="2018-01-20">
+ <description>
+ <p>MuseIC Release</p>
+ <ul>
+ <li>Fixes a bug which made that when sorting the current filelist and playing a file it wasn't played the correct file</li>
+ </ul>
+ </description>
+ </release>
<release version="1.5.0" date="2017-11-25">
<description>
<p>MuseIC Release</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MuseIC-1.5.0/src/museic.vala new/MuseIC-1.5.1/src/museic.vala
--- old/MuseIC-1.5.0/src/museic.vala 2017-11-25 19:42:33.000000000 +0100
+++ new/MuseIC-1.5.1/src/museic.vala 2018-01-20 16:45:11.000000000 +0100
@@ -302,15 +302,14 @@
return this.museic_library.get_artists();
}
- public void change_filelist(string artist) {
+ public void change_filelist(MuseicFileList flist) {
// Change current filelist to a filelist with only files of passed artist.
// If passed artist is "all", filelist will have all files.
// After changing filelits, playlist is cleaned.
pause_file();
clear_playlist();
clear_filelist();
- this.museic_filelist.add_museic_files(this.museic_library.get_library_files(artist), true, "filelist");
- this.museic_filelist.name = artist;
+ this.museic_filelist = flist.copy();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MuseIC-1.5.0/src/museic_filelist.vala new/MuseIC-1.5.1/src/museic_filelist.vala
--- old/MuseIC-1.5.0/src/museic_filelist.vala 2017-11-25 19:42:33.000000000 +0100
+++ new/MuseIC-1.5.1/src/museic_filelist.vala 2018-01-20 16:45:11.000000000 +0100
@@ -163,6 +163,11 @@
public MuseicFileList copy() {
MuseicFileList aux = new MuseicFileList(this.name);
foreach (MuseicFile f in this.files_list[0:this.nfiles]) aux.add_museic_file(f, f.origin);
+ aux.filepos = this.filepos;
+ aux.random_state = this.random_state;
+ aux.sorted = this.sorted;
+ aux.sort_field = this.sort_field;
+ aux.name = this.name;
return aux;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MuseIC-1.5.0/src/museic_gui.vala new/MuseIC-1.5.1/src/museic_gui.vala
--- old/MuseIC-1.5.0/src/museic_gui.vala 2017-11-25 19:42:33.000000000 +0100
+++ new/MuseIC-1.5.1/src/museic_gui.vala 2018-01-20 16:45:11.000000000 +0100
@@ -458,7 +458,7 @@
[CCode(instance_pos=-1)]
public void action_play_selected_file_filelist (Gtk.TreeView view, Gtk.TreePath path, Gtk.TreeViewColumn column) {
- this.museic_app.change_filelist(this.museic_shown_filelist.name);
+ this.museic_app.change_filelist(this.museic_shown_filelist);
update_files_to_tree();
this.museic_app.clear_playlist();
this.museic_app.play_filelist_file(int.parse(path.to_string()));
1
0
Hello community,
here is the log from the commit of package tiled for openSUSE:Factory checked in at 2018-01-31 19:54:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tiled (Old)
and /work/SRC/openSUSE:Factory/.tiled.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tiled"
Wed Jan 31 19:54:01 2018 rev:8 rq:571340 version:1.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/tiled/tiled.changes 2018-01-09 14:52:44.641065669 +0100
+++ /work/SRC/openSUSE:Factory/.tiled.new/tiled.changes 2018-01-31 19:54:11.263070788 +0100
@@ -1,0 +2,17 @@
+Wed Jan 31 09:51:59 UTC 2018 - mvetter(a)suse.com
+
+- Update to 1.1.2:
+ * Fixed possible crash while editing polygons
+ * Fixed hang when loading map file with empty compressed layer data
+ * Fixed selection of tile stamp to work on mouse click
+ * Fixed tools not being up to date on modifier keys after activation
+ * Fixed "Offset Map" action for infinite maps (#1866)
+ * Templates view: Keep template centered when resizing view
+ * Tile Collision Editor: Keep tile centered when resizing view
+ * Tile Collision Editor: Display tool info text in status bar
+ * JSON plugin: Fixed reading of infinite maps (#1858)
+ * libtiled-java: Fixed some bugs (by Henry Wang, #1840)
+ * libtiled-java: Fixed tile offset value not being considered (by digitalhoax, #1863)
+- Remove upstreamed tiled-1.1.0-empty-return.patch
+
+-------------------------------------------------------------------
Old:
----
tiled-1.1.0-empty-return.patch
tiled-1.1.1.tar.gz
New:
----
tiled-1.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tiled.spec ++++++
--- /var/tmp/diff_new_pack.7Y3FLe/_old 2018-01-31 19:54:12.035034887 +0100
+++ /var/tmp/diff_new_pack.7Y3FLe/_new 2018-01-31 19:54:12.039034701 +0100
@@ -17,15 +17,13 @@
Name: tiled
-Version: 1.1.1
+Version: 1.1.2
Release: 0
Summary: A tilemap editor
License: GPL-2.0+
Group: Productivity/Graphics/Other
Url: http://www.mapeditor.org
Source: https://github.com/bjorn/%{name}/archive/v%{version}/%{name}-%{version}.tar…
-# FIX-UPSTREAM - jubahl(a)iodoru.org - https://github.com/bjorn/tiled/pull/1846
-Patch0: tiled-1.1.0-empty-return.patch
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -63,7 +61,6 @@
%prep
%setup -q
-%patch0 -p1
# Remove copy of zlib
rm -rf src/zlib
++++++ tiled-1.1.1.tar.gz -> tiled-1.1.2.tar.gz ++++++
/work/SRC/openSUSE:Factory/tiled/tiled-1.1.1.tar.gz /work/SRC/openSUSE:Factory/.tiled.new/tiled-1.1.2.tar.gz differ: char 14, line 1
1
0
Hello community,
here is the log from the commit of package monitor for openSUSE:Factory checked in at 2018-01-31 19:54:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/monitor (Old)
and /work/SRC/openSUSE:Factory/.monitor.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "monitor"
Wed Jan 31 19:54:04 2018 rev:3 rq:571345 version:0.3.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/monitor/monitor.changes 2018-01-24 15:29:14.405910025 +0100
+++ /work/SRC/openSUSE:Factory/.monitor.new/monitor.changes 2018-01-31 19:54:12.247025028 +0100
@@ -1,0 +2,9 @@
+Tue Jan 30 19:58:42 UTC 2018 - avvissu(a)yandex.by
+
+- Update to 0.3.5:
+ * Merge pull request #39 from lainsce/future-proof-headerbar
+ * Merge branch 'master' into future-proof-headerbar
+ * Merge pull request #34 from lainsce/master
+ * Merge branch 'master' of https://github.com/stsdc/monitor
+
+-------------------------------------------------------------------
Old:
----
monitor-0.3.3.tar.gz
New:
----
monitor-0.3.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ monitor.spec ++++++
--- /var/tmp/diff_new_pack.5bM2Se/_old 2018-01-31 19:54:12.775000474 +0100
+++ /var/tmp/diff_new_pack.5bM2Se/_new 2018-01-31 19:54:12.779000288 +0100
@@ -17,7 +17,7 @@
Name: monitor
-Version: 0.3.3
+Version: 0.3.5
Release: 0
Summary: Simple Task Manager
License: GPL-3.0
++++++ monitor-0.3.3.tar.gz -> monitor-0.3.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monitor-0.3.3/data/com.github.stsdc.monitor.appdata.xml new/monitor-0.3.5/data/com.github.stsdc.monitor.appdata.xml
--- old/monitor-0.3.3/data/com.github.stsdc.monitor.appdata.xml 2018-01-20 01:56:20.000000000 +0100
+++ new/monitor-0.3.5/data/com.github.stsdc.monitor.appdata.xml 2018-01-20 14:10:46.000000000 +0100
@@ -25,7 +25,7 @@
<url type="help">https://github.com/stsdc/monitor/issues</url>
<releases>
- <release version="0.3.3" date="2018-01-29">
+ <release version="0.3.5" date="2018-01-20">
<description>
<ul>
<li>Fix showing icon for some apps</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monitor-0.3.3/debian/changelog new/monitor-0.3.5/debian/changelog
--- old/monitor-0.3.3/debian/changelog 2018-01-20 01:56:20.000000000 +0100
+++ new/monitor-0.3.5/debian/changelog 2018-01-20 14:10:46.000000000 +0100
@@ -1,3 +1,11 @@
+com.github.stsdc.monitor (0.3.5) xenial; urgency=low
+
+ * Fix showing icon for some apps
+ * Pressing Enter focuses on process list
+ * Filtering: process will be highlighted if its group has no other processes
+
+-- Stanisław Dac <stanislawdac(a)gmail.com> Sat, 20 Jan 2018 14:01:21 +0100
+
com.github.stsdc.monitor (0.3.2) xenial; urgency=low
* Ukrainian translation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monitor-0.3.3/debian/control new/monitor-0.3.5/debian/control
--- old/monitor-0.3.3/debian/control 2018-01-20 01:56:20.000000000 +0100
+++ new/monitor-0.3.5/debian/control 2018-01-20 14:10:46.000000000 +0100
@@ -2,8 +2,8 @@
Section: system
Priority: extra
Maintainer: Stanisław Dac <stanislaw.dac(a)gmail.com>
-Build-Depends: cmake (>= 2.8),
- cmake-elementary,
+Build-Depends: meson,
+ appstream,
debhelper (>= 9),
libgtk-3-dev,
libglib2.0-dev,
@@ -13,7 +13,7 @@
libwnck-3-dev,
libgtop2-dev
-
+
Standards-Version: 3.9.3
Package: com.github.stsdc.monitor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monitor-0.3.3/debian/rules new/monitor-0.3.5/debian/rules
--- old/monitor-0.3.3/debian/rules 2018-01-20 01:56:20.000000000 +0100
+++ new/monitor-0.3.5/debian/rules 2018-01-20 14:10:46.000000000 +0100
@@ -10,5 +10,20 @@
#export DH_VERBOSE=1
%:
- dh $@
+ dh $@
+override_dh_auto_clean:
+ rm -rf debian/build
+
+override_dh_auto_configure:
+ mkdir -p debian/build
+ cd debian/build && meson --prefix=/usr ../..
+
+override_dh_auto_build:
+ cd debian/build && ninja -v
+
+override_dh_auto_test:
+ cd debian/build && ninja test
+
+override_dh_auto_install:
+ cd debian/build && DESTDIR=${CURDIR}/debian/com.github.stsdc.monitor ninja install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monitor-0.3.3/meson.build new/monitor-0.3.5/meson.build
--- old/monitor-0.3.3/meson.build 2018-01-20 01:56:20.000000000 +0100
+++ new/monitor-0.3.5/meson.build 2018-01-20 14:10:46.000000000 +0100
@@ -1,5 +1,5 @@
-project('com.github.stsdc.monitor', 'vala', 'c', version: '0.3.3')
+project('com.github.stsdc.monitor', 'vala', 'c', version: '0.3.5')
gnome = import('gnome')
i18n = import('i18n')
1
0
Hello community,
here is the log from the commit of package live-langset-data for openSUSE:Factory checked in at 2018-01-31 19:53:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/live-langset-data (Old)
and /work/SRC/openSUSE:Factory/.live-langset-data.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "live-langset-data"
Wed Jan 31 19:53:55 2018 rev:6 rq:571328 version:2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/live-langset-data/live-langset-data.changes 2018-01-24 15:32:39.728307280 +0100
+++ /work/SRC/openSUSE:Factory/.live-langset-data.new/live-langset-data.changes 2018-01-31 19:54:06.811277819 +0100
@@ -1,0 +2,6 @@
+Wed Jan 31 09:49:14 UTC 2018 - fvogt(a)suse.com
+
+- Update getcountrydata.rb to work with 2-letter language codes
+ as used by the openSUSE consolefonts.ycp
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ getcountrydata.rb ++++++
--- /var/tmp/diff_new_pack.bIecLW/_old 2018-01-31 19:54:07.435248801 +0100
+++ /var/tmp/diff_new_pack.bIecLW/_new 2018-01-31 19:54:07.455247871 +0100
@@ -26,7 +26,11 @@
# set language for encoding
WFM.SetLanguage(fqlanguage)
yast_kbd = "#{kbd},#{Keyboard.kb_model}"
- consolefont = consolefonts[fqlanguage] || consolefonts[lang] || []
+ consolefont = consolefonts[fqlanguage] || consolefonts[lang]
+ if consolefont.nil? && lang.size > 2
+ consolefont = consolefonts[lang[0,2]]
+ end
+ consolefont ||= []
font = consolefont[0] || ""
unicodeMap = consolefont[1] || ""
screenMap = consolefont[2] || ""
1
0
Hello community,
here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2018-01-31 19:53:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Wed Jan 31 19:53:37 2018 rev:47 rq:571312 version:20180131.d88eefe
Changes:
--------
--- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2018-01-30 15:44:39.597887046 +0100
+++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2018-01-31 19:54:03.571428488 +0100
@@ -1,0 +2,6 @@
+Wed Jan 31 09:04:02 UTC 2018 - opensuse-releaseteam(a)opensuse.org
+
+- Update to version 20180131.d88eefe:
+ * adi: place :NonFree requests in separate adi with :NonFree path.
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20180130.40c4c14.obscpio
New:
----
openSUSE-release-tools-20180131.d88eefe.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.CALt9a/_old 2018-01-31 19:54:04.199399285 +0100
+++ /var/tmp/diff_new_pack.CALt9a/_new 2018-01-31 19:54:04.199399285 +0100
@@ -20,7 +20,7 @@
%define source_dir osc-plugin-factory
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20180130.40c4c14
+Version: 20180131.d88eefe
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0+ AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.CALt9a/_old 2018-01-31 19:54:04.243397238 +0100
+++ /var/tmp/diff_new_pack.CALt9a/_new 2018-01-31 19:54:04.243397238 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/osc-plugin-factory.git</param>
- <param name="changesrevision">40c4c14db52af9b7fac403aa0ee3f0c62980d86f</param>
+ <param name="changesrevision">2d13b117830cc2fb5d06a2a78d4f73a8e1869b89</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20180130.40c4c14.obscpio -> openSUSE-release-tools-20180131.d88eefe.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180130.40c4c14/osclib/adi_command.py new/openSUSE-release-tools-20180131.d88eefe/osclib/adi_command.py
--- old/openSUSE-release-tools-20180130.40c4c14/osclib/adi_command.py 2018-01-30 08:34:06.000000000 +0100
+++ new/openSUSE-release-tools-20180131.d88eefe/osclib/adi_command.py 2018-01-31 09:57:51.000000000 +0100
@@ -81,6 +81,9 @@
splitter.group_by('./action/target/@devel_project')
else:
splitter.group_by('./action/source/@project')
+
+ if not split:
+ splitter.group_by('./action/target/@nonfree')
splitter.split()
for group in sorted(splitter.grouped.keys()):
@@ -89,7 +92,8 @@
name = None
for request in splitter.grouped[group]['requests']:
request_id = int(request.get('id'))
- target_package = request.find('./action/target').get('package')
+ target = request.find('./action/target')
+ target_package = target.get('package')
line = '- {} {}{:<30}{}'.format(request_id, Fore.CYAN, target_package, Fore.RESET)
message = self.api.ignore_format(request_id)
@@ -107,8 +111,9 @@
# request is processed from a particular group.
if name is None:
use_frozenlinks = group in source_projects_expand and not split
+ nonfree = bool(target.get('nonfree'))
name = self.api.create_adi_project(None,
- use_frozenlinks, group)
+ use_frozenlinks, group, nonfree)
if not self.api.rq_to_prj(request_id, name):
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180130.40c4c14/osclib/request_splitter.py new/openSUSE-release-tools-20180131.d88eefe/osclib/request_splitter.py
--- old/openSUSE-release-tools-20180130.40c4c14/osclib/request_splitter.py 2018-01-30 08:34:06.000000000 +0100
+++ new/openSUSE-release-tools-20180131.d88eefe/osclib/request_splitter.py 2018-01-31 09:57:51.000000000 +0100
@@ -121,6 +121,9 @@
target.set('devel_project', devel)
StrategySuper.supplement(request)
+ if target_project == self.api.cnonfree:
+ target.set('nonfree', 'nonfree')
+
ring = self.ring_get(target_package)
if ring:
target.set('ring', ring)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180130.40c4c14/osclib/stagingapi.py new/openSUSE-release-tools-20180131.d88eefe/osclib/stagingapi.py
--- old/openSUSE-release-tools-20180130.40c4c14/osclib/stagingapi.py 2018-01-30 08:34:06.000000000 +0100
+++ new/openSUSE-release-tools-20180131.d88eefe/osclib/stagingapi.py 2018-01-31 09:57:51.000000000 +0100
@@ -1739,7 +1739,7 @@
l = ET.tostring(flink)
http_PUT(url, data=l)
- def create_adi_project(self, name, use_frozenlinks=False, src_prj=None):
+ def create_adi_project(self, name, use_frozenlinks=False, src_prj=None, nonfree=False):
"""Create an ADI project."""
if not name:
name = self._candidate_adi_project()
@@ -1757,6 +1757,11 @@
linkproject = ''
repository = '<repository name="standard">'
+ if nonfree:
+ nonfree_path = "<path project=\"{}\" repository=\"standard\"/>".format(self.cnonfree)
+ else:
+ nonfree_path = ''
+
meta = """
<project name="{0}">
<title></title>
@@ -1770,12 +1775,13 @@
<enable/>
</debuginfo>
{4}
+ {6}
<path project="{5}" repository="standard"/>
<path project="{1}" repository="standard"/>
<arch>x86_64</arch>
</repository>
</project>""".format(name, self.project, self.extract_adi_number(name), linkproject, repository,
- self.cstaging)
+ self.cstaging, nonfree_path)
url = make_meta_url('prj', name, self.apiurl)
http_PUT(url, data=meta)
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.CALt9a/_old 2018-01-31 19:54:05.351345713 +0100
+++ /var/tmp/diff_new_pack.CALt9a/_new 2018-01-31 19:54:05.351345713 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20180130.40c4c14
-mtime: 1517297646
-commit: 40c4c14db52af9b7fac403aa0ee3f0c62980d86f
+version: 20180131.d88eefe
+mtime: 1517389071
+commit: d88eefe918ee3af4fb30d5dca6a7d56469e1d9c3
1
0
Hello community,
here is the log from the commit of package stress-ng for openSUSE:Factory checked in at 2018-01-31 19:53:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/stress-ng (Old)
and /work/SRC/openSUSE:Factory/.stress-ng.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stress-ng"
Wed Jan 31 19:53:34 2018 rev:31 rq:571310 version:0.09.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/stress-ng/stress-ng.changes 2018-01-26 13:40:45.245779229 +0100
+++ /work/SRC/openSUSE:Factory/.stress-ng.new/stress-ng.changes 2018-01-31 19:54:01.179539724 +0100
@@ -1,0 +2,26 @@
+Wed Jan 31 08:41:23 UTC 2018 - mardnh(a)gmx.de
+
+- Update to version 0.09.14
+ * Makefile: bump version
+ * stress-sigpipe: reduce scope of int ret
+ * stress-wcsstr: sanity check to see if there are any wcs* functions
+ * Add full wide char function autodetection
+ * stress-chown: workaround a NetBSD hang on usleep
+ * stress-chmod: workaround a NetBSD hang on usleep
+ * stress-cpu: add __fp16 float16 support (ARM)
+ * test/test-float: ensure test code is not overly optimized out
+ * test/test-float.c: ensure build options are same as stress-cpu.c
+ * Generalize float type config tests
+ * stress-cpu: Add float32, float80 and float128 support
+ * stress-ng: add some alignment tweaks to naturally align fields
+ * Add a new vm-addr virtual memory address stressor
+ * README: update number of stressors
+ * stress-funccall: make functions non-static, force less optimization
+ * stress-vm: add UNLIKELY annotations to improve performance
+ * stress-procfs: don't write using a NULL badbuf
+ * Add sigpipe stressor
+ * Add bad write buffer to procfs write
+ * stress-procfs: do proc writes only if proc_write is true
+ * stress-vm-rw: fix build failure on ia64 with missing HAVE_CLONE
+
+-------------------------------------------------------------------
Old:
----
stress-ng-0.09.13.tar.xz
New:
----
stress-ng-0.09.14.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ stress-ng.spec ++++++
--- /var/tmp/diff_new_pack.K5gJSk/_old 2018-01-31 19:54:01.887506799 +0100
+++ /var/tmp/diff_new_pack.K5gJSk/_new 2018-01-31 19:54:01.887506799 +0100
@@ -18,7 +18,7 @@
Name: stress-ng
-Version: 0.09.13
+Version: 0.09.14
Release: 0
Summary: Tool to load and stress a computer
License: GPL-2.0
++++++ stress-ng-0.09.13.tar.xz -> stress-ng-0.09.14.tar.xz ++++++
++++ 2317 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package steamtricks-data for openSUSE:Factory checked in at 2018-01-31 19:53:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/steamtricks-data (Old)
and /work/SRC/openSUSE:Factory/.steamtricks-data.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "steamtricks-data"
Wed Jan 31 19:53:31 2018 rev:4 rq:571304 version:20180128.f77bb8e
Changes:
--------
--- /work/SRC/openSUSE:Factory/steamtricks-data/steamtricks-data.changes 2017-09-04 12:33:29.339417566 +0200
+++ /work/SRC/openSUSE:Factory/.steamtricks-data.new/steamtricks-data.changes 2018-01-31 19:54:00.187585854 +0100
@@ -1,0 +2,6 @@
+Wed Jan 31 08:12:03 UTC 2018 - jimmy(a)boombatower.com
+
+- Update to version 20180128.f77bb8e:
+ * Utilize force_system_openssl for Company of Heroes 2. (#5)
+
+-------------------------------------------------------------------
Old:
----
steamtricks-data-20170518.71f4ec6.tar.xz
New:
----
steamtricks-data-20180128.f77bb8e.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ steamtricks-data.spec ++++++
--- /var/tmp/diff_new_pack.B4dTb0/_old 2018-01-31 19:54:00.707561673 +0100
+++ /var/tmp/diff_new_pack.B4dTb0/_new 2018-01-31 19:54:00.707561673 +0100
@@ -1,7 +1,7 @@
#
# spec file for package steamtricks-data
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: steamtricks-data
-Version: 20170518.71f4ec6
+Version: 20180128.f77bb8e
Release: 0
Summary: Steamtricks companion data repository
License: GPL-2.0
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.B4dTb0/_old 2018-01-31 19:54:00.755559441 +0100
+++ /var/tmp/diff_new_pack.B4dTb0/_new 2018-01-31 19:54:00.755559441 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/steamtricks/steamtricks-data.git</param>
- <param name="changesrevision">71f4ec661118b94137e77ed8d3b6a764158b3f18</param>
+ <param name="changesrevision">f77bb8e3e5060d57002a03d4bd8c2c44f2b65125</param>
</service>
</servicedata>
++++++ steamtricks-data-20170518.71f4ec6.tar.xz -> steamtricks-data-20180128.f77bb8e.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steamtricks-data-20170518.71f4ec6/data/231430-Company_of_Heroes_2/00-pre new/steamtricks-data-20180128.f77bb8e/data/231430-Company_of_Heroes_2/00-pre
--- old/steamtricks-data-20170518.71f4ec6/data/231430-Company_of_Heroes_2/00-pre 1970-01-01 01:00:00.000000000 +0100
+++ new/steamtricks-data-20180128.f77bb8e/data/231430-Company_of_Heroes_2/00-pre 2018-01-28 07:27:55.000000000 +0100
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+force_system_openssl CompanyOfHeroes2.sh
1
0
Hello community,
here is the log from the commit of package klee for openSUSE:Factory checked in at 2018-01-31 19:53:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/klee (Old)
and /work/SRC/openSUSE:Factory/.klee.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "klee"
Wed Jan 31 19:53:28 2018 rev:8 rq:571294 version:1.4.0+20180108
Changes:
--------
--- /work/SRC/openSUSE:Factory/klee/klee.changes 2018-01-16 09:43:01.595846660 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/klee.changes 2018-01-31 19:53:57.747699321 +0100
@@ -1,0 +2,47 @@
+Wed Jan 24 07:59:06 UTC 2018 - jslaby(a)suse.com
+
+- Add klee-skip-some-tests.patch
+
+-------------------------------------------------------------------
+Mon Jan 15 10:24:53 UTC 2018 - jslaby(a)suse.com
+
+- Update to version 1.4.0+20180108:
+ * [NFC] Remove unused config header template that was only used by the old build system (now removed).
+ * fix regression test: use `%klee` instead of `klee`
+ * fix merging tests: use `%klee` instead of `klee`
+ * Move Homebrew tap from personal repository to the KLEE organization
+ * Updated TravisCI to use pip2 instead of pip
+ * Bumped xcode version for TravisCI
+ * Implemented bounded merging functionality
+ * Added pause and continue functionality for states in Executor
+ * Replace confusing message in lit.site.cfg.in about the file being autogenerated
+ * klee_make_symbolic: add test cases for API
+ * klee_make_symbolic: warn on deprecated usage
+- added patches:
+ * 0001-MergeHandler-remove-unused-closedStateCount.patch
+ * 0002-llvm50-use-auto-variable-instead-of-SwitchInst-CaseI.patch
+ * 0013-llvm40-gep_type_iterator-has-no-operator.patch
+ * 0014-llvm50-avoid-on-function-arg_begin.patch
+ * 0015-llvm50-integerPartWidth-is-from-llvm-APFloatBase.patch
+ * 0016-llvm50-handle-getOrInsertFunction-terminator.patch
+ * 0017-llvm50-SwitchInst-case-functions-now-return-pointers.patch
+ * 0018-llvm50-handle-new-file_magic-s-location.patch
+ * 0019-llvm50-use-MutableArrayRef-for-APFloat-convertToInte.patch
+ * 0020-llvm50-AllocaInst-takes-address-space.patch
+- renamed patches:
+ * 0013-llvm38-test-change-some-tests.patch ->
+ 0007-llvm38-test-change-some-tests.patch
+ * 0007-llvm40-handle-different-header-names.patch ->
+ 0008-llvm40-handle-different-header-names.patch
+ * 0008-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch ->
+ 0009-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch
+ * 0009-llvm40-errorOr-and-similar.patch ->
+ 0010-llvm40-errorOr-and-similar.patch
+ * 0010-llvm-use-chrono-helpers-from-LLVM-4.0.patch ->
+ 0011-llvm-use-chrono-helpers-from-LLVM-4.0.patch
+ * 0011-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch ->
+ 0012-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch
+ * 0012-llvm40-gep_type_iterator-has-no-operator.patch ->
+ 0013-llvm40-gep_type_iterator-has-no-operator.patch
+
+-------------------------------------------------------------------
Old:
----
0007-llvm40-handle-different-header-names.patch
0008-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch
0009-llvm40-errorOr-and-similar.patch
0010-llvm-use-chrono-helpers-from-LLVM-4.0.patch
0011-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch
0012-llvm40-gep_type_iterator-has-no-operator.patch
0013-llvm38-test-change-some-tests.patch
klee-1.4.0+20171026.tar.xz
New:
----
0001-MergeHandler-remove-unused-closedStateCount.patch
0002-llvm50-use-auto-variable-instead-of-SwitchInst-CaseI.patch
0007-llvm38-test-change-some-tests.patch
0008-llvm40-handle-different-header-names.patch
0009-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch
0010-llvm40-errorOr-and-similar.patch
0011-llvm-use-chrono-helpers-from-LLVM-4.0.patch
0012-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch
0013-llvm40-gep_type_iterator-has-no-operator.patch
0014-llvm50-avoid-on-function-arg_begin.patch
0015-llvm50-integerPartWidth-is-from-llvm-APFloatBase.patch
0016-llvm50-handle-getOrInsertFunction-terminator.patch
0017-llvm50-SwitchInst-case-functions-now-return-pointers.patch
0018-llvm50-handle-new-file_magic-s-location.patch
0019-llvm50-use-MutableArrayRef-for-APFloat-convertToInte.patch
0020-llvm50-AllocaInst-takes-address-space.patch
klee-1.4.0+20180108.tar.xz
klee-skip-some-tests.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ klee.spec ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.455666397 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.459666211 +0100
@@ -19,7 +19,7 @@
%define llvm_version_minor 0
%define llvm_version %{llvm_version_major}
-%define version_unconverted 1.4.0+20171026
+%define version_unconverted 1.4.0+20180108
%ifarch %{ix86} x86_64
%define with_uclibc 1
@@ -31,36 +31,49 @@
Summary: LLVM Execution Engine
License: NCSA
Group: Development/Languages/Other
-Version: 1.4.0+20171026
+Version: 1.4.0+20180108
Release: 0
Url: http://klee.github.io/
Source0: %{name}-%{version}.tar.xz
Source1: %{name}-rpmlintrc
Source2: https://raw.githubusercontent.com/llvm-mirror/llvm/release_%{llvm_version_m…
Source3: https://raw.githubusercontent.com/llvm-mirror/llvm/release_%{llvm_version_m…
-Patch1: 0001-Fix-generation-of-expressions-from-constant-sequenti.patch
-Patch2: 0002-Fix-getelementptr-for-array-or-vector-indices.patch
-Patch3: 0003-Fix-correct-element-order-of-InsertElement-ExtractEl.patch
-Patch4: 0004-Provide-errno-independent-of-CTYPE_EXTERNALS-being-d.patch
-Patch5: 0005-Track-errno-correctly.patch
-Patch6: 0006-Declare-klee_get_errno-and-remove-local-declarations.patch
-Patch7: 0007-Add-support-for-modelling-errno_location.patch
-Patch8: 0008-Cleanup-test-cases.patch
-Patch9: 0009-test-fix-Feature-BFSSearcherAndDFSSearcherInterleave.patch
-#---
-Patch10: 0001-llvm37-handle-GetElementPtrInst-Create-s-new-paramet.patch
-Patch11: 0002-llvm-make-KLEE-compile-against-LLVM-3.7.patch
-Patch12: 0003-test-add-versions-of-some-tests-for-LLVM-3.7.patch
-Patch13: 0004-llvm37-handle-getRegisteredOptions.patch
-Patch14: 0005-llvm-make-KLEE-compile-against-LLVM-3.8.patch
-Patch15: 0006-llvm-make-KLEE-compile-against-LLVM-3.9.patch
-Patch16: 0007-llvm40-handle-different-header-names.patch
-Patch17: 0008-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch
-Patch18: 0009-llvm40-errorOr-and-similar.patch
-Patch19: 0010-llvm-use-chrono-helpers-from-LLVM-4.0.patch
-Patch20: 0011-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch
-Patch21: 0012-llvm40-gep_type_iterator-has-no-operator.patch
-Patch22: 0013-llvm38-test-change-some-tests.patch
+
+Patch1: 0001-MergeHandler-remove-unused-closedStateCount.patch
+Patch2: 0002-llvm50-use-auto-variable-instead-of-SwitchInst-CaseI.patch
+
+Patch101: 0001-Fix-generation-of-expressions-from-constant-sequenti.patch
+Patch102: 0002-Fix-getelementptr-for-array-or-vector-indices.patch
+Patch103: 0003-Fix-correct-element-order-of-InsertElement-ExtractEl.patch
+Patch104: 0004-Provide-errno-independent-of-CTYPE_EXTERNALS-being-d.patch
+Patch105: 0005-Track-errno-correctly.patch
+Patch106: 0006-Declare-klee_get_errno-and-remove-local-declarations.patch
+Patch107: 0007-Add-support-for-modelling-errno_location.patch
+Patch108: 0008-Cleanup-test-cases.patch
+Patch109: 0009-test-fix-Feature-BFSSearcherAndDFSSearcherInterleave.patch
+
+Patch201: 0001-llvm37-handle-GetElementPtrInst-Create-s-new-paramet.patch
+Patch202: 0002-llvm-make-KLEE-compile-against-LLVM-3.7.patch
+Patch203: 0003-test-add-versions-of-some-tests-for-LLVM-3.7.patch
+Patch204: 0004-llvm37-handle-getRegisteredOptions.patch
+Patch205: 0005-llvm-make-KLEE-compile-against-LLVM-3.8.patch
+Patch206: 0006-llvm-make-KLEE-compile-against-LLVM-3.9.patch
+Patch207: 0007-llvm38-test-change-some-tests.patch
+Patch208: 0008-llvm40-handle-different-header-names.patch
+Patch209: 0009-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch
+Patch210: 0010-llvm40-errorOr-and-similar.patch
+Patch211: 0011-llvm-use-chrono-helpers-from-LLVM-4.0.patch
+Patch212: 0012-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch
+Patch213: 0013-llvm40-gep_type_iterator-has-no-operator.patch
+Patch214: 0014-llvm50-avoid-on-function-arg_begin.patch
+Patch215: 0015-llvm50-integerPartWidth-is-from-llvm-APFloatBase.patch
+Patch216: 0016-llvm50-handle-getOrInsertFunction-terminator.patch
+Patch217: 0017-llvm50-SwitchInst-case-functions-now-return-pointers.patch
+Patch218: 0018-llvm50-handle-new-file_magic-s-location.patch
+Patch219: 0019-llvm50-use-MutableArrayRef-for-APFloat-convertToInte.patch
+Patch220: 0020-llvm50-AllocaInst-takes-address-space.patch
+
+Patch300: klee-skip-some-tests.patch
BuildRequires: clang%{llvm_version}
BuildRequires: cmake
@@ -89,26 +102,40 @@
%setup -q
%patch1 -p1
%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
+
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+%patch109 -p1
+
+%patch201 -p1
+%patch202 -p1
+%patch203 -p1
+%patch204 -p1
+%patch205 -p1
+%patch206 -p1
+%patch207 -p1
+%patch208 -p1
+%patch209 -p1
+%patch210 -p1
+%patch211 -p1
+%patch212 -p1
+%patch213 -p1
+%patch214 -p1
+%patch215 -p1
+%patch216 -p1
+%patch217 -p1
+%patch218 -p1
+%patch219 -p1
+%patch220 -p1
+
+%patch300 -p1
+
mkdir -p build/test/
cp %{SOURCE2} build/test/
cp %{SOURCE3} build/test/
++++++ 0001-Fix-generation-of-expressions-from-constant-sequenti.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.479665281 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.479665281 +0100
@@ -27,5 +27,5 @@
}
ref<Expr> res = ConcatExpr::createN(kids.size(), kids.data());
--
-2.15.0
+2.15.1
++++++ 0001-MergeHandler-remove-unused-closedStateCount.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 09:20:32 +0100
Subject: MergeHandler: remove unused closedStateCount
Patch-mainline: no
clang 5 reports:
In file included from ../lib/Core/MergeHandler.cpp:10:
../include/klee/MergeHandler.h:81:12: warning: private field 'closedStateCount' is not used [-Wunused-private-field]
unsigned closedStateCount;
^
So fix it by removing the member.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
include/klee/MergeHandler.h | 4 ----
1 file changed, 4 deletions(-)
diff --git a/include/klee/MergeHandler.h b/include/klee/MergeHandler.h
index d374e1684036..0c596825e867 100644
--- a/include/klee/MergeHandler.h
+++ b/include/klee/MergeHandler.h
@@ -76,10 +76,6 @@ class MergeHandler {
private:
Executor *executor;
- /// @brief Number of states that are tracked by this MergeHandler, that ran
- /// into a relevant klee_close_merge
- unsigned closedStateCount;
-
/// @brief Mapping the different 'klee_close_merge' calls to the states that ran into
/// them
std::map<llvm::Instruction *, std::vector<ExecutionState *> >
--
2.15.1
++++++ 0001-llvm37-handle-GetElementPtrInst-Create-s-new-paramet.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.507663979 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.507663979 +0100
@@ -68,5 +68,5 @@
}
ii->removeFromParent();
--
-2.15.0
+2.15.1
++++++ 0002-Fix-getelementptr-for-array-or-vector-indices.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.523663235 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.527663049 +0100
@@ -96,5 +96,5 @@
}
--
-2.15.0
+2.15.1
++++++ 0002-llvm-make-KLEE-compile-against-LLVM-3.7.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.535662677 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.535662677 +0100
@@ -161,7 +161,7 @@
TLI = TM->getSubtargetImpl()->getTargetLowering();
#else
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
-index 4a820578bf16..f8706f9f74e5 100644
+index 9bdf06f600ce..ea24d89c5aaf 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -35,6 +35,7 @@
@@ -173,5 +173,5 @@
#include "llvm/Support/TargetSelect.h"
--
-2.15.0
+2.15.1
++++++ 0002-llvm50-use-auto-variable-instead-of-SwitchInst-CaseI.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:24:48 +0100
Subject: llvm50: use auto variable instead of SwitchInst::CaseIt
Patch-mainline: no
llvm50 changed the semantics of SwitchInst::CaseIt and started using
"auto" variable type. So use it here too for all versions.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
lib/Core/Executor.cpp | 3 +--
lib/Module/LowerSwitch.cpp | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index be92b16a459d..d836598927ce 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1553,8 +1553,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
std::map<ref<Expr>, BasicBlock *> expressionOrder;
// Iterate through all non-default cases and order them by expressions
- for (SwitchInst::CaseIt i = si->case_begin(), e = si->case_end(); i != e;
- ++i) {
+ for (auto i : si->cases()) {
ref<Expr> value = evalConstant(i.getCaseValue());
BasicBlock *caseSuccessor = i.getCaseSuccessor();
diff --git a/lib/Module/LowerSwitch.cpp b/lib/Module/LowerSwitch.cpp
index 1a194245a09a..02f00a3ae94e 100644
--- a/lib/Module/LowerSwitch.cpp
+++ b/lib/Module/LowerSwitch.cpp
@@ -115,7 +115,7 @@ void LowerSwitchPass::processSwitchInst(SwitchInst *SI) {
CaseVector cases;
- for (SwitchInst::CaseIt i = SI->case_begin(), e = SI->case_end(); i != e; ++i)
+ for (auto i : SI->cases())
cases.push_back(SwitchCase(i.getCaseValue(),
i.getCaseSuccessor()));
--
2.15.1
++++++ 0003-Fix-correct-element-order-of-InsertElement-ExtractEl.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.563661375 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.563661375 +0100
@@ -9,10 +9,10 @@
1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index 0b7aa1a97f68..dcb8d30e0ffa 100644
+index d836598927ce..fd1da6478fb2 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
-@@ -2392,15 +2392,11 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
+@@ -2391,15 +2391,11 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
const unsigned elementCount = vt->getNumElements();
llvm::SmallVector<ref<Expr>, 8> elems;
elems.reserve(elementCount);
@@ -33,7 +33,7 @@
}
ref<Expr> Result = ConcatExpr::createN(elementCount, elems.data());
-@@ -2430,12 +2426,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
+@@ -2429,12 +2425,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
return;
}
@@ -48,5 +48,5 @@
bindLocal(ki, state, Result);
break;
--
-2.15.0
+2.15.1
++++++ 0003-test-add-versions-of-some-tests-for-LLVM-3.7.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.575660817 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.575660817 +0100
@@ -1615,5 +1615,5 @@
+ return 0;
+}
--
-2.15.0
+2.15.1
++++++ 0004-Provide-errno-independent-of-CTYPE_EXTERNALS-being-d.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.587660259 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.587660259 +0100
@@ -11,7 +11,7 @@
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index dcb8d30e0ffa..dd3af9836187 100644
+index fd1da6478fb2..efc59008e542 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -524,14 +524,20 @@ void Executor::initializeGlobals(ExecutionState &state) {
@@ -39,5 +39,5 @@
These point into arrays of 384, so they can be indexed by any `unsigned
char' value [0,255]; by EOF (-1); or by any `signed char' value
--
-2.15.0
+2.15.1
++++++ 0004-llvm37-handle-getRegisteredOptions.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.603659515 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.603659515 +0100
@@ -29,5 +29,5 @@
i++) {
if (i->second->Category != &Category) {
--
-2.15.0
+2.15.1
++++++ 0005-Track-errno-correctly.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.611659143 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.615658956 +0100
@@ -15,7 +15,7 @@
4 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index dd3af9836187..3492cd7e9b3c 100644
+index efc59008e542..045e353ba932 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -531,7 +531,10 @@ void Executor::initializeGlobals(ExecutionState &state) {
@@ -30,7 +30,7 @@
#endif
// Disabled, we don't want to promote use of live externals.
-@@ -2973,6 +2976,27 @@ void Executor::callExternalFunction(ExecutionState &state,
+@@ -2999,6 +3002,27 @@ void Executor::callExternalFunction(ExecutionState &state,
return;
}
@@ -142,5 +142,5 @@
BitArray *concreteMask;
--
-2.15.0
+2.15.1
++++++ 0005-llvm-make-KLEE-compile-against-LLVM-3.8.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.623658584 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.623658584 +0100
@@ -15,10 +15,10 @@
7 files changed, 77 insertions(+), 9 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index 3492cd7e9b3c..51531f8f46c8 100644
+index 045e353ba932..96d85f503d4f 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
-@@ -2136,8 +2136,13 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
+@@ -2135,8 +2135,13 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
!fpWidthToSemantics(right->getWidth()))
return terminateStateOnExecError(state, "Unsupported FRem operation");
llvm::APFloat Res(*fpWidthToSemantics(left->getWidth()), left->getAPValue());
@@ -78,7 +78,7 @@
Value *op2 = ii->getArgOperand(1);
diff --git a/lib/Module/LowerSwitch.cpp b/lib/Module/LowerSwitch.cpp
-index 1a194245a09a..b61da111908b 100644
+index 02f00a3ae94e..7fe9d9768d72 100644
--- a/lib/Module/LowerSwitch.cpp
+++ b/lib/Module/LowerSwitch.cpp
@@ -64,7 +64,11 @@ void LowerSwitchPass::switchConvert(CaseItr begin, CaseItr end,
@@ -248,7 +248,7 @@
addPass(Passes, createLICMPass()); // Hoist loop invariants
addPass(Passes, createGVNPass()); // Remove redundancies
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
-index f8706f9f74e5..dbc166ed158a 100644
+index ea24d89c5aaf..14afce0edf7c 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -291,7 +291,12 @@ KleeHandler::KleeHandler(int argc, char **argv)
@@ -266,5 +266,5 @@
// create directory and try to link klee-last
if (mkdir(d.c_str(), 0775) == 0) {
--
-2.15.0
+2.15.1
++++++ 0006-Declare-klee_get_errno-and-remove-local-declarations.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.635658027 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.635658027 +0100
@@ -5,18 +5,19 @@
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
- include/klee/klee.h | 2 ++
+ include/klee/klee.h | 3 +++
runtime/POSIX/fd.c | 6 ------
- 2 files changed, 2 insertions(+), 6 deletions(-)
+ 2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/include/klee/klee.h b/include/klee/klee.h
-index bd3100b5007e..282670eebc91 100644
+index 644c498e94ab..8b9cd2e266d3 100644
--- a/include/klee/klee.h
+++ b/include/klee/klee.h
-@@ -152,6 +152,8 @@ extern "C" {
- /* Print range for given argument and tagged with name */
- void klee_print_range(const char * name, int arg );
+@@ -157,6 +157,9 @@ extern "C" {
+ /* Merge all paths of the state that went through klee_open_merge */
+ void klee_close_merge();
++
+ /* Get errno value of the current state */
+ int klee_get_errno(void);
#ifdef __cplusplus
@@ -40,5 +41,5 @@
static exe_disk_file_t *__get_sym_file(const char *pathname) {
if (!pathname)
--
-2.15.0
+2.15.1
++++++ 0006-llvm-make-KLEE-compile-against-LLVM-3.9.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.643657655 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.643657655 +0100
@@ -15,7 +15,7 @@
7 files changed, 98 insertions(+), 5 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index 51531f8f46c8..cd36eeec13e1 100644
+index 96d85f503d4f..d7c3194d9de4 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1308,10 +1308,18 @@ void Executor::executeCall(ExecutionState &state,
@@ -272,10 +272,10 @@
llvm::cl::ParseCommandLineOptions(argc, argv);
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
-index dbc166ed158a..3c78b480bb23 100644
+index 14afce0edf7c..436651f438d4 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
-@@ -1130,7 +1130,11 @@ int main(int argc, char **argv, char **envp) {
+@@ -1132,7 +1132,11 @@ int main(int argc, char **argv, char **envp) {
llvm::InitializeNativeTarget();
parseArguments(argc, argv);
@@ -288,5 +288,5 @@
if (Watchdog) {
if (MaxTime==0) {
--
-2.15.0
+2.15.1
++++++ 0007-Add-support-for-modelling-errno_location.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.651657283 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.655657097 +0100
@@ -5,16 +5,16 @@
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
- lib/Core/SpecialFunctionHandler.cpp | 46 ++++++++++++++++++++++++++++++++++---
+ lib/Core/SpecialFunctionHandler.cpp | 44 +++++++++++++++++++++++++++++++++++--
lib/Core/SpecialFunctionHandler.h | 1 +
tools/klee/main.cpp | 2 ++
- 3 files changed, 46 insertions(+), 3 deletions(-)
+ 3 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/lib/Core/SpecialFunctionHandler.cpp b/lib/Core/SpecialFunctionHandler.cpp
-index 88e0d1a034bd..a019a09486c1 100644
+index a8d6edecdd91..267a262fc133 100644
--- a/lib/Core/SpecialFunctionHandler.cpp
+++ b/lib/Core/SpecialFunctionHandler.cpp
-@@ -89,6 +89,8 @@ static SpecialFunctionHandler::HandlerInfo handlerInfo[] = {
+@@ -91,6 +91,8 @@ static SpecialFunctionHandler::HandlerInfo handlerInfo[] = {
add("klee_define_fixed_object", handleDefineFixedObject, false),
add("klee_get_obj_size", handleGetObjSize, true),
add("klee_get_errno", handleGetErrno, true),
@@ -23,7 +23,7 @@
add("klee_is_symbolic", handleIsSymbolic, true),
add("klee_make_symbolic", handleMakeSymbolic, false),
add("klee_mark_global", handleMarkGlobal, false),
-@@ -537,10 +539,48 @@ void SpecialFunctionHandler::handleGetErrno(ExecutionState &state,
+@@ -578,10 +580,48 @@ void SpecialFunctionHandler::handleGetErrno(ExecutionState &state,
// XXX should type check args
assert(arguments.size()==0 &&
"invalid number of arguments to klee_get_errno");
@@ -47,8 +47,8 @@
+ executor.terminateStateOnError(state, "Could not resolve address for errno",
+ Executor::User);
+ executor.bindLocal(target, state, result.second->read(0, Expr::Int32));
-+}
-+
+ }
+
+void SpecialFunctionHandler::handleErrnoLocation(
+ ExecutionState &state, KInstruction *target,
+ std::vector<ref<Expr> > &arguments) {
@@ -70,13 +70,12 @@
+ ConstantExpr::create((uint64_t)errno_addr,
+ executor.kmodule->targetData->getTypeSizeInBits(
+ target->inst->getType())));
- }
--
++}
void SpecialFunctionHandler::handleCalloc(ExecutionState &state,
KInstruction *target,
std::vector<ref<Expr> > &arguments) {
diff --git a/lib/Core/SpecialFunctionHandler.h b/lib/Core/SpecialFunctionHandler.h
-index 394b649aff72..5e58ede4f328 100644
+index 7e58018f8366..b11a49749ccb 100644
--- a/lib/Core/SpecialFunctionHandler.h
+++ b/lib/Core/SpecialFunctionHandler.h
@@ -107,6 +107,7 @@ namespace klee {
@@ -88,7 +87,7 @@
HANDLER(handleFree);
HANDLER(handleGetErrno);
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
-index f1def38c90e5..4a820578bf16 100644
+index 2b2fe3eb06c8..9bdf06f600ce 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -698,6 +698,8 @@ static const char *modelledExternals[] = {
@@ -101,5 +100,5 @@
"_exit",
"exit",
--
-2.15.0
+2.15.1
++++++ 0013-llvm38-test-change-some-tests.patch -> 0007-llvm38-test-change-some-tests.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0013-llvm38-test-change-some-tests.patch 2017-11-27 22:17:07.393439464 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0007-llvm38-test-change-some-tests.patch 2018-01-31 19:53:56.895738942 +0100
@@ -119,5 +119,5 @@
+ ret i32 0
+}
--
-2.15.0
+2.15.1
++++++ 0008-Cleanup-test-cases.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.687655609 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.687655609 +0100
@@ -38,5 +38,5 @@
#include <asm/ioctls.h>
#include <errno.h>
--
-2.15.0
+2.15.1
++++++ 0007-llvm40-handle-different-header-names.patch -> 0008-llvm40-handle-different-header-names.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0007-llvm40-handle-different-header-names.patch 2017-11-27 22:17:07.257444401 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0008-llvm40-handle-different-header-names.patch 2018-01-31 19:53:57.327718852 +0100
@@ -59,7 +59,7 @@
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Path.h"
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
-index 3c78b480bb23..d45fad22896f 100644
+index 436651f438d4..07f302a4641f 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -31,7 +31,6 @@
@@ -84,5 +84,5 @@
#include <signal.h>
#include <unistd.h>
--
-2.15.0
+2.15.1
++++++ 0008-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch -> 0009-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0008-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch 2017-11-27 22:17:07.285443385 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0009-llvm-APFloat-members-are-functions-in-LLVM-4.0.patch 2018-01-31 19:53:57.403715318 +0100
@@ -9,7 +9,7 @@
1 file changed, 9 insertions(+)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index cd36eeec13e1..af7f680fec3d 100644
+index d7c3194d9de4..19499e1be37d 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1451,12 +1451,21 @@ static bool isDebugIntrinsic(const Function *f, KModule *KM) {
@@ -35,5 +35,5 @@
return 0;
}
--
-2.15.0
+2.15.1
++++++ 0009-test-fix-Feature-BFSSearcherAndDFSSearcherInterleave.patch ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.731653562 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.731653562 +0100
@@ -31,5 +31,5 @@
+ // CHECK: {{^(ABCD|ABDC|ACBD|ACDB|ADBC|ADCB|BACD|BADC|BCAD|BCDA|BDAC|BDCA|CABD|CADB|CBAD|CBDA|CDAB|CDBA|DABC|DACB|DBAC|DBCA|DCAB|DCBA)$}}
}
--
-2.15.0
+2.15.1
++++++ 0009-llvm40-errorOr-and-similar.patch -> 0010-llvm40-errorOr-and-similar.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0009-llvm40-errorOr-and-similar.patch 2017-11-27 22:17:07.305442659 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0010-llvm40-errorOr-and-similar.patch 2018-01-31 19:53:57.455712900 +0100
@@ -124,5 +124,5 @@
#else
if (auto ec = module->materializeAllPermanently()) {
--
-2.15.0
+2.15.1
++++++ 0010-llvm-use-chrono-helpers-from-LLVM-4.0.patch -> 0011-llvm-use-chrono-helpers-from-LLVM-4.0.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0010-llvm-use-chrono-helpers-from-LLVM-4.0.patch 2017-11-27 22:17:07.349441061 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0011-llvm-use-chrono-helpers-from-LLVM-4.0.patch 2018-01-31 19:53:57.475711970 +0100
@@ -4,7 +4,7 @@
Patch-mainline: no
LLVM 4.0 removes the old time interface and starts using the C++11's
-chrono. So swiych to that in klee for LLVM 4.0 too.
+chrono. So switch to that in klee for LLVM 4.0 too.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
@@ -195,5 +195,5 @@
+
+#endif
--
-2.15.0
+2.15.1
++++++ 0011-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch -> 0012-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0011-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch 2017-11-27 22:17:07.361440626 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0012-llvm-PointerType-is-not-SequentialType-in-LLVM-4.patch 2018-01-31 19:53:57.503710668 +0100
@@ -27,10 +27,10 @@
CurTy = 0;
}
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
-index af7f680fec3d..f435f5389f64 100644
+index 19499e1be37d..093be697c7da 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
-@@ -2520,8 +2520,7 @@ void Executor::computeOffsets(KGEPInstruction *kgepi, TypeIt ib, TypeIt ie) {
+@@ -2522,8 +2522,7 @@ void Executor::computeOffsets(KGEPInstruction *kgepi, TypeIt ib, TypeIt ie) {
uint64_t addend = sl->getElementOffset((unsigned) ci->getZExtValue());
constantOffset = constantOffset->Add(ConstantExpr::alloc(addend,
Context::get().getPointerWidth()));
@@ -40,7 +40,7 @@
uint64_t elementSize =
kmodule->targetData->getTypeStoreSize(set->getElementType());
Value *operand = ii.getOperand();
-@@ -2535,7 +2534,24 @@ void Executor::computeOffsets(KGEPInstruction *kgepi, TypeIt ib, TypeIt ie) {
+@@ -2537,7 +2536,24 @@ void Executor::computeOffsets(KGEPInstruction *kgepi, TypeIt ib, TypeIt ie) {
} else {
kgepi->indices.push_back(std::make_pair(index, elementSize));
}
@@ -67,5 +67,5 @@
}
kgepi->offset = constantOffset->getZExtValue();
--
-2.15.0
+2.15.1
++++++ 0012-llvm40-gep_type_iterator-has-no-operator.patch -> 0013-llvm40-gep_type_iterator-has-no-operator.patch ++++++
--- /work/SRC/openSUSE:Factory/klee/0012-llvm40-gep_type_iterator-has-no-operator.patch 2017-11-27 22:17:07.377440045 +0100
+++ /work/SRC/openSUSE:Factory/.klee.new/0013-llvm40-gep_type_iterator-has-no-operator.patch 2018-01-31 19:53:57.519709924 +0100
@@ -28,5 +28,5 @@
const StructLayout *SL = kmodule->targetData->getStructLayout(STy);
base = base->Add(
--
-2.15.0
+2.15.1
++++++ 0014-llvm50-avoid-on-function-arg_begin.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:35:19 +0100
Subject: llvm50: avoid ++ on function->arg_begin()
Patch-mainline: no
Starting with llvm 5, arguments of a function are not an iterator, but
an array. So they cannot be incremented in-place. Use +1 to construct a
new one instead.
Otherwise we see:
../tools/klee/main.cpp:661:23: error: expression is not assignable
Value *oldArgv = &*(++mainFn->arg_begin());
^ ~~~~~~~~~~~~~~~~~~~
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
tools/klee/main.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
index 07f302a4641f..aeed018631ea 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -658,7 +658,11 @@ static int initEnv(Module *mainModule) {
Instruction *firstInst = &*(mainFn->begin()->begin());
Value *oldArgc = &*(mainFn->arg_begin());
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ Value *oldArgv = &*(mainFn->arg_begin() + 1);
+#else
Value *oldArgv = &*(++mainFn->arg_begin());
+#endif
AllocaInst* argcPtr =
new AllocaInst(oldArgc->getType(), "argcPtr", firstInst);
@@ -1117,7 +1121,11 @@ static llvm::Module *linkWithUclibc(llvm::Module *mainModule, StringRef libDir)
args.push_back(llvm::ConstantExpr::getBitCast(userMainFn,
ft->getParamType(0)));
args.push_back(&*(stub->arg_begin())); // argc
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ args.push_back(&*(stub->arg_begin() + 1)); // argv
+#else
args.push_back(&*(++stub->arg_begin())); // argv
+#endif
args.push_back(Constant::getNullValue(ft->getParamType(3))); // app_init
args.push_back(Constant::getNullValue(ft->getParamType(4))); // app_fini
args.push_back(Constant::getNullValue(ft->getParamType(5))); // rtld_fini
--
2.15.1
++++++ 0015-llvm50-integerPartWidth-is-from-llvm-APFloatBase.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:09:20 +0100
Subject: llvm50: integerPartWidth is from llvm::APFloatBase
Patch-mainline: no
Otherwise we see:
../lib/Expr/Expr.cpp:331:14: error: no member named 'integerPartWidth' in namespace 'llvm'; did you mean 'llvm::APFloatBase::integerPartWidth'?
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
lib/Expr/Expr.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/Expr/Expr.cpp b/lib/Expr/Expr.cpp
index f73d1614c250..5433d9211ead 100644
--- a/lib/Expr/Expr.cpp
+++ b/lib/Expr/Expr.cpp
@@ -328,7 +328,11 @@ ref<Expr> ConstantExpr::fromMemory(void *address, Width width) {
// FIXME: what about machines without x87 support?
default:
return ConstantExpr::alloc(llvm::APInt(width,
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ (width+llvm::APFloatBase::integerPartWidth-1)/llvm::APFloatBase::integerPartWidth,
+#else
(width+llvm::integerPartWidth-1)/llvm::integerPartWidth,
+#endif
(const uint64_t*)address));
}
}
--
2.15.1
++++++ 0016-llvm50-handle-getOrInsertFunction-terminator.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:27:54 +0100
Subject: llvm50: handle getOrInsertFunction terminator
Patch-mainline: no
llvm 5 does not terminate getOrInsertFunction parameters with NULL, take
care of that.
Since commit 9d54400bba7eb04bca80fce97fa170452d19eaf1.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
include/klee/Config/Version.h | 6 ++++++
lib/Module/Checks.cpp | 8 ++++----
lib/Module/IntrinsicCleaner.cpp | 2 +-
tools/klee/main.cpp | 20 ++++++++++----------
4 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/include/klee/Config/Version.h b/include/klee/Config/Version.h
index 532051602fe3..a02ce28baaae 100644
--- a/include/klee/Config/Version.h
+++ b/include/klee/Config/Version.h
@@ -27,4 +27,10 @@
# define KLEE_LLVM_CL_VAL_END , clEnumValEnd
#endif
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+# define KLEE_LLVM_GOIF_TERMINATOR
+#else
+# define KLEE_LLVM_GOIF_TERMINATOR , NULL
+#endif
+
#endif
diff --git a/lib/Module/Checks.cpp b/lib/Module/Checks.cpp
index aac63e1d9854..406b3045e527 100644
--- a/lib/Module/Checks.cpp
+++ b/lib/Module/Checks.cpp
@@ -57,8 +57,8 @@ bool DivCheckPass::runOnModule(Module &M) {
if (!divZeroCheckFunction) {
Constant *fc = M.getOrInsertFunction("klee_div_zero_check",
Type::getVoidTy(ctx),
- Type::getInt64Ty(ctx),
- NULL);
+ Type::getInt64Ty(ctx)
+ KLEE_LLVM_GOIF_TERMINATOR);
divZeroCheckFunction = cast<Function>(fc);
}
@@ -118,8 +118,8 @@ bool OvershiftCheckPass::runOnModule(Module &M) {
Constant *fc = M.getOrInsertFunction("klee_overshift_check",
Type::getVoidTy(ctx),
Type::getInt64Ty(ctx),
- Type::getInt64Ty(ctx),
- NULL);
+ Type::getInt64Ty(ctx)
+ KLEE_LLVM_GOIF_TERMINATOR);
overshiftCheckFunction = cast<Function>(fc);
}
diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp
index 2b93319f2615..c00c77699e18 100644
--- a/lib/Module/IntrinsicCleaner.cpp
+++ b/lib/Module/IntrinsicCleaner.cpp
@@ -208,7 +208,7 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
// a call of the abort() function.
Function *F = cast<Function>(
M.getOrInsertFunction(
- "abort", Type::getVoidTy(ctx), NULL));
+ "abort", Type::getVoidTy(ctx) KLEE_LLVM_GOIF_TERMINATOR));
F->setDoesNotReturn();
F->setDoesNotThrow();
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
index aeed018631ea..02748fbc0ee5 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -678,8 +678,8 @@ static int initEnv(Module *mainModule) {
cast<Function>(mainModule->getOrInsertFunction("klee_init_env",
Type::getVoidTy(ctx),
argcPtr->getType(),
- argvPtr->getType(),
- NULL));
+ argvPtr->getType()
+ KLEE_LLVM_GOIF_TERMINATOR));
assert(initEnvFn);
std::vector<Value*> args;
args.push_back(argcPtr);
@@ -1038,20 +1038,20 @@ static llvm::Module *linkWithUclibc(llvm::Module *mainModule, StringRef libDir)
mainModule->getOrInsertFunction("realpath",
PointerType::getUnqual(i8Ty),
PointerType::getUnqual(i8Ty),
- PointerType::getUnqual(i8Ty),
- NULL);
+ PointerType::getUnqual(i8Ty)
+ KLEE_LLVM_GOIF_TERMINATOR);
mainModule->getOrInsertFunction("getutent",
- PointerType::getUnqual(i8Ty),
- NULL);
+ PointerType::getUnqual(i8Ty)
+ KLEE_LLVM_GOIF_TERMINATOR);
mainModule->getOrInsertFunction("__fgetc_unlocked",
Type::getInt32Ty(ctx),
- PointerType::getUnqual(i8Ty),
- NULL);
+ PointerType::getUnqual(i8Ty)
+ KLEE_LLVM_GOIF_TERMINATOR);
mainModule->getOrInsertFunction("__fputc_unlocked",
Type::getInt32Ty(ctx),
Type::getInt32Ty(ctx),
- PointerType::getUnqual(i8Ty),
- NULL);
+ PointerType::getUnqual(i8Ty)
+ KLEE_LLVM_GOIF_TERMINATOR);
}
f = mainModule->getFunction("__ctype_get_mb_cur_max");
--
2.15.1
++++++ 0017-llvm50-SwitchInst-case-functions-now-return-pointers.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:38:35 +0100
Subject: llvm50: SwitchInst case functions now return pointers
Patch-mainline: no
Starting llvm 5, SwitchInst->findCaseValue() now has to be dereferenced
using ->. So do so, otherwise we see:
../lib/Core/Executor.cpp:1598:38: error: no member named 'getCaseSuccessor' in 'llvm::SwitchInst::CaseIteratorImpl<llvm::SwitchInst::CaseHandle>'; did you mean to use '->' instead of '.'?
BasicBlock *caseSuccessor = i.getCaseSuccessor();
^
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
lib/Core/Executor.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 093be697c7da..5fe5bf9c1346 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1571,7 +1571,11 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
// switch to an internal rep.
llvm::IntegerType *Ty = cast<IntegerType>(si->getCondition()->getType());
ConstantInt *ci = ConstantInt::get(Ty, CE->getZExtValue());
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ unsigned index = si->findCaseValue(ci)->getSuccessorIndex();
+#else
unsigned index = si->findCaseValue(ci).getSuccessorIndex();
+#endif
transferToBasicBlock(si->getSuccessor(index), si->getParent(), state);
} else {
// Handle possible different branch targets
--
2.15.1
++++++ 0018-llvm50-handle-new-file_magic-s-location.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 10:42:53 +0100
Subject: llvm50: handle new file_magic's location
Patch-mainline: no
llvm 5, moved file_magic to BinaryFormat in commit
19ca2b0f9daed883c21730285d7f04424e5f5f88, so adapt to that.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
`
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
lib/Module/ModuleUtil.cpp | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/Module/ModuleUtil.cpp b/lib/Module/ModuleUtil.cpp
index ad847de0b368..5f967410568c 100644
--- a/lib/Module/ModuleUtil.cpp
+++ b/lib/Module/ModuleUtil.cpp
@@ -14,6 +14,9 @@
#include "klee/Internal/Support/ErrorHandling.h"
#include "../Core/SpecialFunctionHandler.h"
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+#include "llvm/BinaryFormat/Magic.h"
+#endif
#include "llvm/IRReader/IRReader.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
@@ -477,7 +480,9 @@ Module *klee::linkWithLibrary(Module *module,
MemoryBuffer *Buffer = bufferErr->get();
#endif
-#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 6)
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ file_magic magic = identify_magic(Buffer.getBuffer());
+#elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 6)
sys::fs::file_magic magic = sys::fs::identify_magic(Buffer.getBuffer());
#else
sys::fs::file_magic magic = sys::fs::identify_magic(Buffer->getBuffer());
@@ -486,7 +491,11 @@ Module *klee::linkWithLibrary(Module *module,
LLVMContext &Context = module->getContext();
std::string ErrorMessage;
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ if (magic == file_magic::bitcode) {
+#else
if (magic == sys::fs::file_magic::bitcode) {
+#endif
#if LLVM_VERSION_CODE < LLVM_VERSION(3, 8)
Module *Result = 0;
#endif
@@ -538,7 +547,11 @@ Module *klee::linkWithLibrary(Module *module,
delete Result;
#endif
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ } else if (magic == file_magic::archive) {
+#else
} else if (magic == sys::fs::file_magic::archive) {
+#endif
#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 9)
Expected<std::unique_ptr<object::Binary> > arch =
object::createBinary(Buffer, &Context);
--
2.15.1
++++++ 0019-llvm50-use-MutableArrayRef-for-APFloat-convertToInte.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 11:07:47 +0100
Subject: llvm50: use MutableArrayRef for APFloat::convertToInteger
Patch-mainline: no
in llvm 5, since commit 957caa243d9270df37a566aedae3f1244e7b62ef, the
first parameter to APFloat::convertToInteger is MutableArrayRef. So
handle that.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
lib/Core/Executor.cpp | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 5fe5bf9c1346..44293f885136 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -2219,7 +2219,12 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
llvm::APFloat Arg(*fpWidthToSemantics(arg->getWidth()), arg->getAPValue());
uint64_t value = 0;
bool isExact = true;
- Arg.convertToInteger(&value, resultType, false,
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ MutableArrayRef<uint64_t> valueRef = makeMutableArrayRef(value);
+#else
+ uint64_t *valueRef = &value;
+#endif
+ Arg.convertToInteger(valueRef, resultType, false,
llvm::APFloat::rmTowardZero, &isExact);
bindLocal(ki, state, ConstantExpr::alloc(value, resultType));
break;
@@ -2236,7 +2241,12 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
uint64_t value = 0;
bool isExact = true;
- Arg.convertToInteger(&value, resultType, true,
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ MutableArrayRef<uint64_t> valueRef = makeMutableArrayRef(value);
+#else
+ uint64_t *valueRef = &value;
+#endif
+ Arg.convertToInteger(valueRef, resultType, true,
llvm::APFloat::rmTowardZero, &isExact);
bindLocal(ki, state, ConstantExpr::alloc(value, resultType));
break;
--
2.15.1
++++++ 0020-llvm50-AllocaInst-takes-address-space.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Mon, 15 Jan 2018 11:10:39 +0100
Subject: llvm50: AllocaInst takes address space
Patch-mainline: no
Add address space second parameter to new AllocaInst which is required
since llvm 5's commit e0b3c335a27ae50c4f339ffb81c18662bc983e52.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
tools/klee/main.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/tools/klee/main.cpp b/tools/klee/main.cpp
index 02748fbc0ee5..30100b19af3b 100644
--- a/tools/klee/main.cpp
+++ b/tools/klee/main.cpp
@@ -664,10 +664,18 @@ static int initEnv(Module *mainModule) {
Value *oldArgv = &*(++mainFn->arg_begin());
#endif
+#if LLVM_VERSION_CODE >= LLVM_VERSION(5, 0)
+ const DataLayout &DL = mainFn->getParent()->getDataLayout();
+ AllocaInst* argcPtr =
+ new AllocaInst(oldArgc->getType(), DL.getAllocaAddrSpace(), "argcPtr", firstInst);
+ AllocaInst* argvPtr =
+ new AllocaInst(oldArgv->getType(), DL.getAllocaAddrSpace(), "argvPtr", firstInst);
+#else
AllocaInst* argcPtr =
new AllocaInst(oldArgc->getType(), "argcPtr", firstInst);
AllocaInst* argvPtr =
new AllocaInst(oldArgv->getType(), "argvPtr", firstInst);
+#endif
/* Insert void klee_init_env(int* argc, char*** argv) */
std::vector<const Type*> params;
--
2.15.1
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.3WQrfy/_old 2018-01-31 19:53:58.971642402 +0100
+++ /var/tmp/diff_new_pack.3WQrfy/_new 2018-01-31 19:53:58.971642402 +0100
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/klee/klee.git</param>
- <param name="changesrevision">9caaae0b1b6e52be3c7bb783f3a8be659a1a1869</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">37f554d5cf587ec9f6befa359a0e3aa60e9ce73f</param></service></servicedata>
\ No newline at end of file
++++++ klee-1.4.0+20171026.tar.xz -> klee-1.4.0+20180108.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/.travis.yml new/klee-1.4.0+20180108/.travis.yml
--- old/klee-1.4.0+20171026/.travis.yml 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/.travis.yml 2018-01-08 12:09:12.000000000 +0100
@@ -77,7 +77,7 @@
matrix:
include:
- os: osx
- osx_image: xcode8.2
+ osx_image: xcode8.3
env: LLVM_VERSION=3.4 SOLVERS=STP:Z3 STP_VERSION=2.1.2 KLEE_UCLIBC=0 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 COVERAGE=0 USE_TCMALLOC=0
addons:
@@ -107,7 +107,7 @@
###########################################################################
# Update package information
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update; fi
- - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew tap andreamattavelli/klee; fi
+ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew tap klee/klee; fi
###########################################################################
# Set up out of source build directory
###########################################################################
@@ -123,7 +123,7 @@
- ${KLEE_SRC}/.travis/install-llvm-and-runtime-compiler.sh
- ${KLEE_SRC}/.travis/install-tcmalloc.sh
# Install lit (llvm-lit is not available)
- - sudo pip install lit
+ - sudo pip2 install lit
# Get SMT solvers
- ${KLEE_SRC}/.travis/solvers.sh
# Get needed utlities/libraries for testing KLEE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/include/klee/Config/config.h.in new/klee-1.4.0+20180108/include/klee/Config/config.h.in
--- old/klee-1.4.0+20171026/include/klee/Config/config.h.in 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/include/klee/Config/config.h.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,118 +0,0 @@
-/* include/klee/Config/config.h.in. Generated from autoconf/configure.tmp.ac by autoheader. */
-
-#ifndef KLEE_CONFIG_CONFIG_H
-#define KLEE_CONFIG_CONFIG_H
-
-/* Enable KLEE DEBUG checks */
-#undef ENABLE_KLEE_DEBUG
-
-/* Enable metaSMT API */
-#undef ENABLE_METASMT
-
-/* Using STP Solver backend */
-#undef ENABLE_STP
-
-/* Using Z3 Solver backend */
-#undef ENABLE_Z3
-
-/* Does the platform use __ctype_b_loc, etc. */
-#undef HAVE_CTYPE_EXTERNALS
-
-/* Define to 1 if you have the <gperftools/malloc_extension.h> header file. */
-#undef HAVE_GPERFTOOLS_MALLOC_EXTENSION_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if mallinfo() is available on this platform. */
-#undef HAVE_MALLINFO
-
-/* Define to 1 if you have the <malloc/malloc.h> header file. */
-#undef HAVE_MALLOC_MALLOC_H
-
-/* Define to 1 if you have the `malloc_zone_statistics' function. */
-#undef HAVE_MALLOC_ZONE_STATISTICS
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <selinux/selinux.h> header file. */
-#undef HAVE_SELINUX_SELINUX_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/acl.h> header file. */
-#undef HAVE_SYS_ACL_H
-
-/* Define to 1 if you have the <sys/capability.h> header file. */
-#undef HAVE_SYS_CAPABILITY_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Z3 needs a Z3_context passed to Z3_get_error_msg() */
-#undef HAVE_Z3_GET_ERROR_MSG_NEEDS_CONTEXT
-
-/* Define to 1 if you have the <zlib.h> header file. */
-#undef HAVE_ZLIB_H
-
-/* Enable time stamping the sources */
-#undef KLEE_ENABLE_TIMESTAMP
-
-/* Define to empty or 'const' depending on how SELinux qualifies its security
- context parameters. */
-#undef KLEE_SELINUX_CTX_CONST
-
-/* LLVM version is release (instead of development) */
-#undef LLVM_IS_RELEASE
-
-/* LLVM major version number */
-#undef LLVM_VERSION_MAJOR
-
-/* LLVM minor version number */
-#undef LLVM_VERSION_MINOR
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Configuration for runtime libraries */
-#undef RUNTIME_CONFIGURATION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* klee-uclibc is supported */
-#undef SUPPORT_KLEE_UCLIBC
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/include/klee/ExecutionState.h new/klee-1.4.0+20180108/include/klee/ExecutionState.h
--- old/klee-1.4.0+20171026/include/klee/ExecutionState.h 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/include/klee/ExecutionState.h 2018-01-08 12:09:12.000000000 +0100
@@ -13,6 +13,7 @@
#include "klee/Constraints.h"
#include "klee/Expr.h"
#include "klee/Internal/ADT/TreeStream.h"
+#include "klee/MergeHandler.h"
// FIXME: We do not want to be exposing these? :(
#include "../../lib/Core/AddressSpace.h"
@@ -145,6 +146,9 @@
void addFnAlias(std::string old_fn, std::string new_fn);
void removeFnAlias(std::string fn);
+ // The objects handling the klee_open_merge calls this state ran through
+ std::vector<ref<MergeHandler> > openMergeStack;
+
private:
ExecutionState() : ptreeNode(0) {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/include/klee/MergeHandler.h new/klee-1.4.0+20180108/include/klee/MergeHandler.h
--- old/klee-1.4.0+20171026/include/klee/MergeHandler.h 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/include/klee/MergeHandler.h 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,110 @@
+//===-- MergeHandler.h --------------------------------------------*- C++ -*-===//
+//
+// The KLEE Symbolic Virtual Machine
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+/**
+ * @file MergeHandler.h
+ * @brief Implementation of the region based merging
+ *
+ * ## Basic usage:
+ *
+ * @code{.cpp}
+ * klee_open_merge();
+ *
+ * code containing branches etc.
+ *
+ * klee_close_merge();
+ * @endcode
+ *
+ * Will lead to all states that forked from the state that executed the
+ * klee_open_merge() being merged in the klee_close_merge(). This allows for
+ * fine-grained regions to be specified for merging.
+ *
+ * # Implementation Structure
+ *
+ * The main part of the new functionality is implemented in the class
+ * klee::MergeHandler. The Special Function Handler generates an instance of
+ * this class every time a state runs into a klee_open_merge() call.
+ *
+ * This instance is appended to a `std::vector<klee::ref<klee::MergeHandler>>`
+ * in the ExecutionState that passed the merge open point. This stack is also
+ * copied during forks. We use a stack instead of a single instance to support
+ * nested merge regions.
+ *
+ * Once a state runs into a `klee_close_merge()`, the Special Function Handler
+ * notifies the top klee::MergeHandler in the state's stack, pauses the state
+ * from scheduling, and tries to merge it with all other states that already
+ * arrived at the same close merge point. This top instance is then popped from
+ * the stack, resulting in a decrease of the ref count of the
+ * klee::MergeHandler.
+ *
+ * Since the only references to this MergeHandler are in the stacks of
+ * the ExecutionStates currently in the merging region, once the ref count
+ * reaches zero, every state which ran into the same `klee_open_merge()` is now
+ * paused and waiting to be merged. The destructor of the MergeHandler
+ * then continues the scheduling of the corresponding paused states.
+*/
+
+#ifndef KLEE_MERGEHANDLER_H
+#define KLEE_MERGEHANDLER_H
+
+#include <vector>
+#include <map>
+#include <stdint.h>
+#include "llvm/Support/CommandLine.h"
+
+namespace llvm {
+class Instruction;
+}
+
+namespace klee {
+extern llvm::cl::opt<bool> UseMerge;
+
+extern llvm::cl::opt<bool> DebugLogMerge;
+
+class Executor;
+class ExecutionState;
+
+/// @brief Represents one `klee_open_merge()` call.
+/// Handles merging of states that branched from it
+class MergeHandler {
+private:
+ Executor *executor;
+
+ /// @brief Number of states that are tracked by this MergeHandler, that ran
+ /// into a relevant klee_close_merge
+ unsigned closedStateCount;
+
+ /// @brief Mapping the different 'klee_close_merge' calls to the states that ran into
+ /// them
+ std::map<llvm::Instruction *, std::vector<ExecutionState *> >
+ reachedMergeClose;
+
+public:
+
+ /// @brief Called when a state runs into a 'klee_close_merge()' call
+ void addClosedState(ExecutionState *es, llvm::Instruction *mp);
+
+ /// @brief True, if any states have run into 'klee_close_merge()' and have
+ /// not been released yet
+ bool hasMergedStates();
+
+ /// @brief Immediately release the merged states that have run into a
+ /// 'klee_merge_close()'
+ void releaseStates();
+
+ /// @brief Required by klee::ref objects
+ unsigned refCount;
+
+
+ MergeHandler(Executor *_executor);
+ ~MergeHandler();
+};
+}
+
+#endif /* KLEE_MERGEHANDLER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/include/klee/klee.h new/klee-1.4.0+20180108/include/klee/klee.h
--- old/klee-1.4.0+20171026/include/klee/klee.h 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/include/klee/klee.h 2018-01-08 12:09:12.000000000 +0100
@@ -152,6 +152,11 @@
/* Print range for given argument and tagged with name */
void klee_print_range(const char * name, int arg );
+ /* Open a merge */
+ void klee_open_merge();
+
+ /* Merge all paths of the state that went through klee_open_merge */
+ void klee_close_merge();
#ifdef __cplusplus
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/CMakeLists.txt new/klee-1.4.0+20180108/lib/Core/CMakeLists.txt
--- old/klee-1.4.0+20171026/lib/Core/CMakeLists.txt 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/CMakeLists.txt 2018-01-08 12:09:12.000000000 +0100
@@ -8,6 +8,7 @@
#===------------------------------------------------------------------------===#
klee_add_component(kleeCore
AddressSpace.cpp
+ MergeHandler.cpp
CallPathManager.cpp
Context.cpp
CoreStats.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/ExecutionState.cpp new/klee-1.4.0+20180108/lib/Core/ExecutionState.cpp
--- old/klee-1.4.0+20171026/lib/Core/ExecutionState.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/ExecutionState.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -116,7 +116,8 @@
coveredLines(state.coveredLines),
ptreeNode(state.ptreeNode),
symbolics(state.symbolics),
- arrayNames(state.arrayNames)
+ arrayNames(state.arrayNames),
+ openMergeStack(state.openMergeStack)
{
for (unsigned int i=0; i<symbolics.size(); i++)
symbolics[i].first->refCount++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/Executor.cpp new/klee-1.4.0+20180108/lib/Core/Executor.cpp
--- old/klee-1.4.0+20171026/lib/Core/Executor.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/Executor.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -2456,6 +2456,9 @@
void Executor::updateStates(ExecutionState *current) {
if (searcher) {
searcher->update(current, addedStates, removedStates);
+ searcher->update(nullptr, continuedStates, pausedStates);
+ pausedStates.clear();
+ continuedStates.clear();
}
states.insert(addedStates.begin(), addedStates.end());
@@ -2741,6 +2744,30 @@
return info.str();
}
+void Executor::pauseState(ExecutionState &state){
+ auto it = std::find(continuedStates.begin(), continuedStates.end(), &state);
+ // If the state was to be continued, but now gets paused again
+ if (it != continuedStates.end()){
+ // ...just don't continue it
+ std::swap(*it, continuedStates.back());
+ continuedStates.pop_back();
+ } else {
+ pausedStates.push_back(&state);
+ }
+}
+
+void Executor::continueState(ExecutionState &state){
+ auto it = std::find(pausedStates.begin(), pausedStates.end(), &state);
+ // If the state was to be paused, but now gets continued again
+ if (it != pausedStates.end()){
+ // ...don't pause it
+ std::swap(*it, pausedStates.back());
+ pausedStates.pop_back();
+ } else {
+ continuedStates.push_back(&state);
+ }
+}
+
void Executor::terminateState(ExecutionState &state) {
if (replayKTest && replayPosition!=replayKTest->numObjects) {
klee_warning_once(replayKTest,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/Executor.h new/klee-1.4.0+20180108/lib/Core/Executor.h
--- old/klee-1.4.0+20171026/lib/Core/Executor.h 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/Executor.h 2018-01-08 12:09:12.000000000 +0100
@@ -69,6 +69,7 @@
class StatsTracker;
class TimingSolver;
class TreeStreamWriter;
+ class MergeHandler;
template<class T> class ref;
@@ -78,13 +79,12 @@
/// removedStates, and haltExecution, among others.
class Executor : public Interpreter {
- friend class BumpMergingSearcher;
- friend class MergingSearcher;
friend class RandomPathSearcher;
friend class OwningSearcher;
friend class WeightedRandomSearcher;
friend class SpecialFunctionHandler;
friend class StatsTracker;
+ friend class MergeHandler;
public:
class Timer {
@@ -144,6 +144,13 @@
/// \invariant \ref addedStates and \ref removedStates are disjoint.
std::vector<ExecutionState *> removedStates;
+ /// Used to track states that are not terminated, but should not
+ /// be scheduled by the searcher.
+ std::vector<ExecutionState *> pausedStates;
+ /// States that were 'paused' from scheduling, that now may be
+ /// scheduled again
+ std::vector<ExecutionState *> continuedStates;
+
/// When non-empty the Executor is running in "seed" mode. The
/// states in this map will be executed in an arbitrary order
/// (outside the normal search interface) until they terminate. When
@@ -389,6 +396,10 @@
bool shouldExitOn(enum TerminateReason termReason);
+ // remove state from searcher only
+ void pauseState(ExecutionState& state);
+ // add state to searcher only
+ void continueState(ExecutionState& state);
// remove state from queue and delete
void terminateState(ExecutionState &state);
// call exit handler and terminate state
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/MergeHandler.cpp new/klee-1.4.0+20180108/lib/Core/MergeHandler.cpp
--- old/klee-1.4.0+20171026/lib/Core/MergeHandler.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/lib/Core/MergeHandler.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,76 @@
+//===-- MergeHandler.cpp --------------------------------------------------===//
+//
+// The KLEE Symbolic Virtual Machine
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "klee/MergeHandler.h"
+
+#include "CoreStats.h"
+#include "Executor.h"
+#include "klee/ExecutionState.h"
+
+namespace klee {
+llvm::cl::opt<bool>
+ UseMerge("use-merge",
+ llvm::cl::init(false),
+ llvm::cl::desc("Enable support for klee_open_merge() and klee_close_merge() (experimental)"));
+
+llvm::cl::opt<bool>
+ DebugLogMerge("debug-log-merge",
+ llvm::cl::init(false),
+ llvm::cl::desc("Enhanced verbosity for region based merge operations"));
+
+void MergeHandler::addClosedState(ExecutionState *es,
+ llvm::Instruction *mp) {
+ auto closePoint = reachedMergeClose.find(mp);
+
+ // If no other state has yet encountered this klee_close_merge instruction,
+ // add a new element to the map
+ if (closePoint == reachedMergeClose.end()) {
+ reachedMergeClose[mp].push_back(es);
+ executor->pauseState(*es);
+ } else {
+ // Otherwise try to merge with any state in the map element for this
+ // instruction
+ auto &cpv = closePoint->second;
+ bool mergedSuccessful = false;
+
+ for (auto& mState: cpv) {
+ if (mState->merge(*es)) {
+ executor->terminateState(*es);
+ mergedSuccessful = true;
+ break;
+ }
+ }
+ if (!mergedSuccessful) {
+ cpv.push_back(es);
+ executor->pauseState(*es);
+ }
+ }
+}
+
+void MergeHandler::releaseStates() {
+ for (auto& curMergeGroup: reachedMergeClose) {
+ for (auto curState: curMergeGroup.second) {
+ executor->continueState(*curState);
+ }
+ }
+ reachedMergeClose.clear();
+}
+
+bool MergeHandler::hasMergedStates() {
+ return (!reachedMergeClose.empty());
+}
+
+MergeHandler::MergeHandler(Executor *_executor)
+ : executor(_executor), refCount(0) {
+}
+
+MergeHandler::~MergeHandler() {
+ releaseStates();
+}
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/Searcher.cpp new/klee-1.4.0+20180108/lib/Core/Searcher.cpp
--- old/klee-1.4.0+20171026/lib/Core/Searcher.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/Searcher.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -42,11 +42,6 @@
using namespace klee;
using namespace llvm;
-namespace {
- cl::opt<bool>
- DebugLogMerge("debug-log-merge");
-}
-
namespace klee {
extern RNG theRNG;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/SpecialFunctionHandler.cpp new/klee-1.4.0+20180108/lib/Core/SpecialFunctionHandler.cpp
--- old/klee-1.4.0+20171026/lib/Core/SpecialFunctionHandler.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/SpecialFunctionHandler.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -10,6 +10,7 @@
#include "Memory.h"
#include "SpecialFunctionHandler.h"
#include "TimingSolver.h"
+#include "klee/MergeHandler.h"
#include "klee/ExecutionState.h"
@@ -28,6 +29,7 @@
#include "llvm/IR/DataLayout.h"
#include <errno.h>
+#include <sstream>
using namespace llvm;
using namespace klee;
@@ -92,6 +94,8 @@
add("klee_is_symbolic", handleIsSymbolic, true),
add("klee_make_symbolic", handleMakeSymbolic, false),
add("klee_mark_global", handleMarkGlobal, false),
+ add("klee_open_merge", handleOpenMerge, false),
+ add("klee_close_merge", handleCloseMerge, false),
add("klee_prefer_cex", handlePreferCex, false),
add("klee_posix_prefer_cex", handlePosixPreferCex, false),
add("klee_print_expr", handlePrintExpr, false),
@@ -324,6 +328,43 @@
readStringAtAddress(state, arguments[3]).c_str());
}
+void SpecialFunctionHandler::handleOpenMerge(ExecutionState &state,
+ KInstruction *target,
+ std::vector<ref<Expr> > &arguments) {
+ if (!UseMerge) {
+ klee_warning_once(0, "klee_open_merge ignored, use '-use-merge'");
+ return;
+ }
+
+ state.openMergeStack.push_back(
+ ref<MergeHandler>(new MergeHandler(&executor)));
+
+ if (DebugLogMerge)
+ llvm::errs() << "open merge: " << &state << "\n";
+}
+
+void SpecialFunctionHandler::handleCloseMerge(ExecutionState &state,
+ KInstruction *target,
+ std::vector<ref<Expr> > &arguments) {
+ if (!UseMerge) {
+ klee_warning_once(0, "klee_close_merge ignored, use '-use-merge'");
+ return;
+ }
+ Instruction *i = target->inst;
+
+ if (DebugLogMerge)
+ llvm::errs() << "close merge: " << &state << " at " << i << '\n';
+
+ if (state.openMergeStack.empty()) {
+ std::ostringstream warning;
+ warning << &state << " ran into a close at " << i << " without a preceding open\n";
+ klee_warning(warning.str().c_str());
+ } else {
+ state.openMergeStack.back()->addClosedState(&state, i);
+ state.openMergeStack.pop_back();
+ }
+}
+
void SpecialFunctionHandler::handleNew(ExecutionState &state,
KInstruction *target,
std::vector<ref<Expr> > &arguments) {
@@ -665,15 +706,22 @@
std::vector<ref<Expr> > &arguments) {
std::string name;
- // FIXME: For backwards compatibility, we should eventually enforce the
- // correct arguments.
- if (arguments.size() == 2) {
+ // FIXME: For backwards compatibility. We should eventually enforce the
+ // correct arguments and types.
+ switch (arguments.size()) {
+ case 2:
+ klee_warning("klee_make_symbolic: deprecated number of arguments (2 instead of 3)");
+ break;
+ case 3:
+ name = readStringAtAddress(state, arguments[2]);
+ break;
+ default:
+ executor.terminateStateOnError(state, "illegal number of arguments to klee_make_symbolic(void*, size_t, char*)", Executor::User);
+ return;
+ }
+ if (name.length() == 0) {
name = "unnamed";
- } else {
- // FIXME: Should be a user.err, not an assert.
- assert(arguments.size()==3 &&
- "invalid number of arguments to klee_make_symbolic");
- name = readStringAtAddress(state, arguments[2]);
+ klee_warning("klee_make_symbolic: renamed empty name to \"unnamed\"");
}
Executor::ExactResolutionList rl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/SpecialFunctionHandler.h new/klee-1.4.0+20180108/lib/Core/SpecialFunctionHandler.h
--- old/klee-1.4.0+20171026/lib/Core/SpecialFunctionHandler.h 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/SpecialFunctionHandler.h 2018-01-08 12:09:12.000000000 +0100
@@ -116,6 +116,8 @@
HANDLER(handleMakeSymbolic);
HANDLER(handleMalloc);
HANDLER(handleMarkGlobal);
+ HANDLER(handleOpenMerge);
+ HANDLER(handleCloseMerge);
HANDLER(handleNew);
HANDLER(handleNewArray);
HANDLER(handlePreferCex);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/lib/Core/UserSearcher.cpp new/klee-1.4.0+20180108/lib/Core/UserSearcher.cpp
--- old/klee-1.4.0+20171026/lib/Core/UserSearcher.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/lib/Core/UserSearcher.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -13,6 +13,8 @@
#include "Executor.h"
#include "klee/Internal/Support/ErrorHandling.h"
+#include "klee/CommandLine.h"
+
#include "llvm/Support/CommandLine.h"
using namespace llvm;
@@ -58,8 +60,13 @@
void klee::initializeSearchOptions() {
// default values
if (CoreSearch.empty()) {
- CoreSearch.push_back(Searcher::RandomPath);
- CoreSearch.push_back(Searcher::NURS_CovNew);
+ if (UseMerge){
+ CoreSearch.push_back(Searcher::NURS_CovNew);
+ klee_warning("--use-merge enabled. Using NURS_CovNew as default searcher.");
+ } else {
+ CoreSearch.push_back(Searcher::RandomPath);
+ CoreSearch.push_back(Searcher::NURS_CovNew);
+ }
}
}
@@ -104,6 +111,12 @@
searcher = new InterleavedSearcher(s);
}
+ if (UseMerge) {
+ if (std::find(CoreSearch.begin(), CoreSearch.end(), Searcher::RandomPath) != CoreSearch.end()){
+ klee_error("use-merge currently does not support random-path, please use another search strategy");
+ }
+ }
+
if (UseBatchingSearch) {
searcher = new BatchingSearcher(searcher, BatchTime, BatchInstructions);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/CMakeLists.txt new/klee-1.4.0+20180108/test/CMakeLists.txt
--- old/klee-1.4.0+20171026/test/CMakeLists.txt 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/test/CMakeLists.txt 2018-01-08 12:09:12.000000000 +0100
@@ -7,6 +7,7 @@
#
#===------------------------------------------------------------------------===#
+set(LIT_AUTOGENERATED_WARNING "This file is autogenerated, do not edit!")
set(KLEE_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin")
set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
# FIXME: Do this to avoid changing the template file that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Feature/MakeSymbolicAPI.c new/klee-1.4.0+20180108/test/Feature/MakeSymbolicAPI.c
--- old/klee-1.4.0+20171026/test/Feature/MakeSymbolicAPI.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Feature/MakeSymbolicAPI.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,19 @@
+// RUN: %llvmgcc %s -emit-llvm -g -c -o %t1.bc
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out %t1.bc 2> %t.stderr.log
+// RUN: FileCheck %s -check-prefix=CHECK-WRN --input-file=%t.klee-out/warnings.txt
+// RUN: FileCheck %s -check-prefix=CHECK-ERR --input-file=%t.stderr.log
+
+int main() {
+ unsigned a, b, c;
+
+ klee_make_symbolic(&a, sizeof(a), "");
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: renamed empty name to "unnamed"
+
+ klee_make_symbolic(&b, sizeof(b));
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: deprecated number of arguments (2 instead of 3)
+// CHECK-WRN: KLEE: WARNING: klee_make_symbolic: renamed empty name to "unnamed"
+
+ klee_make_symbolic(&c);
+// CHECK-ERR: KLEE: ERROR: {{.*}} illegal number of arguments to klee_make_symbolic(void*, size_t, char*)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/batching_break.c new/klee-1.4.0+20180108/test/Merging/batching_break.c
--- old/klee-1.4.0+20171026/test/Merging/batching_break.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/batching_break.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,42 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+
+// CHECK: open merge:
+// CHECK: close merge:
+// CHECK: KLEE: done: generated tests = 3{{$}}
+
+#include <klee/klee.h>
+
+int main(int argc, char** args){
+
+ int x;
+ int p;
+ int i;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+ x = x % 20;
+
+ klee_open_merge();
+ for (i = 0; i < x; ++i){
+ if (x % 3 == 0){
+ klee_close_merge();
+ if (x > 10){
+ return 1;
+ } else {
+ return 2;
+ }
+ }
+ }
+ klee_close_merge();
+
+ klee_open_merge();
+ if (x > 10){
+ p = 1;
+ } else {
+ p = 2;
+ }
+ klee_close_merge();
+ return p;
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/easy_merge.c new/klee-1.4.0+20180108/test/Merging/easy_merge.c
--- old/klee-1.4.0+20171026/test/Merging/easy_merge.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/easy_merge.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,44 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=bfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=dfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge %t.bc 2>&1 | FileCheck %s
+
+// CHECK: open merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: generated tests = 2{{$}}
+#include <klee/klee.h>
+
+int main(int argc, char** args){
+
+ int x;
+ int a;
+ int foo = 0;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+ klee_make_symbolic(&a, sizeof(a), "a");
+
+ if (a == 0){
+ klee_open_merge();
+
+ if (x == 1) {
+ foo = 5;
+ } else if (x == 2) {
+ foo = 6;
+ } else {
+ foo = 7;
+ }
+
+ klee_close_merge();
+ }
+
+ return foo;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/indirect_value.c new/klee-1.4.0+20180108/test/Merging/indirect_value.c
--- old/klee-1.4.0+20171026/test/Merging/indirect_value.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/indirect_value.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,32 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew --use-batching-search %t.bc 2>&1 | FileCheck %s
+
+// CHECK: generated tests = 2{{$}}
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <klee/klee.h>
+
+int main(int argc, char** argv) {
+
+ int sym = klee_int("sym");
+ int* heap_int = calloc(1, sizeof(*heap_int));
+
+ klee_open_merge();
+
+ if(sym != 0) {
+ *heap_int = 1;
+ }
+
+ klee_close_merge();
+
+ klee_print_expr("*heap_int: ", *heap_int);
+ if(*heap_int != 0) {
+ printf("true\n");
+ } else {
+ printf("false\n");
+ }
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/loop_merge.c new/klee-1.4.0+20180108/test/Merging/loop_merge.c
--- old/klee-1.4.0+20171026/test/Merging/loop_merge.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/loop_merge.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,38 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=bfs %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=dfs %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+
+// CHECK: open merge:
+// There will be 20 'close merge' statements. Only checking a few, the generated
+// test count will confirm that the merge was closed correctly
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: generated tests = 2{{$}}
+
+#include <klee/klee.h>
+
+int main(int argc, char** args){
+
+ int x;
+ int i;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+ x = x % 20;
+
+ klee_open_merge();
+ for (i = 0; i < x; ++i){
+ if (x % 3 == 0){
+ klee_close_merge();
+ return 1;
+ }
+ }
+ klee_close_merge();
+
+ return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/merge_fail.c new/klee-1.4.0+20180108/test/Merging/merge_fail.c
--- old/klee-1.4.0+20171026/test/Merging/merge_fail.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/merge_fail.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,36 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=bfs %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=dfs %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+
+// CHECK: open merge:
+// CHECK: generated tests = 2{{$}}
+
+// This test will not merge because we cannot merge states when they allocated memory.
+
+#include <klee/klee.h>
+
+int main(int argc, char **args) {
+
+ int* arr = 0;
+ int a = 0;
+
+ klee_make_symbolic(&a, sizeof(a), "a");
+
+ klee_open_merge();
+ if (a == 0) {
+ arr = (int*) malloc(7 * sizeof(int));
+ arr[0] = 7;
+ } else {
+ arr = (int*) malloc(8 * sizeof(int));
+ arr[0] = 8;
+ }
+ klee_close_merge();
+ a = arr[0];
+ free(arr);
+
+ return a;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/nested_merge.c new/klee-1.4.0+20180108/test/Merging/nested_merge.c
--- old/klee-1.4.0+20171026/test/Merging/nested_merge.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/nested_merge.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,48 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=bfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=dfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+
+// CHECK: open merge:
+// 5 close merges
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: generated tests = 1{{$}}
+
+#include <klee/klee.h>
+
+int main(int argc, char **args) {
+
+ int x;
+ int a;
+ int foo = 0;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+ klee_make_symbolic(&a, sizeof(a), "a");
+
+ klee_open_merge();
+ if (a == 0) {
+ klee_open_merge();
+
+ if (x == 1) {
+ foo = 5;
+ } else if (x == 2) {
+ foo = 6;
+ } else {
+ foo = 7;
+ }
+
+ klee_close_merge();
+ }
+ klee_close_merge();
+
+ return foo;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/split_merge.c new/klee-1.4.0+20180108/test/Merging/split_merge.c
--- old/klee-1.4.0+20171026/test/Merging/split_merge.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/split_merge.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,41 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=bfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=dfs --use-batching-search %t.bc 2>&1 | FileCheck %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --debug-log-merge --search=nurs:covnew %t.bc 2>&1 | FileCheck %s
+
+
+// CHECK: open merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: close merge:
+// CHECK: generated tests = 2{{$}}
+
+#include <klee/klee.h>
+
+int main(int argc, char** args){
+
+ int x;
+ int foo = 0;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+
+ klee_open_merge();
+
+ if (x == 1){
+ foo = 5;
+ } else if (x == 2){
+ klee_close_merge();
+ return 6;
+ } else {
+ foo = 7;
+ }
+
+ klee_close_merge();
+
+ return foo;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/Merging/unexpected_close.c new/klee-1.4.0+20180108/test/Merging/unexpected_close.c
--- old/klee-1.4.0+20171026/test/Merging/unexpected_close.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/Merging/unexpected_close.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,35 @@
+// RUN: %llvmgcc -emit-llvm -g -c -o %t.bc %s
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out --use-merge --search=nurs:covnew --max-time=2 %t.bc
+
+// CHECK: ran into a close at
+// CHECK: generated tests = 2{{$}}
+
+#include <klee/klee.h>
+
+int main(int argc, char **args) {
+
+ int x;
+ int a;
+ int foo = 0;
+
+ klee_make_symbolic(&x, sizeof(x), "x");
+ klee_make_symbolic(&a, sizeof(a), "a");
+
+ if (a == 0) {
+ klee_open_merge();
+
+ if (x == 1) {
+ foo = 5;
+ } else if (x == 2) {
+ foo = 6;
+ } else {
+ foo = 7;
+ }
+
+ klee_close_merge();
+ }
+ klee_close_merge();
+
+ return foo;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/lit.site.cfg.in new/klee-1.4.0+20180108/test/lit.site.cfg.in
--- old/klee-1.4.0+20171026/test/lit.site.cfg.in 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/test/lit.site.cfg.in 2018-01-08 12:09:12.000000000 +0100
@@ -1,5 +1,9 @@
-## Autogenerated by LLVM/Clang configuration.
-# Do not edit!
+################################################################################
+#
+# @LIT_AUTOGENERATED_WARNING@
+#
+################################################################################
+
config.klee_src_root = "@KLEE_SOURCE_DIR@"
config.klee_obj_root = "@KLEE_BINARY_DIR@"
config.klee_tools_dir = "@KLEE_TOOLS_DIR@"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/regression/2016-11-24-bitcast-weak-alias.c new/klee-1.4.0+20180108/test/regression/2016-11-24-bitcast-weak-alias.c
--- old/klee-1.4.0+20171026/test/regression/2016-11-24-bitcast-weak-alias.c 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/test/regression/2016-11-24-bitcast-weak-alias.c 2018-01-08 12:09:12.000000000 +0100
@@ -1,7 +1,7 @@
// REQUIRES: not-darwin
// RUN: %llvmgcc %s -Wall -emit-llvm -g -O0 -c -o %t.bc
// RUN: rm -rf %t.klee-out
-// RUN: klee --output-dir=%t.klee-out -exit-on-error -search=nurs:covnew %t.bc DUMMY_ARG >%t1.log 2>&1
+// RUN: %klee --output-dir=%t.klee-out -exit-on-error -search=nurs:covnew %t.bc DUMMY_ARG >%t1.log 2>&1
// RUN: FileCheck -input-file=%t1.log %s
// This test case is designed to cover code in `klee::getDirectCallTarget(CallSite)`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/test/regression/2017-11-01-test-with-empty-varname.c new/klee-1.4.0+20180108/test/regression/2017-11-01-test-with-empty-varname.c
--- old/klee-1.4.0+20171026/test/regression/2017-11-01-test-with-empty-varname.c 1970-01-01 01:00:00.000000000 +0100
+++ new/klee-1.4.0+20180108/test/regression/2017-11-01-test-with-empty-varname.c 2018-01-08 12:09:12.000000000 +0100
@@ -0,0 +1,11 @@
+// RUN: %llvmgcc %s -emit-llvm -g -c -o %t1.bc
+// RUN: rm -rf %t.klee-out
+// RUN: %klee --output-dir=%t.klee-out %t1.bc
+// RUN: FileCheck %s --input-file=%t.klee-out/warnings.txt
+
+int main() {
+ unsigned a;
+
+ klee_make_symbolic(&a, sizeof(a), "");
+// CHECK-NOT: KLEE: WARNING: unable to write output test case, losing it
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-1.4.0+20171026/tools/klee/main.cpp new/klee-1.4.0+20180108/tools/klee/main.cpp
--- old/klee-1.4.0+20171026/tools/klee/main.cpp 2017-10-26 16:50:55.000000000 +0200
+++ new/klee-1.4.0+20180108/tools/klee/main.cpp 2018-01-08 12:09:12.000000000 +0100
@@ -718,6 +718,8 @@
"klee_is_symbolic",
"klee_make_symbolic",
"klee_mark_global",
+ "klee_open_merge",
+ "klee_close_merge",
"klee_prefer_cex",
"klee_posix_prefer_cex",
"klee_print_expr",
++++++ klee-skip-some-tests.patch ++++++
From: Jiri Slaby <jirislaby(a)gmail.com>
Date: Thu, 15 Jun 2017 15:20:49 +0200
Subject: klee: skip some tests
Patch-mainline: no
Some of the tests trigger FAILURE occasionally. The reason is unknown
yet. So mark them as to require an unknown prerequisite to disable the
tests completely.
Signed-off-by: Jiri Slaby <jirislaby(a)gmail.com>
---
test/Concrete/ConstantExpr.llvm37.ll | 1 +
1 file changed, 1 insertion(+)
--- a/test/Concrete/ConstantExpr.llvm37.ll
+++ b/test/Concrete/ConstantExpr.llvm37.ll
@@ -1,3 +1,4 @@
+; REQUIRES: bubak
; REQUIRES: geq-llvm-3.7
; RUN: %S/ConcreteTest.py --klee='%klee' --lli=%lli %s
1
0
Hello community,
here is the log from the commit of package yast2-iscsi-lio-server for openSUSE:Factory checked in at 2018-01-31 19:53:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-iscsi-lio-server (Old)
and /work/SRC/openSUSE:Factory/.yast2-iscsi-lio-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-iscsi-lio-server"
Wed Jan 31 19:53:22 2018 rev:22 rq:571286 version:4.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-iscsi-lio-server/yast2-iscsi-lio-server.changes 2018-01-30 15:44:41.277808620 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-iscsi-lio-server.new/yast2-iscsi-lio-server.changes 2018-01-31 19:53:53.231909328 +0100
@@ -1,0 +2,11 @@
+Tue Jan 30 13:50:53 UTC 2018 - lszhu(a)suse.com
+
+- fate#323460, fate#319238
+- Add firewalld read / write
+- Rename required backend package to python3-targetcli-fb
+- Add message when failed to install python3-targetcli-fb
+- Remove message which shown when user set userid = mutual_userid
+ Not leak this message since kernel keep slience.
+-4.0.2
+
+-------------------------------------------------------------------
Old:
----
yast2-iscsi-lio-server-4.0.1.tar.bz2
New:
----
yast2-iscsi-lio-server-4.0.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-iscsi-lio-server.spec ++++++
--- /var/tmp/diff_new_pack.D6DWAn/_old 2018-01-31 19:53:55.399808510 +0100
+++ /var/tmp/diff_new_pack.D6DWAn/_new 2018-01-31 19:53:55.407808137 +0100
@@ -17,7 +17,7 @@
Name: yast2-iscsi-lio-server
-Version: 4.0.1
+Version: 4.0.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-iscsi-lio-server-4.0.1.tar.bz2 -> yast2-iscsi-lio-server-4.0.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-iscsi-lio-server-4.0.1/package/yast2-iscsi-lio-server.changes new/yast2-iscsi-lio-server-4.0.2/package/yast2-iscsi-lio-server.changes
--- old/yast2-iscsi-lio-server-4.0.1/package/yast2-iscsi-lio-server.changes 2018-01-30 08:45:53.000000000 +0100
+++ new/yast2-iscsi-lio-server-4.0.2/package/yast2-iscsi-lio-server.changes 2018-01-31 09:09:55.000000000 +0100
@@ -1,4 +1,15 @@
-------------------------------------------------------------------
+Tue Jan 30 13:50:53 UTC 2018 - lszhu(a)suse.com
+
+- fate#323460, fate#319238
+- Add firewalld read / write
+- Rename required backend package to python3-targetcli-fb
+- Add message when failed to install python3-targetcli-fb
+- Remove message which shown when user set userid = mutual_userid
+ Not leak this message since kernel keep slience.
+-4.0.2
+
+-------------------------------------------------------------------
Fri Jan 26 11:52:12 UTC 2018 - knut.anderssen(a)suse.com
- Replace SuSEFirewall2 by firewalld (fate#323460)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-iscsi-lio-server-4.0.1/package/yast2-iscsi-lio-server.spec new/yast2-iscsi-lio-server-4.0.2/package/yast2-iscsi-lio-server.spec
--- old/yast2-iscsi-lio-server-4.0.1/package/yast2-iscsi-lio-server.spec 2018-01-30 08:45:53.000000000 +0100
+++ new/yast2-iscsi-lio-server-4.0.2/package/yast2-iscsi-lio-server.spec 2018-01-31 09:09:55.000000000 +0100
@@ -17,7 +17,7 @@
Name: yast2-iscsi-lio-server
-Version: 4.0.1
+Version: 4.0.2
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-iscsi-lio-server-4.0.1/src/clients/iscsi-lio-server.rb new/yast2-iscsi-lio-server-4.0.2/src/clients/iscsi-lio-server.rb
--- old/yast2-iscsi-lio-server-4.0.1/src/clients/iscsi-lio-server.rb 2018-01-30 08:45:53.000000000 +0100
+++ new/yast2-iscsi-lio-server-4.0.2/src/clients/iscsi-lio-server.rb 2018-01-31 09:09:55.000000000 +0100
@@ -5,6 +5,7 @@
require "ui/service_status"
require "yast"
require "yast2/execute"
+require "y2firewall/firewalld"
Yast.import "CWM"
Yast.import "CWMTab"
@@ -29,7 +30,7 @@
end
def installed_packages
- if !PackageSystem.PackageInstalled("targetcli-fb")
+ if !PackageSystem.PackageInstalled("python3-targetcli-fb")
confirm = Popup.AnyQuestionRichText(
"",
_("Yast iscsi-lio-server can't run without installing targetcli-fb package. Do you want to install?"),
@@ -41,22 +42,28 @@
)
if confirm
- PackageSystem.DoInstall(["targetcli-fb"])
- if PackageSystem.PackageInstalled("targetcli-fb")
- true
+ PackageSystem.DoInstall(["python3-targetcli-fb"])
+ if PackageSystem.PackageInstalled("python3-targetcli-fb")
+ return true
else
+ err_msg = _("Failed to install targetcli-fb and related packages.")
+ Yast::Popup.Error(err_msg)
false
end
end
- false
else
true
end
end
+ def firewalld
+ Y2Firewall::Firewalld.instance
+ end
+
def run
textdomain "iscsi-lio-server"
msg = ""
+ firewalld.read
global_tab = GlobalTab.new
targets_tab = TargetsTab.new
service_tab = ServiceTab.new
@@ -66,6 +73,7 @@
ret = CWM.show(contents, caption: _("Yast iSCSI Targets"),next_button: _("Finish"))
Yast::Wizard.CloseDialog
if ret == :next
+ firewalld.write
status = $discovery_auth.fetch_status
userid = $discovery_auth.fetch_userid
password = $discovery_auth.fetch_password
@@ -88,11 +96,6 @@
p1 += ("mutual_password=" + mutual_password)
end
p1 += " enable=1"
- if userid == mutual_userid
- msg = _("It seems that Authentication by Initiators and Authentication by Targets using a same username")
- msg += _("This may cause a CHAP negotiation error, an authenticaiton failure.")
- Yast::Popup.Error(msg)
- end
else
p1 = "iscsi/ set discovery_auth enable = 0"
end
@@ -125,4 +128,4 @@
$global_data.execute_init_commands
$discovery_auth = DiscoveryAuth.new
iscsi_target_server.run
-end
\ No newline at end of file
+end
1
0
Hello community,
here is the log from the commit of package platformsh-cli for openSUSE:Factory checked in at 2018-01-31 19:53:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/platformsh-cli (Old)
and /work/SRC/openSUSE:Factory/.platformsh-cli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "platformsh-cli"
Wed Jan 31 19:53:17 2018 rev:34 rq:571273 version:3.28.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/platformsh-cli/platformsh-cli.changes 2018-01-24 15:32:19.389258493 +0100
+++ /work/SRC/openSUSE:Factory/.platformsh-cli.new/platformsh-cli.changes 2018-01-31 19:53:45.016291392 +0100
@@ -1,0 +2,17 @@
+Wed Jan 31 03:51:19 UTC 2018 - jimmy(a)boombatower.com
+
+- Update to version 3.28.0:
+ * Update manifest for rebuild of v3.28.0
+ * Release v3.28.0
+ * Update dependencies (mainly Symfony 3.4.2 -> 3.4.4)
+ * Add activity state in log
+ * Fix inverted requirement of -e/-a in activity:list and activity:log
+ * Add activity duration and simplify log output
+ * Add activity:get command
+ * Add --date-fmt option to `activity:list` and `snapshot:list`.
+ * Respect date.timezone and allow TZ env var
+ * Fix existing aliases being prefixed with "@" (#679)
+ * Avoid fatal if an InvalidConfigException is encountered during updateDrushAliases()
+ * Use -t instead of RequestTty, for OpenSSH <5.9
+
+-------------------------------------------------------------------
Old:
----
platformsh-cli-3.27.2.tar.xz
New:
----
platformsh-cli-3.28.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ platformsh-cli.spec ++++++
--- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.228235031 +0100
+++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.232234845 +0100
@@ -17,7 +17,7 @@
Name: platformsh-cli
-Version: 3.27.2
+Version: 3.28.0
Release: 0
Summary: Tool for managing Platform.sh services from the command line
# See licenses.txt for dependency licenses.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.268233171 +0100
+++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.268233171 +0100
@@ -2,7 +2,7 @@
<service name="tar_scm" mode="disabled">
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
- <param name="revision">refs/tags/v3.27.2</param>
+ <param name="revision">refs/tags/v3.28.0</param>
<param name="url">git://github.com/platformsh/platformsh-cli.git</param>
<param name="scm">git</param>
<param name="changesgenerate">enable</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.304231497 +0100
+++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.308231311 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/platformsh/platformsh-cli.git</param>
- <param name="changesrevision">52ea816bec0b04d68feeac9109cf3a1e0d551364</param>
+ <param name="changesrevision">c6a6802cd9b738a9a3234fe32e4476c74ba98c6c</param>
</service>
</servicedata>
++++++ licenses.txt ++++++
--- /var/tmp/diff_new_pack.vNCo2R/_old 2018-01-31 19:53:46.372228335 +0100
+++ /var/tmp/diff_new_pack.vNCo2R/_new 2018-01-31 19:53:46.376228149 +0100
@@ -10,25 +10,25 @@
doctrine/cache v1.6.2 MIT
firebase/php-jwt v2.2.0 BSD-3-Clause
guzzlehttp/cache-subscriber 0.1.0 MIT
-guzzlehttp/guzzle 5.3.1 MIT
+guzzlehttp/guzzle 5.3.2 MIT
guzzlehttp/ringphp 1.1.0 MIT
guzzlehttp/streams 3.0.0 MIT
padraic/humbug_get_contents 1.0.4 BSD-3-Clause
padraic/phar-updater 1.0.4 BSD-3-Clause
paragonie/random_compat v2.0.11 MIT
-platformsh/client v0.14.0 MIT
+platformsh/client v0.14.1 MIT
platformsh/console-form v0.0.15 MIT
psr/container 1.0.0 MIT
psr/log 1.0.2 MIT
react/promise v2.5.1 MIT
stecman/symfony-console-completion 0.7.0 MIT
-symfony/config v3.4.2 MIT
-symfony/console v3.4.2 MIT
-symfony/debug v3.4.2 MIT
-symfony/dependency-injection v3.4.2 MIT
-symfony/event-dispatcher v3.4.2 MIT
-symfony/filesystem v3.4.2 MIT
-symfony/finder v3.4.2 MIT
+symfony/config v3.4.4 MIT
+symfony/console v3.4.4 MIT
+symfony/debug v3.4.4 MIT
+symfony/dependency-injection v3.4.4 MIT
+symfony/event-dispatcher v3.4.4 MIT
+symfony/filesystem v3.4.4 MIT
+symfony/finder v3.4.4 MIT
symfony/polyfill-mbstring v1.6.0 MIT
-symfony/process v3.4.2 MIT
-symfony/yaml v3.4.2 MIT
+symfony/process v3.4.4 MIT
+symfony/yaml v3.4.4 MIT
++++++ platformsh-cli-3.27.2.tar.xz -> platformsh-cli-3.28.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/CHANGELOG.md new/platformsh-cli-3.28.0/CHANGELOG.md
--- old/platformsh-cli-3.27.2/CHANGELOG.md 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/CHANGELOG.md 2018-01-30 17:56:41.000000000 +0100
@@ -4,6 +4,19 @@
More readable, curated release notes can be found at: https://github.com/platformsh/platformsh-cli/releases
+## [v3.28.0](https://github.com/platformsh/platformsh-cli/tree/v3.27.2) (2018-01-30)
+[Full Changelog](https://github.com/platformsh/platformsh-cli/compare/v3.27.2...v…
+
+* Improve `activity:log` output to show more activity information.
+* Add `activity:get` command, hidden for now.
+* Add `--date-fmt` option to `activity:list` and `snapshot:list`.
+* Respect the date.timezone ini setting, and the TZ environment variable.
+* Fix inverted requirement of -e/-a options in activity:log (`-a` should make `-e` not required).
+* Fix user-defined aliases being prefixed with "@" (thanks to @GROwen, #677)
+* Avoid fatal error if invalid YAML config is encountered during updateDrushAliases()
+* Use -t instead of RequestTTY in SSH commands, for OpenSSH <5.9
+* Update dependencies (mainly Symfony 3.4.2 -> 3.4.4)
+
## [v3.27.2](https://github.com/platformsh/platformsh-cli/tree/v3.27.2) (2018-01-23)
[Full Changelog](https://github.com/platformsh/platformsh-cli/compare/v3.27.1...v…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/composer.json new/platformsh-cli-3.28.0/composer.json
--- old/platformsh-cli-3.27.2/composer.json 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/composer.json 2018-01-30 17:56:41.000000000 +0100
@@ -37,8 +37,7 @@
},
"require-dev": {
"phpunit/phpunit": "^4.3 <4.8",
- "drush/drush": "^8.0",
- "sensiolabs/security-checker": "^3.0"
+ "drush/drush": "^8.0"
},
"authors": [
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/composer.lock new/platformsh-cli-3.28.0/composer.lock
--- old/platformsh-cli-3.27.2/composer.lock 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/composer.lock 2018-01-30 17:56:41.000000000 +0100
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "c2de348d7c061147a43e58c9dc33b88c",
+ "content-hash": "99aec30edb51fe7608bde25ca891ca04",
"packages": [
{
"name": "cocur/slugify",
@@ -332,21 +332,22 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "5.3.1",
+ "version": "5.3.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8"
+ "reference": "f9acb4761844317e626a32259205bec1f1bc60d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/70f1fa53b71c4647bf2762c0…",
- "reference": "70f1fa53b71c4647bf2762c09068a95f77e12fb8",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f9acb4761844317e626a3225…",
+ "reference": "f9acb4761844317e626a32259205bec1f1bc60d2",
"shasum": ""
},
"require": {
"guzzlehttp/ringphp": "^1.1",
- "php": ">=5.4.0"
+ "php": ">=5.4.0",
+ "react/promise": "^2.2"
},
"require-dev": {
"ext-curl": "*",
@@ -380,7 +381,7 @@
"rest",
"web service"
],
- "time": "2016-07-15T19:28:39+00:00"
+ "time": "2018-01-15T07:18:01+00:00"
},
{
"name": "guzzlehttp/ringphp",
@@ -642,16 +643,16 @@
},
{
"name": "platformsh/client",
- "version": "v0.14.0",
+ "version": "v0.14.1",
"source": {
"type": "git",
"url": "https://github.com/platformsh/platformsh-client-php.git",
- "reference": "47013df77c5ac9d1cea32fd4caa3999ecca150ca"
+ "reference": "b1c5ff8a0cd896a80aa7330a42d7be9e9ef0dd98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/47013…",
- "reference": "47013df77c5ac9d1cea32fd4caa3999ecca150ca",
+ "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/b1c5f…",
+ "reference": "b1c5ff8a0cd896a80aa7330a42d7be9e9ef0dd98",
"shasum": ""
},
"require": {
@@ -687,7 +688,7 @@
}
],
"description": "Platform.sh API client",
- "time": "2017-12-20T12:45:06+00:00"
+ "time": "2018-01-19T10:05:52+00:00"
},
{
"name": "platformsh/console-form",
@@ -917,16 +918,16 @@
},
{
"name": "symfony/config",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "e57211b88aa889fefac1cb36866db04100b0f21c"
+ "reference": "72689b934d6c6ecf73eca874e98933bf055313c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/e57211b88aa889fefac1cb3…",
- "reference": "e57211b88aa889fefac1cb36866db04100b0f21c",
+ "url": "https://api.github.com/repos/symfony/config/zipball/72689b934d6c6ecf73eca87…",
+ "reference": "72689b934d6c6ecf73eca874e98933bf055313c9",
"shasum": ""
},
"require": {
@@ -975,20 +976,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-21T19:05:02+00:00"
},
{
"name": "symfony/console",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e"
+ "reference": "26b6f419edda16c19775211987651cb27baea7f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/9f21adfb92a9315b73ae2e…",
- "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e",
+ "url": "https://api.github.com/repos/symfony/console/zipball/26b6f419edda16c1977521…",
+ "reference": "26b6f419edda16c19775211987651cb27baea7f1",
"shasum": ""
},
"require": {
@@ -1044,20 +1045,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-29T09:03:43+00:00"
},
{
"name": "symfony/debug",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "543deab3ffff94402440b326fc94153bae2dfa7a"
+ "reference": "53f6af2805daf52a43b393b93d2f24925d35c937"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/543deab3ffff94402440b326…",
- "reference": "543deab3ffff94402440b326fc94153bae2dfa7a",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b9…",
+ "reference": "53f6af2805daf52a43b393b93d2f24925d35c937",
"shasum": ""
},
"require": {
@@ -1100,20 +1101,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2017-12-12T08:27:14+00:00"
+ "time": "2018-01-18T22:16:57+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333"
+ "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5f81907ea…",
- "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4b2717ee2…",
+ "reference": "4b2717ee2499390e371e1fc7abaf886c1c83e83d",
"shasum": ""
},
"require": {
@@ -1171,20 +1172,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-29T09:16:57+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835"
+ "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b869cbf8a15ca…",
- "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/26b87b6bca8f8…",
+ "reference": "26b87b6bca8f8f797331a30b76fdae5342dc26ca",
"shasum": ""
},
"require": {
@@ -1234,20 +1235,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-03T07:37:34+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "25b135bea251829e3db6a77d773643408b575ed4"
+ "reference": "e078773ad6354af38169faf31c21df0f18ace03d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/25b135bea251829e3db…",
- "reference": "25b135bea251829e3db6a77d773643408b575ed4",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af3816…",
+ "reference": "e078773ad6354af38169faf31c21df0f18ace03d",
"shasum": ""
},
"require": {
@@ -1283,20 +1284,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-03T07:37:34+00:00"
},
{
"name": "symfony/finder",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a"
+ "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb…",
- "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b67…",
+ "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f",
"shasum": ""
},
"require": {
@@ -1332,7 +1333,7 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
- "time": "2017-11-05T16:10:10+00:00"
+ "time": "2018-01-03T07:37:34+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -1395,16 +1396,16 @@
},
{
"name": "symfony/process",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "bb3ef65d493a6d57297cad6c560ee04e2a8f5098"
+ "reference": "09a5172057be8fc677840e591b17f385e58c7c0d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/bb3ef65d493a6d57297cad…",
- "reference": "bb3ef65d493a6d57297cad6c560ee04e2a8f5098",
+ "url": "https://api.github.com/repos/symfony/process/zipball/09a5172057be8fc677840e…",
+ "reference": "09a5172057be8fc677840e591b17f385e58c7c0d",
"shasum": ""
},
"require": {
@@ -1440,20 +1441,20 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-01-29T09:03:43+00:00"
},
{
"name": "symfony/yaml",
- "version": "v3.4.2",
+ "version": "v3.4.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "afe0cd38486505c9703707707d91450cfc1bd536"
+ "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/afe0cd38486505c9703707707…",
- "reference": "afe0cd38486505c9703707707d91450cfc1bd536",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/eab73b6c21d27ae4cd037c417…",
+ "reference": "eab73b6c21d27ae4cd037c417618dfd4befb0bfe",
"shasum": ""
},
"require": {
@@ -1498,7 +1499,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2017-12-11T20:38:23+00:00"
+ "time": "2018-01-21T19:05:02+00:00"
}
],
"packages-dev": [
@@ -1888,16 +1889,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v3.1.3",
+ "version": "v3.1.4",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "579f4ce846734a1cf55d6a531d00ca07a43e3cda"
+ "reference": "e57b3a09784f846411aa7ed664eedb73e3399078"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/579f4ce846734a1cf55d6…",
- "reference": "579f4ce846734a1cf55d6a531d00ca07a43e3cda",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7…",
+ "reference": "e57b3a09784f846411aa7ed664eedb73e3399078",
"shasum": ""
},
"require": {
@@ -1935,20 +1936,20 @@
"parser",
"php"
],
- "time": "2017-12-26T14:43:21+00:00"
+ "time": "2018-01-25T21:31:33+00:00"
},
{
"name": "pear/console_table",
- "version": "v1.3.0",
+ "version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/pear/Console_Table.git",
- "reference": "64100b9ee81852f4fa17823e55d0b385a544f976"
+ "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pear/Console_Table/zipball/64100b9ee81852f4fa1…",
- "reference": "64100b9ee81852f4fa17823e55d0b385a544f976",
+ "url": "https://api.github.com/repos/pear/Console_Table/zipball/1930c11897ca61fd24b…",
+ "reference": "1930c11897ca61fd24b95f2f785e99e0f36dcdea",
"shasum": ""
},
"require": {
@@ -1990,7 +1991,7 @@
"keywords": [
"console"
],
- "time": "2016-01-21T16:14:31+00:00"
+ "time": "2018-01-25T20:47:17+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
@@ -2925,50 +2926,6 @@
"time": "2015-06-21T13:59:46+00:00"
},
{
- "name": "sensiolabs/security-checker",
- "version": "v3.0.7",
- "source": {
- "type": "git",
- "url": "https://github.com/sensiolabs/security-checker.git",
- "reference": "59a6a299e2f5612dc8692d40e84373703a5df1b5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/59a6a299e2…",
- "reference": "59a6a299e2f5612dc8692d40e84373703a5df1b5",
- "shasum": ""
- },
- "require": {
- "symfony/console": "~2.0|~3.0"
- },
- "bin": [
- "security-checker"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "SensioLabs\\Security": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien.potencier(a)gmail.com"
- }
- ],
- "description": "A security checker for your composer.lock",
- "time": "2017-03-29T09:29:53+00:00"
- },
- {
"name": "symfony/var-dumper",
"version": "v3.2.4",
"source": {
@@ -3033,16 +2990,16 @@
},
{
"name": "webmozart/assert",
- "version": "1.2.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d15…",
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e…",
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
"shasum": ""
},
"require": {
@@ -3079,7 +3036,7 @@
"check",
"validate"
],
- "time": "2016-11-23T20:04:58+00:00"
+ "time": "2018-01-29T19:49:41+00:00"
},
{
"name": "webmozart/path-util",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/config.yaml new/platformsh-cli-3.28.0/config.yaml
--- old/platformsh-cli-3.27.2/config.yaml 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/config.yaml 2018-01-30 17:56:41.000000000 +0100
@@ -1,7 +1,7 @@
# Metadata about the CLI application itself.
application:
name: 'Platform.sh CLI'
- version: '3.27.2'
+ version: '3.28.0'
executable: 'platform'
package_name: 'platformsh/cli'
installer_url: 'https://platform.sh/cli/installer'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/dist/manifest.json new/platformsh-cli-3.28.0/dist/manifest.json
--- old/platformsh-cli-3.27.2/dist/manifest.json 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/dist/manifest.json 2018-01-30 17:56:41.000000000 +0100
@@ -1,10 +1,10 @@
[
{
"name": "platform.phar",
- "sha1": "7163104887c943ed8035f9d42fc87f8baf25edef",
- "sha256": "8508e9e766078d1081208184e8393eb9f2616bb79520bb3d0035202417d24508",
- "url": "https://github.com/platformsh/platformsh-cli/releases/download/v3.27.2/plat…",
- "version": "3.27.2",
+ "sha1": "4ea45e3d18eaaba7422460ef03912f68638a7ccb",
+ "sha256": "fcf5e8d67c198621106a242937c7d6e35eb2df5044847c447b78f3aaa31bce8a",
+ "url": "https://github.com/platformsh/platformsh-cli/releases/download/v3.28.0/plat…",
+ "version": "3.28.0",
"php": {
"min": "5.5.9"
},
@@ -97,6 +97,11 @@
"notes": "* Use browser login by default (the old login method is available as `auth:password-login`).\n* Set `--build-pull-requests-post-merge` to false by default (GitHub integrations).\n* Respect `--no-wait` in `environment:init`, and clear the environment cache afterwards.\n* In the `project:delete` command, leave access control to the API.\n* Support disabling or enabling colorized output via the CLICOLOR_FORCE environment variable.",
"show from": "3.26.0",
"hide from": "3.27.0"
+ },
+ {
+ "notes": "* Improved `activity:log` output to show more activity information.\n* Added `activity:get` command, hidden for now.\n* Added `--date-fmt` option to `activity:list` and `snapshot:list`.\n* Added detection for the date.timezone ini setting, and the TZ environment variable.\n* Fixed inverted requirement of -e/-a options in activity:log (`-a` should make `-e` not required).\n* Fixed user-defined aliases being prefixed with \"@\" (thanks to @GROwen, #677).\n* Avoid fatal error if invalid YAML config is encountered during updateDrushAliases().\n* Fixed SSH commands for very old OpenSSH versions <5.9 (using -t instead of RequestTTY).\n* Updated dependencies (mainly Symfony 3.4.2 -> 3.4.4).",
+ "show from": "3.27.0",
+ "hide from": "3.28.0"
}
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Application.php new/platformsh-cli-3.28.0/src/Application.php
--- old/platformsh-cli-3.27.2/src/Application.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Application.php 2018-01-30 17:56:41.000000000 +0100
@@ -3,6 +3,7 @@
use Platformsh\Cli\Console\EventSubscriber;
use Platformsh\Cli\Service\Config;
+use Platformsh\Cli\Util\TimezoneUtil;
use Symfony\Component\Console\Application as ParentApplication;
use Symfony\Component\Console\Command\Command as ConsoleCommand;
use Symfony\Component\Console\Exception\InvalidArgumentException as ConsoleInvalidArgumentException;
@@ -34,7 +35,7 @@
$this->cliConfig = new Config();
parent::__construct($this->cliConfig->get('application.name'), $this->cliConfig->get('application.version'));
- $this->setDefaultTimezone();
+ date_default_timezone_set(TimezoneUtil::getTimezone());
$this->addCommands($this->getCommands());
@@ -88,6 +89,7 @@
$commands[] = new Command\DocsCommand();
$commands[] = new Command\LegacyMigrateCommand();
$commands[] = new Command\MultiCommand();
+ $commands[] = new Command\Activity\ActivityGetCommand();
$commands[] = new Command\Activity\ActivityListCommand();
$commands[] = new Command\Activity\ActivityLogCommand();
$commands[] = new Command\App\AppConfigGetCommand();
@@ -261,40 +263,6 @@
}
/**
- * Set the default PHP timezone according to the system timezone.
- *
- * PHP >=5.4 removed the autodetection of the system timezone, so it is
- * re-implemented here.
- */
- protected function setDefaultTimezone()
- {
- $timezone = date_default_timezone_get();
-
- if (is_link('/etc/localtime')) {
- // Mac OS X (and older Linuxes)
- // /etc/localtime is a symlink to the timezone in /usr/share/zoneinfo.
- $filename = readlink('/etc/localtime');
- if (strpos($filename, '/usr/share/zoneinfo/') === 0) {
- $timezone = substr($filename, 20);
- }
- } elseif (file_exists('/etc/timezone')) {
- // Ubuntu / Debian.
- $data = file_get_contents('/etc/timezone');
- if ($data) {
- $timezone = trim($data);
- }
- } elseif (file_exists('/etc/sysconfig/clock')) {
- // RHEL/CentOS
- $data = parse_ini_file('/etc/sysconfig/clock');
- if (!empty($data['ZONE'])) {
- $timezone = trim($data['ZONE']);
- }
- }
-
- date_default_timezone_set($timezone);
- }
-
- /**
* {@inheritdoc}
*/
public function renderException(\Exception $e, OutputInterface $output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityGetCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityGetCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityGetCommand.php 1970-01-01 01:00:00.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityGetCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -0,0 +1,126 @@
+<?php
+namespace Platformsh\Cli\Command\Activity;
+
+use Platformsh\Cli\Command\CommandBase;
+use Platformsh\Cli\Service\PropertyFormatter;
+use Platformsh\Cli\Service\Table;
+use Platformsh\Client\Model\Activity;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class ActivityGetCommand extends CommandBase
+{
+ protected $hiddenInList = true;
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function configure()
+ {
+ $this
+ ->setName('activity:get')
+ ->addArgument('id', InputArgument::OPTIONAL, 'The activity ID. Defaults to the most recent activity.')
+ ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter recent activities by type')
+ ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check recent activities on all environments')
+ ->addOption('property', 'P', InputOption::VALUE_REQUIRED, 'The property to view')
+ ->setDescription('View detailed information on a single activity');
+ $this->addProjectOption()
+ ->addEnvironmentOption();
+ Table::configureInput($this->getDefinition());
+ PropertyFormatter::configureInput($this->getDefinition());
+ $this->addExample('Find the time a project was created', '--all --type project.create -P completed_at');
+ $this->addExample('Find the duration (in seconds) of the last activity', '-P duration');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $this->validateInput($input, $input->getOption('all'));
+
+ $id = $input->getArgument('id');
+ if ($id) {
+ $activity = $this->getSelectedProject()
+ ->getActivity($id);
+ if (!$activity) {
+ $this->stdErr->writeln("Activity not found: <error>$id</error>");
+
+ return 1;
+ }
+ } else {
+ if ($this->hasSelectedEnvironment() && !$input->getOption('all')) {
+ $activities = $this->getSelectedEnvironment()
+ ->getActivities(1, $input->getOption('type'));
+ } else {
+ $activities = $this->getSelectedProject()
+ ->getActivities(1, $input->getOption('type'));
+ }
+ /** @var Activity $activity */
+ $activity = reset($activities);
+ if (!$activity) {
+ $this->stdErr->writeln('No activities found');
+
+ return 1;
+ }
+ }
+
+ /** @var Table $table */
+ $table = $this->getService('table');
+ /** @var PropertyFormatter $formatter */
+ $formatter = $this->getService('property_formatter');
+
+ $properties = $activity->getProperties();
+
+ // Add the activity "description" as a property.
+ if (!isset($properties['description'])) {
+ $properties['description'] = $activity->getDescription();
+ }
+
+ // Calculate the duration of the activity.
+ if (!isset($properties['duration'])) {
+ $start = strtotime($activity->started_at);
+ $created = strtotime($activity->created_at);
+ $end = strtotime($activity->isComplete() ? $activity->completed_at : $activity->updated_at);
+ $start = $start === $end ? $created : $start;
+ $properties['duration'] = $end - $start > 0 ? $end - $start : null;
+ }
+
+ if ($property = $input->getOption('property')) {
+ $formatter->displayData($output, $properties, $property);
+ return 0;
+ }
+
+ unset($properties['payload'], $properties['log']);
+
+ $this->stdErr->writeln(
+ 'These properties have been omitted for brevity: <comment>payload</comment> and <comment>log</comment>.'
+ . ' You can still view them with the -P (--property) option.',
+ OutputInterface::VERBOSITY_VERBOSE
+ );
+
+ $header = [];
+ $rows = [];
+ foreach ($properties as $property => $value) {
+ $header[] = $property;
+ $rows[] = $formatter->format($value, $property);
+ }
+
+ $table->renderSimple($rows, $header);
+
+ if (!$table->formatIsMachineReadable()) {
+ $executable = $this->config()->get('application.executable');
+ $this->stdErr->writeln('');
+ $this->stdErr->writeln(sprintf(
+ 'To view the log for this activity, run: <info>%s activity:log %s</info>',
+ $executable,
+ $activity->id
+ ));
+ $this->stdErr->writeln(sprintf(
+ 'To list activities, run: <info>%s activities</info>',
+ $executable
+ ));
+ }
+
+ return 0;
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityListCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityListCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityListCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityListCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -4,6 +4,7 @@
use Platformsh\Cli\Command\CommandBase;
use Platformsh\Cli\Console\AdaptiveTableCell;
use Platformsh\Cli\Service\ActivityMonitor;
+use Platformsh\Cli\Service\PropertyFormatter;
use Platformsh\Cli\Service\Table;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
@@ -27,6 +28,7 @@
->addOption('all', 'a', InputOption::VALUE_NONE, 'Check activities on all environments')
->setDescription('Get a list of activities for an environment or project');
Table::configureInput($this->getDefinition());
+ PropertyFormatter::configureInput($this->getDefinition());
$this->addProjectOption()
->addEnvironmentOption();
$this->addExample('List recent activities for the current environment')
@@ -87,12 +89,14 @@
/** @var \Platformsh\Cli\Service\Table $table */
$table = $this->getService('table');
+ /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */
+ $formatter = $this->getService('property_formatter');
$rows = [];
foreach ($activities as $activity) {
$row = [
new AdaptiveTableCell($activity->id, ['wrap' => false]),
- date('Y-m-d H:i:s', strtotime($activity['created_at'])),
+ $formatter->format($activity['created_at'], 'created_at'),
$activity->getDescription(),
$activity->getCompletionPercent() . '%',
ActivityMonitor::formatState($activity->state),
@@ -131,13 +135,16 @@
$table->render($rows, $headers);
if (!$table->formatIsMachineReadable()) {
+ $executable = $this->config()->get('application.executable');
$this->stdErr->writeln('');
- $this->stdErr->writeln(
- sprintf(
- 'To view the log for an activity, run: <info>%s activity:log [id]</info>',
- $this->config()->get('application.executable')
- )
- );
+ $this->stdErr->writeln(sprintf(
+ 'To view the log for an activity, run: <info>%s activity:log [id]</info>',
+ $executable
+ ));
+ $this->stdErr->writeln(sprintf(
+ 'To view more information about an activity, run: <info>%s activity:get [id]</info>',
+ $executable
+ ));
}
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Activity/ActivityLogCommand.php new/platformsh-cli-3.28.0/src/Command/Activity/ActivityLogCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Activity/ActivityLogCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Activity/ActivityLogCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -2,6 +2,8 @@
namespace Platformsh\Cli\Command\Activity;
use Platformsh\Cli\Command\CommandBase;
+use Platformsh\Cli\Service\ActivityMonitor;
+use Platformsh\Cli\Service\PropertyFormatter;
use Platformsh\Client\Model\Activity;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
@@ -25,9 +27,10 @@
'Log refresh interval (seconds). Set to 0 to disable refreshing.',
1
)
- ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter activities by type')
- ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check activities on all environments')
+ ->addOption('type', null, InputOption::VALUE_REQUIRED, 'Filter recent activities by type')
+ ->addOption('all', 'a', InputOption::VALUE_NONE, 'Check recent activities on all environments')
->setDescription('Display the log for an activity');
+ PropertyFormatter::configureInput($this->getDefinition());
$this->addProjectOption()
->addEnvironmentOption();
$this->addExample('Display the log for the last push on the current environment', '--type environment.push')
@@ -36,7 +39,7 @@
protected function execute(InputInterface $input, OutputInterface $output)
{
- $this->validateInput($input, !$input->getOption('all'));
+ $this->validateInput($input, $input->getOption('all'));
$id = $input->getArgument('id');
if ($id) {
@@ -64,9 +67,16 @@
}
}
- $this->stdErr->writeln(
- "Log for activity <info>" . $activity->id . "</info> (" . $activity->getDescription() . "):\n"
- );
+ /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */
+ $formatter = $this->getService('property_formatter');
+
+ $this->stdErr->writeln([
+ sprintf('<info>Activity ID: </info>%s', $activity->id),
+ sprintf('<info>Description: </info>%s', $activity->getDescription()),
+ sprintf('<info>Created: </info>%s', $formatter->format($activity->created_at, 'created_at')),
+ sprintf('<info>State: </info>%s', ActivityMonitor::formatState($activity->state)),
+ '<info>Log: </info>',
+ ]);
$refresh = $input->getOption('refresh');
if ($refresh > 0 && !$this->runningViaMulti && $output->isDecorated() && !$activity->isComplete()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/CommandBase.php new/platformsh-cli-3.28.0/src/Command/CommandBase.php
--- old/platformsh-cli-3.27.2/src/Command/CommandBase.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/CommandBase.php 2018-01-30 17:56:41.000000000 +0100
@@ -497,8 +497,11 @@
$drush = $this->getService('drush');
try {
$drush->createAliases($event->getProject(), $projectRoot, $event->getEnvironments());
- } catch (\RuntimeException $e) {
- $this->stdErr->writeln('<comment>Failed to update Drush aliases:</comment> ' . $e->getMessage());
+ } catch (\Exception $e) {
+ $this->stdErr->writeln(sprintf(
+ "<comment>Failed to update Drush aliases:</comment>\n%s\n",
+ preg_replace('/^/m', ' ', trim($e->getMessage()))
+ ));
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Db/DbSqlCommand.php new/platformsh-cli-3.28.0/src/Command/Db/DbSqlCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Db/DbSqlCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Db/DbSqlCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -74,10 +74,10 @@
$ssh = $this->getService('ssh');
$sshOptions = [];
+ $sshCommand = $ssh->getSshCommand($sshOptions);
if ($this->isTerminal(STDIN)) {
- $sshOptions['RequestTty'] = 'yes';
+ $sshCommand .= ' -t';
}
- $sshCommand = $ssh->getSshCommand($sshOptions);
$sshCommand .= ' ' . escapeshellarg($sshUrl)
. ' ' . escapeshellarg($sqlCommand);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Environment/EnvironmentSshCommand.php new/platformsh-cli-3.28.0/src/Command/Environment/EnvironmentSshCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Environment/EnvironmentSshCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Environment/EnvironmentSshCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -58,10 +58,10 @@
/** @var \Platformsh\Cli\Service\Ssh $ssh */
$ssh = $this->getService('ssh');
$sshOptions = [];
+ $command = $ssh->getSshCommand($sshOptions);
if ($this->isTerminal(STDIN)) {
- $sshOptions['RequestTty'] = 'yes';
+ $command .= ' -t';
}
- $command = $ssh->getSshCommand($sshOptions);
$command .= ' ' . escapeshellarg($sshUrl);
if ($remoteCommand) {
$command .= ' ' . escapeshellarg($remoteCommand);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Service/RedisCliCommand.php new/platformsh-cli-3.28.0/src/Command/Service/RedisCliCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Service/RedisCliCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Service/RedisCliCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -60,10 +60,10 @@
$ssh = $this->getService('ssh');
$sshOptions = [];
+ $sshCommand = $ssh->getSshCommand($sshOptions);
if ($this->isTerminal(STDIN)) {
- $sshOptions['RequestTty'] = 'yes';
+ $sshCommand .= ' -t';
}
- $sshCommand = $ssh->getSshCommand($sshOptions);
$sshCommand .= ' ' . escapeshellarg($sshUrl)
. ' ' . escapeshellarg($redisCommand);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotListCommand.php new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotListCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotListCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotListCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -4,6 +4,7 @@
use Platformsh\Cli\Command\CommandBase;
use Platformsh\Cli\Console\AdaptiveTableCell;
use Platformsh\Cli\Service\ActivityMonitor;
+use Platformsh\Cli\Service\PropertyFormatter;
use Platformsh\Cli\Service\Table;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@@ -21,6 +22,7 @@
->addOption('limit', null, InputOption::VALUE_REQUIRED, 'Limit the number of snapshots to list', 10)
->addOption('start', null, InputOption::VALUE_REQUIRED, 'Only snapshots created before this date will be listed');
Table::configureInput($this->getDefinition());
+ PropertyFormatter::configureInput($this->getDefinition());
$this->addProjectOption()
->addEnvironmentOption();
$this->addExample('List the most recent snapshots')
@@ -41,6 +43,8 @@
/** @var \Platformsh\Cli\Service\Table $table */
$table = $this->getService('table');
+ /** @var \Platformsh\Cli\Service\PropertyFormatter $formatter */
+ $formatter = $this->getService('property_formatter');
if (!$table->formatIsMachineReadable()) {
$this->stdErr->writeln("Finding snapshots for the environment <info>{$environment->id}</info>");
@@ -57,7 +61,7 @@
foreach ($activities as $activity) {
$snapshot_name = !empty($activity->payload['backup_name']) ? $activity->payload['backup_name'] : 'N/A';
$rows[] = [
- date('Y-m-d H:i:s', strtotime($activity->created_at)),
+ $formatter->format($activity->created_at, 'created_at'),
new AdaptiveTableCell($snapshot_name, ['wrap' => false]),
$activity->getCompletionPercent() . '%',
ActivityMonitor::formatState($activity->state),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotRestoreCommand.php new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotRestoreCommand.php
--- old/platformsh-cli-3.27.2/src/Command/Snapshot/SnapshotRestoreCommand.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Command/Snapshot/SnapshotRestoreCommand.php 2018-01-30 17:56:41.000000000 +0100
@@ -75,7 +75,7 @@
/** @var \Platformsh\Cli\Service\QuestionHelper $questionHelper */
$questionHelper = $this->getService('question_helper');
$name = $selectedActivity['payload']['backup_name'];
- $date = date('Y-m-d H:i', strtotime($selectedActivity['created_at']));
+ $date = date('c', strtotime($selectedActivity['created_at']));
if (!$questionHelper->confirm(
"Are you sure you want to restore the snapshot <comment>$name</comment> from <comment>$date</comment>?"
)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Service/PropertyFormatter.php new/platformsh-cli-3.28.0/src/Service/PropertyFormatter.php
--- old/platformsh-cli-3.27.2/src/Service/PropertyFormatter.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Service/PropertyFormatter.php 2018-01-30 17:56:41.000000000 +0100
@@ -39,6 +39,8 @@
case 'created_at':
case 'updated_at':
case 'expires_at':
+ case 'started_at':
+ case 'completed_at':
case 'ssl.expires_on':
return $this->formatDate($value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/SiteAlias/DrushAlias.php new/platformsh-cli-3.28.0/src/SiteAlias/DrushAlias.php
--- old/platformsh-cli-3.27.2/src/SiteAlias/DrushAlias.php 2018-01-23 19:08:21.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/SiteAlias/DrushAlias.php 2018-01-30 17:56:41.000000000 +0100
@@ -138,13 +138,15 @@
* @param string|null $previousGroup
*
* @return array
+ * The aliases, with their group prefixes removed.
*/
protected function getExistingAliases($currentGroup, $previousGroup = null)
{
$aliases = [];
foreach (array_filter([$currentGroup, $previousGroup]) as $groupName) {
- foreach ($this->drush->getAliases($groupName) as $aliasName => $alias) {
- $aliases[str_replace($groupName . '.', '', $aliasName)] = $alias;
+ $prefix = '@' . $groupName . '.';
+ foreach ($this->drush->getAliases($groupName) as $prefixedName => $alias) {
+ $aliases[str_replace($prefix, '', $prefixedName)] = $alias;
}
}
@@ -154,7 +156,7 @@
/**
* Generate new aliases.
*
- * @param array $apps
+ * @param LocalApplication[] $apps
* @param array $environments
*
* @return array
@@ -225,7 +227,7 @@
*
* @return array|false
*/
- protected function generateRemoteAlias($environment, $app)
+ protected function generateRemoteAlias(Environment $environment, LocalApplication $app)
{
if (!$environment->hasLink('ssh')) {
return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/src/Util/TimezoneUtil.php new/platformsh-cli-3.28.0/src/Util/TimezoneUtil.php
--- old/platformsh-cli-3.27.2/src/Util/TimezoneUtil.php 1970-01-01 01:00:00.000000000 +0100
+++ new/platformsh-cli-3.28.0/src/Util/TimezoneUtil.php 2018-01-30 17:56:41.000000000 +0100
@@ -0,0 +1,84 @@
+<?php
+
+namespace Platformsh\Cli\Util;
+
+class TimezoneUtil
+{
+ /**
+ * Get the timezone intended by the user.
+ *
+ * The timezone is detected with the following priorities:
+ *
+ * 1. A value previously set via date_default_timezone_set(), which can
+ * only be known if it is not the default, UTC.
+ * 2. The value of the ini setting 'date.timezone'.
+ * 3. The value of the TZ environment variable, if set.
+ * 4. A best guess at the system timezone: see self::detectSystemTimezone().
+ * 5. Default to the value of date_default_timezone_get(), which at this
+ * stage will almost definitely be UTC.
+ *
+ * @return string
+ */
+ public static function getTimezone()
+ {
+ $currentTz = date_default_timezone_get();
+ if ($currentTz !== 'UTC') {
+ return $currentTz;
+ }
+
+ if (ini_get('date.timezone')) {
+ return ini_get('date.timezone');
+ }
+
+ if (getenv('TZ')) {
+ return (string) getenv('TZ');
+ }
+
+ if ($systemTz = self::detectSystemTimezone()) {
+ return $systemTz;
+ }
+
+ return $currentTz;
+ }
+
+ /**
+ * Detect the system timezone, restoring functionality from PHP < 5.4.
+ *
+ * @return string|false
+ */
+ private static function detectSystemTimezone()
+ {
+ // Mac OS X (and older Linuxes): /etc/localtime is a symlink to the
+ // timezone in /usr/share/zoneinfo or /var/db/timezone/zoneinfo.
+ if (is_link('/etc/localtime')) {
+ $filename = readlink('/etc/localtime');
+ $prefixes = [
+ '/usr/share/zoneinfo/',
+ '/var/db/timezone/zoneinfo/',
+ ];
+ foreach ($prefixes as $prefix) {
+ if (strpos($filename, $prefix) === 0) {
+ return substr($filename, strlen($prefix));
+ }
+ }
+ }
+
+ // Ubuntu and Debian.
+ if (file_exists('/etc/timezone')) {
+ $data = file_get_contents('/etc/timezone');
+ if ($data !== false) {
+ return trim($data);
+ }
+ }
+
+ // RHEL and CentOS.
+ if (file_exists('/etc/sysconfig/clock')) {
+ $data = parse_ini_file('/etc/sysconfig/clock');
+ if (!empty($data['ZONE'])) {
+ return trim($data['ZONE']);
+ }
+ }
+
+ return false;
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/platformsh-cli-3.27.2/tests/Util/TimezoneUtilTest.php new/platformsh-cli-3.28.0/tests/Util/TimezoneUtilTest.php
--- old/platformsh-cli-3.27.2/tests/Util/TimezoneUtilTest.php 1970-01-01 01:00:00.000000000 +0100
+++ new/platformsh-cli-3.28.0/tests/Util/TimezoneUtilTest.php 2018-01-30 17:56:41.000000000 +0100
@@ -0,0 +1,59 @@
+<?php
+
+namespace Platformsh\Cli\Tests\Util;
+
+use Platformsh\Cli\Util\TimezoneUtil;
+
+class TimezoneUtilTest extends \PHPUnit_Framework_TestCase
+{
+ private $originalSetting;
+ private $originalIni;
+ private $originalEnv;
+
+ public function setUp()
+ {
+ // Reset to PHP defaults.
+ $this->originalIni = ini_get('date.timezone');
+ $this->originalSetting = date_default_timezone_get();
+ $this->originalEnv = getenv('TZ');
+ ini_set('date.timezone', 'UTC');
+ date_default_timezone_set('UTC');
+ putenv('TZ=');
+ }
+
+ public function tearDown()
+ {
+ // Reset to original settings.
+ ini_set('date.timezone', $this->originalIni);
+ date_default_timezone_set($this->originalSetting);
+ if ($this->originalEnv !== false) {
+ putenv('TZ=' . $this->originalEnv);
+ }
+ }
+
+ public function testGetTimezoneReturnsIni()
+ {
+ // Pick a rare timezone.
+ ini_set('date.timezone', 'Pacific/Galapagos');
+ $this->assertEquals('Pacific/Galapagos', TimezoneUtil::getTimezone());
+ }
+
+ public function testGetTimezoneReturnsCurrent()
+ {
+ ini_set('date.timezone', 'Antarctica/McMurdo');
+ date_default_timezone_set('Antarctica/Troll');
+ $this->assertEquals('Antarctica/Troll', TimezoneUtil::getTimezone());
+ }
+
+ public function testGetTimezoneReturnsEnvVar()
+ {
+ @ini_set('date.timezone', '');
+ putenv('TZ=Arctic/Longyearbyen');
+ $this->assertEquals('Arctic/Longyearbyen', TimezoneUtil::getTimezone());
+ }
+
+ public function testGetTimezoneReturnsSomething()
+ {
+ $this->assertNotEmpty(TimezoneUtil::getTimezone());
+ }
+}
++++++ platformsh-cli-vendor.tar.xz ++++++
++++ 4191 lines of diff (skipped)
1
0