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
August 2019
- 1 participants
- 445 discussions
Hello community,
here is the log from the commit of package libzypp for openSUSE:Factory checked in at 2019-08-09 16:50:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libzypp (Old)
and /work/SRC/openSUSE:Factory/.libzypp.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libzypp"
Fri Aug 9 16:50:28 2019 rev:416 rq:721457 version:17.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libzypp/libzypp.changes 2019-06-24 21:48:41.847888982 +0200
+++ /work/SRC/openSUSE:Factory/.libzypp.new.9556/libzypp.changes 2019-08-09 16:50:35.489506707 +0200
@@ -1,0 +2,16 @@
+Mon Aug 5 13:03:55 CEST 2019 - ma(a)suse.de
+
+- PublicKey::algoName: supply key algorithm and length
+- version 17.14.0 (12)
+
+-------------------------------------------------------------------
+Thu Jul 25 17:25:10 CEST 2019 - ma(a)suse.de
+
+- MediaCurl: Fix leaking filedescriptors (bsc#1116995)
+- commit: Run file conflict check on dry-run (best with download-only)
+ (bsc#1140039)
+- commit: do not remove orphan products if the .prod file is owned by
+ a package (bsc#1139795)
+- version 17.13.0 (12)
+
+-------------------------------------------------------------------
Old:
----
libzypp-17.12.0.tar.bz2
New:
----
libzypp-17.14.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libzypp.spec ++++++
--- /var/tmp/diff_new_pack.OXSCos/_old 2019-08-09 16:50:36.845506438 +0200
+++ /var/tmp/diff_new_pack.OXSCos/_new 2019-08-09 16:50:36.849506438 +0200
@@ -17,7 +17,7 @@
Name: libzypp
-Version: 17.12.0
+Version: 17.14.0
Release: 0
Url: https://github.com/openSUSE/libzypp
Summary: Library for package, patch, pattern and product management
@@ -45,11 +45,7 @@
%endif
BuildRequires: cmake
BuildRequires: openssl-devel
-%if 0%{?suse_version} >= 1130 || 0%{?fedora_version} >= 16
BuildRequires: pkgconfig(libudev)
-%else
-BuildRequires: hal-devel
-%endif
%if 0%{?suse_version} >= 1330
BuildRequires: libboost_headers-devel
BuildRequires: libboost_program_options-devel
@@ -166,17 +162,13 @@
Requires: bzip2
Requires: glibc-devel
Requires: libstdc++-devel
+Requires: libudev-devel
Requires: libxml2-devel
Requires: libzypp = %{version}
Requires: openssl-devel
Requires: popt-devel
Requires: rpm-devel > 4.4
Requires: zlib-devel
-%if 0%{?suse_version} >= 1130 || 0%{?fedora_version} >= 16
-Requires: libudev-devel
-%else
-Requires: hal-devel
-%endif
%if 0%{?suse_version}
%if 0%{?suse_version} >= 1100
# Code11+
@@ -270,7 +262,7 @@
%check
pushd build/tests
-LD_LIBRARY_PATH="%{buildroot}/%{_libdir}:$LD_LIBRARY_PATH" ctest .
+LD_LIBRARY_PATH="%{buildroot}/%{_libdir}:$LD_LIBRARY_PATH" ctest --output-on-failure .
popd
%post
++++++ libzypp-17.12.0.tar.bz2 -> libzypp-17.14.0.tar.bz2 ++++++
++++ 6069 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package yast2-registration for openSUSE:Factory checked in at 2019-08-09 16:50:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-registration (Old)
and /work/SRC/openSUSE:Factory/.yast2-registration.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-registration"
Fri Aug 9 16:50:23 2019 rev:37 rq:721449 version:4.2.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-registration/yast2-registration.changes 2019-07-31 14:22:17.742473617 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-registration.new.9556/yast2-registration.changes 2019-08-09 16:50:25.885507977 +0200
@@ -1,0 +2,7 @@
+Tue Aug 6 17:05:32 UTC 2019 - Ladislav Slezák <lslezak(a)suse.cz>
+
+- Fixed unit test, reset the mocked addons in the
+ addon_eula_dialog_test.rb test (bsc#1144550)
+- 4.2.6
+
+-------------------------------------------------------------------
Old:
----
yast2-registration-4.2.5.tar.bz2
New:
----
yast2-registration-4.2.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-registration.spec ++++++
--- /var/tmp/diff_new_pack.00UxTX/_old 2019-08-09 16:50:26.401507977 +0200
+++ /var/tmp/diff_new_pack.00UxTX/_new 2019-08-09 16:50:26.401507977 +0200
@@ -17,7 +17,7 @@
Name: yast2-registration
-Version: 4.2.5
+Version: 4.2.6
Release: 0
Summary: YaST2 - Registration Module
License: GPL-2.0-only
++++++ yast2-registration-4.2.5.tar.bz2 -> yast2-registration-4.2.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.2.5/package/yast2-registration.changes new/yast2-registration-4.2.6/package/yast2-registration.changes
--- old/yast2-registration-4.2.5/package/yast2-registration.changes 2019-07-02 11:33:49.000000000 +0200
+++ new/yast2-registration-4.2.6/package/yast2-registration.changes 2019-08-07 09:23:10.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Tue Aug 6 17:05:32 UTC 2019 - Ladislav Slezák <lslezak(a)suse.cz>
+
+- Fixed unit test, reset the mocked addons in the
+ addon_eula_dialog_test.rb test (bsc#1144550)
+- 4.2.6
+
+-------------------------------------------------------------------
Thu Jun 20 14:15:48 UTC 2019 - David Diaz <dgonzalez(a)suse.com>
- Do not abort when an addon license is refused (bsc#1114018).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.2.5/package/yast2-registration.spec new/yast2-registration-4.2.6/package/yast2-registration.spec
--- old/yast2-registration-4.2.5/package/yast2-registration.spec 2019-07-02 11:33:49.000000000 +0200
+++ new/yast2-registration-4.2.6/package/yast2-registration.spec 2019-08-07 09:23:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-registration
-Version: 4.2.5
+Version: 4.2.6
Release: 0
Summary: YaST2 - Registration Module
License: GPL-2.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-registration-4.2.5/test/registration/ui/addon_eula_dialog_test.rb new/yast2-registration-4.2.6/test/registration/ui/addon_eula_dialog_test.rb
--- old/yast2-registration-4.2.5/test/registration/ui/addon_eula_dialog_test.rb 2019-07-02 11:33:49.000000000 +0200
+++ new/yast2-registration-4.2.6/test/registration/ui/addon_eula_dialog_test.rb 2019-08-07 09:23:10.000000000 +0200
@@ -37,6 +37,10 @@
registered_addon.registered
end
+ after do
+ Registration::Addon.reset!
+ end
+
context "when there are no EULA acceptances to show" do
let(:addons) { [registered_addon, addon_wo_eula] }
1
0
Hello community,
here is the log from the commit of package python-cairocffi for openSUSE:Factory checked in at 2019-08-09 16:50:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cairocffi (Old)
and /work/SRC/openSUSE:Factory/.python-cairocffi.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cairocffi"
Fri Aug 9 16:50:15 2019 rev:13 rq:720049 version:1.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cairocffi/python-cairocffi.changes 2019-02-15 09:55:27.731758815 +0100
+++ /work/SRC/openSUSE:Factory/.python-cairocffi.new.9556/python-cairocffi.changes 2019-08-09 16:50:19.565507969 +0200
@@ -1,0 +2,12 @@
+Wed Jul 31 12:12:15 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 1.0.2
+ #123: Rely on a recent version of setuptools to handle VERSION
+ #120: Don't delete _generated modules on ffi_build import
+ Drop Python 2.6, 2.7 and 3.4 support
+ Test with Python 3.7
+ Clean code, tests and packaging
+- do not build for python2
+- run tests
+
+-------------------------------------------------------------------
Old:
----
cairocffi-0.9.0.tar.gz
New:
----
cairocffi-1.0.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cairocffi.spec ++++++
--- /var/tmp/diff_new_pack.rtE3mo/_old 2019-08-09 16:50:19.969507969 +0200
+++ /var/tmp/diff_new_pack.rtE3mo/_new 2019-08-09 16:50:19.973507969 +0200
@@ -12,29 +12,32 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
Name: python-cairocffi
-Version: 0.9.0
+Version: 1.0.2
Release: 0
Summary: Python cairo bindings based on cffi
License: BSD-3-Clause
Group: Development/Languages/Python
-URL: https://github.com/SimonSapin/cairocffi
+URL: https://github.com/Kozea/cairocffi
Source: https://files.pythonhosted.org/packages/source/c/cairocffi/cairocffi-%{vers…
BuildRequires: %{python_module cffi >= 1.1.0}
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module pytest-runner}
+BuildRequires: %{python_module setuptools >= 39.2.0}
BuildRequires: %{python_module xcffib >= 0.3.2}
BuildRequires: cairo
+BuildRequires: dejavu-fonts
BuildRequires: fdupes
BuildRequires: gdk-pixbuf
BuildRequires: python-rpm-macros
Requires: cairo
Requires: python
-Requires: python-cffi >= 0.6
+Requires: python-cffi >= 1.1.0
Requires: python-xcffib >= 0.3.2
BuildArch: noarch
%python_subpackages
@@ -69,9 +72,14 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
+%check
+sed -i '/^addopts/d' setup.cfg
+sed -i -e '/pytest-flake8/d' -e '/pytest-isort/d' -e '/pytest-cov/d' setup.cfg
+%python_expand $python setup.py test
+
%files %{python_files}
%license LICENSE
-%doc CHANGES README.rst
+%doc README.rst
%{python_sitelib}/cairocffi-%{version}-py*.egg-info
%{python_sitelib}/cairocffi/
%exclude %{python_sitelib}/cairocffi/test_pixbuf.py*
++++++ cairocffi-0.9.0.tar.gz -> cairocffi-1.0.2.tar.gz ++++++
++++ 3135 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package patterns-containers for openSUSE:Factory checked in at 2019-08-09 16:49:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-containers (Old)
and /work/SRC/openSUSE:Factory/.patterns-containers.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patterns-containers"
Fri Aug 9 16:49:57 2019 rev:11 rq:721865 version:5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-containers/patterns-containers.changes 2019-08-07 13:55:04.468857053 +0200
+++ /work/SRC/openSUSE:Factory/.patterns-containers.new.9556/patterns-containers.changes 2019-08-09 16:49:59.973507946 +0200
@@ -1,0 +2,5 @@
+Thu Aug 8 20:24:44 CEST 2019 - kukuk(a)suse.de
+
+- Add yomi salt states to Kubic admin node
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patterns-containers.spec ++++++
--- /var/tmp/diff_new_pack.GbLd7l/_old 2019-08-09 16:50:01.321507947 +0200
+++ /var/tmp/diff_new_pack.GbLd7l/_new 2019-08-09 16:50:01.353507947 +0200
@@ -111,6 +111,8 @@
Provides: pattern-order() = 9018
Provides: pattern-visible()
Requires: kubicd
+Requires: salt-master
+Requires: yomi-formula
Requires: pattern() = basesystem
Requires: pattern() = container_runtime_kubernetes
Requires: pattern() = kubeadm
1
0
Hello community,
here is the log from the commit of package libqt5-qtlocation for openSUSE:Factory checked in at 2019-08-09 16:49:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtlocation (Old)
and /work/SRC/openSUSE:Factory/.libqt5-qtlocation.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtlocation"
Fri Aug 9 16:49:51 2019 rev:37 rq:721857 version:5.13.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtlocation/libqt5-qtlocation.changes 2019-06-28 16:28:58.266154817 +0200
+++ /work/SRC/openSUSE:Factory/.libqt5-qtlocation.new.9556/libqt5-qtlocation.changes 2019-08-09 16:49:53.249507938 +0200
@@ -1,0 +2,6 @@
+Thu Aug 8 16:20:20 UTC 2019 - Michel Normand <normand(a)linux.vnet.ibm.com>
+
+- Add _constraints for ppc64/ppc64le for more than 3.5GB disk
+ avoid "No space left on device"
+
+-------------------------------------------------------------------
New:
----
_constraints
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _constraints ++++++
<constraints>
<overwrite>
<conditions>
<arch>ppc64</arch>
<arch>ppc64le</arch>
</conditions>
<hardware>
<disk>
<size unit="G">4</size>
</disk>
</hardware>
</overwrite>
</constraints>
1
0
Hello community,
here is the log from the commit of package kdebase4-workspace for openSUSE:Factory checked in at 2019-08-09 16:49:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdebase4-workspace (Old)
and /work/SRC/openSUSE:Factory/.kdebase4-workspace.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase4-workspace"
Fri Aug 9 16:49:44 2019 rev:337 rq:721851 version:4.11.22
Changes:
--------
--- /work/SRC/openSUSE:Factory/kdebase4-workspace/kdebase4-workspace.changes 2019-03-27 16:16:54.663585934 +0100
+++ /work/SRC/openSUSE:Factory/.kdebase4-workspace.new.9556/kdebase4-workspace.changes 2019-08-09 16:49:46.113507930 +0200
@@ -1,0 +2,6 @@
+Thu Aug 8 12:22:30 UTC 2019 - Michel Normand <normand(a)linux.vnet.ibm.com>
+
+- Add _constraints for ppc64/ppc64le for more than 3.5GB disk
+ avoid "No space left on device"
+
+-------------------------------------------------------------------
New:
----
_constraints
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _constraints ++++++
<constraints>
<overwrite>
<conditions>
<arch>ppc64</arch>
<arch>ppc64le</arch>
</conditions>
<hardware>
<disk>
<size unit="G">4</size>
</disk>
</hardware>
</overwrite>
</constraints>
1
0
Hello community,
here is the log from the commit of package desktop-file-utils for openSUSE:Factory checked in at 2019-08-09 16:49:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/desktop-file-utils (Old)
and /work/SRC/openSUSE:Factory/.desktop-file-utils.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "desktop-file-utils"
Fri Aug 9 16:49:40 2019 rev:63 rq:721850 version:0.23
Changes:
--------
--- /work/SRC/openSUSE:Factory/desktop-file-utils/desktop-file-utils.changes 2019-07-28 10:18:53.692601525 +0200
+++ /work/SRC/openSUSE:Factory/.desktop-file-utils.new.9556/desktop-file-utils.changes 2019-08-09 16:49:41.417507924 +0200
@@ -1,0 +2,6 @@
+Wed Jul 31 16:41:20 CEST 2019 - sbrabec(a)suse.com
+
+- Remove BuildRequires: xz. Unpacking xz now works out of the box.
+- Mute %filetriggerpostun on uninstall.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ desktop-file-utils.spec ++++++
--- /var/tmp/diff_new_pack.jaAUkY/_old 2019-08-09 16:49:41.797507925 +0200
+++ /var/tmp/diff_new_pack.jaAUkY/_new 2019-08-09 16:49:41.801507925 +0200
@@ -32,8 +32,10 @@
Patch1: desktop-file-utils-add-Pantheon.patch
BuildRequires: glib2-devel
BuildRequires: pkg-config
-BuildRequires: xz
#!BuildIgnore: dbus-1-x11
+# We need explicit requirement here, as these are required by
+# %%filetriggerin that could be started early during the installation
+# process.
Requires: aaa_base
Requires: awk
Requires: coreutils
@@ -75,8 +77,10 @@
%{_bindir}/suse-update-mime-defaults || true
%filetriggerpostun -- %{_datadir}/applications
-%{_bindir}/update-desktop-database --quiet %{_datadir}/applications || true
-%{_bindir}/suse-update-mime-defaults || true
+if test -x %{_bindir}/update-desktop-database ; then
+ %{_bindir}/update-desktop-database --quiet %{_datadir}/applications || true
+ %{_bindir}/suse-update-mime-defaults || true
+fi
%files
%defattr(-, root, root)
1
0
Hello community,
here is the log from the commit of package python-pbr for openSUSE:Factory checked in at 2019-08-09 16:49:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pbr (Old)
and /work/SRC/openSUSE:Factory/.python-pbr.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pbr"
Fri Aug 9 16:49:32 2019 rev:49 rq:721839 version:5.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pbr/python-pbr.changes 2019-07-28 10:17:35.080600026 +0200
+++ /work/SRC/openSUSE:Factory/.python-pbr.new.9556/python-pbr.changes 2019-08-09 16:49:37.353507919 +0200
@@ -1,0 +2,6 @@
+Thu Aug 8 15:30:36 UTC 2019 - Thomas Bechtold <tbechtold(a)suse.com>
+
+- update to 5.4.2:
+ * Add Python 3 Train unit tests
+
+-------------------------------------------------------------------
Old:
----
pbr-5.4.1.tar.gz
New:
----
pbr-5.4.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pbr.spec ++++++
--- /var/tmp/diff_new_pack.FcGdua/_old 2019-08-09 16:49:37.845507920 +0200
+++ /var/tmp/diff_new_pack.FcGdua/_new 2019-08-09 16:49:37.849507920 +0200
@@ -26,7 +26,7 @@
%bcond_with test
%endif
Name: python-pbr%{psuffix}
-Version: 5.4.1
+Version: 5.4.2
Release: 0
Summary: Python Build Reasonableness
License: Apache-2.0
++++++ pbr-5.4.1.tar.gz -> pbr-5.4.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/.zuul.yaml new/pbr-5.4.2/.zuul.yaml
--- old/pbr-5.4.1/.zuul.yaml 2019-07-18 04:38:24.000000000 +0200
+++ new/pbr-5.4.2/.zuul.yaml 2019-08-05 11:29:54.000000000 +0200
@@ -110,8 +110,7 @@
- openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python35-jobs
- - openstack-python36-jobs
- - openstack-python37-jobs
+ - openstack-python3-train-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
check:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/ChangeLog new/pbr-5.4.2/ChangeLog
--- old/pbr-5.4.1/ChangeLog 2019-07-18 04:39:01.000000000 +0200
+++ new/pbr-5.4.2/ChangeLog 2019-08-05 11:31:23.000000000 +0200
@@ -1,9 +1,15 @@
CHANGES
=======
+5.4.2
+-----
+
+* Add Python 3 Train unit tests
+
5.4.1
-----
+* Fix parsing on egg names with dashes from git URLs
5.4.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/PKG-INFO new/pbr-5.4.2/PKG-INFO
--- old/pbr-5.4.1/PKG-INFO 2019-07-18 04:39:01.000000000 +0200
+++ new/pbr-5.4.2/PKG-INFO 2019-08-05 11:31:23.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pbr
-Version: 5.4.1
+Version: 5.4.2
Summary: Python Build Reasonableness
Home-page: https://docs.openstack.org/pbr/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr/packaging.py new/pbr-5.4.2/pbr/packaging.py
--- old/pbr-5.4.1/pbr/packaging.py 2019-07-18 04:38:21.000000000 +0200
+++ new/pbr-5.4.2/pbr/packaging.py 2019-08-05 11:29:54.000000000 +0200
@@ -22,6 +22,16 @@
from distutils.command import install as du_install
from distutils import log
+
+# (hberaud) do not use six here to import urlparse
+# to keep this module free from external dependencies
+# to avoid cross dependencies errors on minimal system
+# free from dependencies.
+try:
+ from urllib.parse import urlparse
+except ImportError:
+ from urlparse import urlparse
+
import email
import email.errors
import os
@@ -98,19 +108,31 @@
return []
+def egg_fragment(match):
+ return re.sub(r'(?P<PackageName>[\w.-]+)-'
+ '(?P<GlobalVersion>'
+ '(?P<VersionTripple>'
+ '(?P<Major>0|[1-9][0-9]*)\.'
+ '(?P<Minor>0|[1-9][0-9]*)\.'
+ '(?P<Patch>0|[1-9][0-9]*)){1}'
+ '(?P<Tags>(?:\-'
+ '(?P<Prerelease>(?:(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
+ '(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
+ '(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)(?:[0-9A-Za-z-]+)){1}'
+ '(?:\.(?=[0]{1}[0-9A-Za-z-]{0})(?:[0]{1})|'
+ '\.(?=[1-9]{1}[0-9]*[A-Za-z]{0})(?:[0-9]+)|'
+ '\.(?=[0-9]*[A-Za-z-]+[0-9A-Za-z-]*)'
+ '(?:[0-9A-Za-z-]+))*){1}){0,1}(?:\+'
+ '(?P<Meta>(?:[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))){0,1}))',
+ r'\g<PackageName>>=\g<GlobalVersion>',
+ match.groups()[-1])
+
+
def parse_requirements(requirements_files=None, strip_markers=False):
if requirements_files is None:
requirements_files = get_requirements_files()
- def egg_fragment(match):
- # take a versioned egg fragment and return a
- # versioned package requirement e.g.
- # nova-1.2.3 becomes nova>=1.2.3
- return re.sub(r'([\w.]+)-([\w.-]+)',
- r'\1>=\2',
- match.groups()[-1])
-
requirements = []
for line in get_reqs_from_files(requirements_files):
# Ignore comments
@@ -141,16 +163,19 @@
# -e git://github.com/openstack/nova/master#egg=nova
# -e git://github.com/openstack/nova/master#egg=nova-1.2.3
# -e git+https://foo.com/zipball#egg=bar&subdirectory=baz
- if re.match(r'\s*-e\s+', line):
- line = re.sub(r'\s*-e\s+.*#egg=([^&]+).*$', egg_fragment, line)
- # such as:
# http://github.com/openstack/nova/zipball/master#egg=nova
# http://github.com/openstack/nova/zipball/master#egg=nova-1.2.3
# git+https://foo.com/zipball#egg=bar&subdirectory=baz
- elif re.match(r'\s*(https?|git(\+(https|ssh))?):', line):
- line = re.sub(r'\s*(https?|git(\+(https|ssh))?):.*#egg=([^&]+).*$',
- egg_fragment, line)
+ # git+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3
+ # hg+[ssh]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3
+ # svn+[proto]://github.com/openstack/nova/zipball/master#egg=nova-1.2.3
# -f lines are for index locations, and don't get used here
+ if re.match(r'\s*-e\s+', line):
+ extract = re.match(r'\s*-e\s+(.*)$', line)
+ line = extract.group(1)
+ egg = urlparse(line)
+ if egg.scheme:
+ line = re.sub(r'egg=([^&]+).*$', egg_fragment, egg.fragment)
elif re.match(r'\s*-f\s+', line):
line = None
reason = 'Index Location'
@@ -184,7 +209,7 @@
if re.match(r'\s*-[ef]\s+', line):
dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line))
# lines that are only urls can go in unmolested
- elif re.match(r'\s*(https?|git(\+(https|ssh))?):', line):
+ elif re.match(r'^\s*(https?|git(\+(https|ssh))?|svn|hg)\S*:', line):
dependency_links.append(line)
return dependency_links
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr/tests/test_packaging.py new/pbr-5.4.2/pbr/tests/test_packaging.py
--- old/pbr-5.4.1/pbr/tests/test_packaging.py 2019-07-18 04:38:21.000000000 +0200
+++ new/pbr-5.4.2/pbr/tests/test_packaging.py 2019-08-05 11:29:54.000000000 +0200
@@ -918,6 +918,179 @@
self.assertEqual(exp_parsed, gen_parsed)
+class TestRepositoryURLDependencies(base.BaseTestCase):
+
+ def setUp(self):
+ super(TestRepositoryURLDependencies, self).setUp()
+ self.requirements = os.path.join(tempfile.mkdtemp(),
+ 'requirements.txt')
+ with open(self.requirements, 'w') as f:
+ f.write('\n'.join([
+ '-e git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.…', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.…', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.…', # noqa
+ '-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.…', # noqa
+ '-e git+git://git.project.org/Proj#egg=Proj1',
+ 'git+https://git.project.org/Proj#egg=Proj2-0.0.1',
+ '-e git+ssh://git.project.org/Proj#egg=Proj3',
+ 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2',
+ '-e svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5',
+ 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3',
+ '-e hg+http://hg.project.org/Proj@2019#egg=Proj',
+ 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4',
+ '-e hg+http://hg.project.org/Proj@special_feature#egg=Proj',
+ 'git://foo.com/zipball#egg=foo-bar-1.2.4',
+ 'pypi-proj1', 'pypi-proj2']))
+
+ def test_egg_fragment(self):
+ expected = [
+ 'django-thumborize',
+ 'django-thumborize-beta',
+ 'django-thumborize2-beta',
+ 'django-thumborize2-beta>=4.0.1',
+ 'django-thumborize2-beta>=1.0.0-alpha.beta.1',
+ 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
+ 'django-thumborize2-beta>=2.0.0-rc.1+build.123',
+ 'django-thumborize-beta>=0.0.4',
+ 'django-thumborize-beta>=1.2.3',
+ 'django-thumborize-beta>=10.20.30',
+ 'django-thumborize-beta>=1.1.2-prerelease+meta',
+ 'django-thumborize-beta>=1.1.2+meta',
+ 'django-thumborize-beta>=1.1.2+meta-valid',
+ 'django-thumborize-beta>=1.0.0-alpha',
+ 'django-thumborize-beta>=1.0.0-beta',
+ 'django-thumborize-beta>=1.0.0-alpha.beta',
+ 'django-thumborize-beta>=1.0.0-alpha.beta.1',
+ 'django-thumborize-beta>=1.0.0-alpha.1',
+ 'django-thumborize-beta>=1.0.0-alpha0.valid',
+ 'django-thumborize-beta>=1.0.0-alpha.0valid',
+ 'django-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
+ 'django-thumborize-beta>=1.0.0-rc.1+build.1',
+ 'django-thumborize-beta>=2.0.0-rc.1+build.123',
+ 'django-thumborize-beta>=1.2.3-beta',
+ 'django-thumborize-beta>=10.2.3-DEV-SNAPSHOT',
+ 'django-thumborize-beta>=1.2.3-SNAPSHOT-123',
+ 'django-thumborize-beta>=1.0.0',
+ 'django-thumborize-beta>=2.0.0',
+ 'django-thumborize-beta>=1.1.7',
+ 'django-thumborize-beta>=2.0.0+build.1848',
+ 'django-thumborize-beta>=2.0.1-alpha.1227',
+ 'django-thumborize-beta>=1.0.0-alpha+beta',
+ 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788',
+ 'django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+meta',
+ 'django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12',
+ 'django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1',
+ 'django-thumborize-beta>=999999999999999999.99999999999999.9999999999999', # noqa
+ 'Proj1',
+ 'Proj2>=0.0.1',
+ 'Proj3',
+ 'Proj4>=0.0.2',
+ 'Proj5',
+ 'Proj>=0.0.3',
+ 'Proj',
+ 'Proj>=0.0.4',
+ 'Proj',
+ 'foo-bar>=1.2.4',
+ ]
+ tests = [
+ 'egg=django-thumborize',
+ 'egg=django-thumborize-beta',
+ 'egg=django-thumborize2-beta',
+ 'egg=django-thumborize2-beta-4.0.1',
+ 'egg=django-thumborize2-beta-1.0.0-alpha.beta.1',
+ 'egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okay', # noqa
+ 'egg=django-thumborize2-beta-2.0.0-rc.1+build.123',
+ 'egg=django-thumborize-beta-0.0.4',
+ 'egg=django-thumborize-beta-1.2.3',
+ 'egg=django-thumborize-beta-10.20.30',
+ 'egg=django-thumborize-beta-1.1.2-prerelease+meta',
+ 'egg=django-thumborize-beta-1.1.2+meta',
+ 'egg=django-thumborize-beta-1.1.2+meta-valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha',
+ 'egg=django-thumborize-beta-1.0.0-beta',
+ 'egg=django-thumborize-beta-1.0.0-alpha.beta',
+ 'egg=django-thumborize-beta-1.0.0-alpha.beta.1',
+ 'egg=django-thumborize-beta-1.0.0-alpha.1',
+ 'egg=django-thumborize-beta-1.0.0-alpha0.valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha.0valid',
+ 'egg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
+ 'egg=django-thumborize-beta-1.0.0-rc.1+build.1',
+ 'egg=django-thumborize-beta-2.0.0-rc.1+build.123',
+ 'egg=django-thumborize-beta-1.2.3-beta',
+ 'egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOT',
+ 'egg=django-thumborize-beta-1.2.3-SNAPSHOT-123',
+ 'egg=django-thumborize-beta-1.0.0',
+ 'egg=django-thumborize-beta-2.0.0',
+ 'egg=django-thumborize-beta-1.1.7',
+ 'egg=django-thumborize-beta-2.0.0+build.1848',
+ 'egg=django-thumborize-beta-2.0.1-alpha.1227',
+ 'egg=django-thumborize-beta-1.0.0-alpha+beta',
+ 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788', # noqa
+ 'egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+meta',
+ 'egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12',
+ 'egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1', # noqa
+ 'egg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999', # noqa
+ 'egg=Proj1',
+ 'egg=Proj2-0.0.1',
+ 'egg=Proj3',
+ 'egg=Proj4-0.0.2',
+ 'egg=Proj5',
+ 'egg=Proj-0.0.3',
+ 'egg=Proj',
+ 'egg=Proj-0.0.4',
+ 'egg=Proj',
+ 'egg=foo-bar-1.2.4',
+ ]
+ for index, test in enumerate(tests):
+ self.assertEqual(expected[index],
+ re.sub(r'egg=([^&]+).*$',
+ packaging.egg_fragment,
+ test))
+
+ def test_parse_repo_url_requirements(self):
+ result = packaging.parse_requirements([self.requirements])
+ self.assertEqual(['oslo.messaging>=1.0.0-rc',
+ 'django-thumborize',
+ 'django-thumborize-beta',
+ 'django-thumborize2-beta',
+ 'django-thumborize2-beta>=4.0.1',
+ 'django-thumborize2-beta>=1.0.0-alpha.beta.1',
+ 'django-thumborize2-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay', # noqa
+ 'django-thumborize2-beta>=2.0.0-rc.1+build.123',
+ 'Proj1', 'Proj2>=0.0.1', 'Proj3',
+ 'Proj4>=0.0.2', 'Proj5', 'Proj>=0.0.3',
+ 'Proj', 'Proj>=0.0.4', 'Proj',
+ 'foo-bar>=1.2.4', 'pypi-proj1',
+ 'pypi-proj2'], result)
+
+ def test_parse_repo_url_dependency_links(self):
+ result = packaging.parse_dependency_links([self.requirements])
+ self.assertEqual(
+ [
+ 'git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rc', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-beta', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.…', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.…', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.…', # noqa
+ 'git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.…', # noqa
+ 'git+git://git.project.org/Proj#egg=Proj1',
+ 'git+https://git.project.org/Proj#egg=Proj2-0.0.1',
+ 'git+ssh://git.project.org/Proj#egg=Proj3',
+ 'svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2',
+ 'svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5',
+ 'hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3',
+ 'hg+http://hg.project.org/Proj@2019#egg=Proj',
+ 'hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4',
+ 'hg+http://hg.project.org/Proj@special_feature#egg=Proj',
+ 'git://foo.com/zipball#egg=foo-bar-1.2.4'], result)
+
+
def get_soabi():
soabi = None
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/pbr.egg-info/PKG-INFO new/pbr-5.4.2/pbr.egg-info/PKG-INFO
--- old/pbr-5.4.1/pbr.egg-info/PKG-INFO 2019-07-18 04:39:01.000000000 +0200
+++ new/pbr-5.4.2/pbr.egg-info/PKG-INFO 2019-08-05 11:31:23.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pbr
-Version: 5.4.1
+Version: 5.4.2
Summary: Python Build Reasonableness
Home-page: https://docs.openstack.org/pbr/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pbr-5.4.1/tox.ini new/pbr-5.4.2/tox.ini
--- old/pbr-5.4.1/tox.ini 2019-07-18 04:38:24.000000000 +0200
+++ new/pbr-5.4.2/tox.ini 2019-08-05 11:29:54.000000000 +0200
@@ -1,6 +1,6 @@
[tox]
minversion = 3.1
-envlist = pep8,py27,py36,py37,docs
+envlist = pep8,py27,py37,docs
ignore_basepython_conflict = True
[testenv]
1
0
Hello community,
here is the log from the commit of package jeos-firstboot for openSUSE:Factory checked in at 2019-08-09 16:49:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jeos-firstboot (Old)
and /work/SRC/openSUSE:Factory/.jeos-firstboot.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jeos-firstboot"
Fri Aug 9 16:49:22 2019 rev:28 rq:721837 version:0.0+git20190808.4b6ff0b
Changes:
--------
--- /work/SRC/openSUSE:Factory/jeos-firstboot/jeos-firstboot.changes 2019-07-28 10:21:46.816572333 +0200
+++ /work/SRC/openSUSE:Factory/.jeos-firstboot.new.9556/jeos-firstboot.changes 2019-08-09 16:49:29.425507910 +0200
@@ -1,0 +2,6 @@
+Thu Aug 08 15:20:16 UTC 2019 - jeos-internal(a)suse.de
+
+- Update to version 0.0+git20190808.4b6ff0b:
+ * Ignore systemd-user-sessions in jeos-firstboot-snapshot.service
+
+-------------------------------------------------------------------
Old:
----
jeos-firstboot-0.0+git20190724.7f3b281.tar.xz
New:
----
jeos-firstboot-0.0+git20190808.4b6ff0b.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ jeos-firstboot.spec ++++++
--- /var/tmp/diff_new_pack.QUZ4Vy/_old 2019-08-09 16:49:29.877507911 +0200
+++ /var/tmp/diff_new_pack.QUZ4Vy/_new 2019-08-09 16:49:29.881507911 +0200
@@ -17,7 +17,7 @@
Name: jeos-firstboot
-Version: 0.0+git20190724.7f3b281
+Version: 0.0+git20190808.4b6ff0b
Release: 0
Summary: Simple text based JeOS first boot wizard
License: MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.QUZ4Vy/_old 2019-08-09 16:49:29.909507911 +0200
+++ /var/tmp/diff_new_pack.QUZ4Vy/_new 2019-08-09 16:49:29.909507911 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/openSUSE/jeos-firstboot.git</param>
- <param name="changesrevision">7f3b281fcec967516f199188aaa894269b9704db</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">618ef849e56ca895f442eecc775f50f961138ba0</param></service></servicedata>
\ No newline at end of file
++++++ jeos-firstboot-0.0+git20190724.7f3b281.tar.xz -> jeos-firstboot-0.0+git20190808.4b6ff0b.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jeos-firstboot-0.0+git20190724.7f3b281/files/usr/lib/systemd/system/jeos-firstboot-snapshot.service new/jeos-firstboot-0.0+git20190808.4b6ff0b/files/usr/lib/systemd/system/jeos-firstboot-snapshot.service
--- old/jeos-firstboot-0.0+git20190724.7f3b281/files/usr/lib/systemd/system/jeos-firstboot-snapshot.service 2019-07-24 16:03:28.000000000 +0200
+++ new/jeos-firstboot-0.0+git20190808.4b6ff0b/files/usr/lib/systemd/system/jeos-firstboot-snapshot.service 2019-08-08 17:20:00.000000000 +0200
@@ -10,11 +10,11 @@
# The configuration is already done - so this doesn't make much sense
#OnFailure=poweroff.target
-# jeos-firstboot-snapshot starts between jeos-firstboot and login
+# jeos-firstboot-snapshot starts after jeos-firstboot, time got synced
+# and dbus became available
Wants=time-sync.target
-Requires=jeos-firstboot.service
+Requires=jeos-firstboot.service dbus.service
After=jeos-firstboot.service time-sync.target
-Before=systemd-user-sessions.service
[Service]
Type=oneshot
1
0
Hello community,
here is the log from the commit of package gdb for openSUSE:Factory checked in at 2019-08-09 16:49:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdb (Old)
and /work/SRC/openSUSE:Factory/.gdb.new.9556 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gdb"
Fri Aug 9 16:49:09 2019 rev:129 rq:721798 version:8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/gdb/gdb.changes 2019-07-28 10:18:36.928601501 +0200
+++ /work/SRC/openSUSE:Factory/.gdb.new.9556/gdb.changes 2019-08-09 16:49:18.565507897 +0200
@@ -1,0 +2,23 @@
+Tue Aug 6 21:36:49 UTC 2019 - Tom de Vries <tdevries(a)suse.de>
+
+- Master backport:
+ * gdb-fix-breakpoints-on-file-reloads-for-pie-binaries.patch
+- Master backports testsuite:
+ * gdb-testsuite-i386-pkru-exp.patch
+ * gdb-testsuite-read1-fixes.patch
+ * gdb-testsuite-pie-no-pie.patch
+ * gdb-testsuite-add-missing-initial-prompt-read-in-multidictionary.exp.patch
+- Work around bsc#1115034:
+ * gdb-testsuite-ada-pie.patch
+- Fixes for fedora patches:
+ * gdb-testsuite-fix-perror-in-gdb.opt-fortran-string.exp.patch
+ * gdb-testsuite-avoid-pagination-in-attach-32.exp.patch
+
+-------------------------------------------------------------------
+Thu Jul 25 21:46:56 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Remove some conditionals for SLE-10 (build is disabled/unresolvable).
+- BuildRequire makeinfo instead of full texinfo (requiring texlive)
+ where available (SLE >= 12).
+
+-------------------------------------------------------------------
New:
----
gdb-fix-breakpoints-on-file-reloads-for-pie-binaries.patch
gdb-testsuite-ada-pie.patch
gdb-testsuite-add-missing-initial-prompt-read-in-multidictionary.exp.patch
gdb-testsuite-avoid-pagination-in-attach-32.exp.patch
gdb-testsuite-fix-perror-in-gdb.opt-fortran-string.exp.patch
gdb-testsuite-i386-pkru-exp.patch
gdb-testsuite-pie-no-pie.patch
gdb-testsuite-read1-fixes.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.gL6sfm/_old 2019-08-09 16:49:21.897507901 +0200
+++ /var/tmp/diff_new_pack.gL6sfm/_new 2019-08-09 16:49:21.901507901 +0200
@@ -212,10 +212,16 @@
Patch115: gdb-rhbz1371380-gcore-elf-headers.patch
#Fedora Packages end
+#Fedora patches fixup
+
+Patch500: gdb-testsuite-avoid-pagination-in-attach-32.exp.patch
+Patch501: gdb-testsuite-fix-perror-in-gdb.opt-fortran-string.exp.patch
+
# openSUSE specific
Patch1000: gdb-gcore-bash.patch
Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch
+Patch1003: gdb-testsuite-ada-pie.patch
# Patches to upstream
@@ -233,6 +239,11 @@
Patch2001: gdb-fix-riscv-tdep.patch
Patch2002: gdb-x86_64-i386-syscall-restart-master.patch
Patch2003: gdb-suppress-sigttou-when-handling-errors.patch
+Patch2004: gdb-testsuite-add-missing-initial-prompt-read-in-multidictionary.exp.patch
+Patch2005: gdb-testsuite-pie-no-pie.patch
+Patch2006: gdb-fix-breakpoints-on-file-reloads-for-pie-binaries.patch
+Patch2007: gdb-testsuite-read1-fixes.patch
+Patch2008: gdb-testsuite-i386-pkru-exp.patch
# Submitted for master
@@ -258,23 +269,21 @@
# support for newer distro versions in anticipation of a move to guile 2.2.
BuildRequires: guile-devel
%endif
-BuildRequires: ncurses-devel
-BuildRequires: texinfo
-%if %{suse_version} < 1020
-BuildRequires: expat
-%else
BuildRequires: libexpat-devel
+%if 0%{suse_version} >= 1200
+BuildRequires: makeinfo
+%else
+BuildRequires: texinfo
%endif
BuildRequires: mpfr-devel
+BuildRequires: ncurses-devel
BuildRequires: pkg-config
BuildRequires: readline-devel
BuildRequires: rpm-devel
-BuildRequires: zlib-devel
BuildRequires: xz-devel
+BuildRequires: zlib-devel
%if 0%{!?_without_python:1}
-%if 0%{suse_version} > 1000
Requires: %{python}-base
-%endif
BuildRequires: %{python}-devel
%endif # 0%{!?_without_python:1}
@@ -306,7 +315,6 @@
%define ada_arch %ix86 x86_64 ppc s390 ia64
%endif
-
# Ensure the devel libraries are installed for both multilib arches.
%global bits_local %{?_isa}
%global bits_other %{?_isa}
@@ -383,7 +391,6 @@
and printing their data.
%ifnarch riscv64
-%if %{suse_version} > 1010
%package -n gdbserver
Summary: A standalone server for GDB (the GNU source-level debugger)
License: GPL-3.0-or-later AND GPL-3.0-with-GCC-exception AND LGPL-2.1-or-later AND LGPL-3.0-or-later
@@ -397,7 +404,6 @@
This package provides a program that allows you to run GDB on a different
machine than the one which is running the program being debugged.
%endif
-%endif
%package doc
Summary: Documentation for GDB (the GNU source-level debugger)
@@ -557,8 +563,12 @@
%patch115 -p1
#Fedora patching end
+%patch500 -p1
+%patch501 -p1
+
%patch1000 -p1
%patch1002 -p1
+%patch1003 -p1
%patch1005 -p1
%patch1007 -p1
@@ -567,6 +577,11 @@
%patch2001 -p1
%patch2002 -p1
%patch2003 -p1
+%patch2004 -p1
+%patch2005 -p1
+%patch2006 -p1
+%patch2007 -p1
+%patch2008 -p1
%patch2500 -p1
%patch2501 -p1
@@ -1084,16 +1099,6 @@
%{_datadir}/gdb
%{_infodir}/annotate.info*
%{_infodir}/gdb.info*
-%ifnarch riscv64
-# In SLE10 gdbserver is not in a separate package
-%if %{suse_version} <= 1010
-%{_bindir}/gdbserver
-%{_mandir}/*/gdbserver.1*
-%ifnarch s390 s390x ia64 ppc %{sparc}
-%{_libdir}/libinproctrace.so
-%endif
-%endif
-%endif
%if %{with testsuite}
%files testresults
@@ -1104,9 +1109,7 @@
# don't include the files in include, they are part of binutils
-%ifnarch riscv64
-%if %{suse_version} > 1010
-%ifnarch sparcv9 hppa
+%ifnarch riscv64 sparcv9 hppa
%files -n gdbserver
%defattr(-,root,root)
%{_bindir}/gdbserver
@@ -1115,8 +1118,6 @@
%{_libdir}/libinproctrace.so
%endif # %%{have_inproctrace}
%endif
-%endif
-%endif
%post doc
# This step is part of the installation of the RPM. Not to be confused
++++++ gdb-fix-breakpoints-on-file-reloads-for-pie-binaries.patch ++++++
Fix breakpoints on file reloads for PIE binaries
When a binary is built using PIE, reloading the file will cause GDB to error
on restart. For example:
gdb ./a.out
(gdb) break main
(gdb) run
(gdb) file ./a.out
(gdb) continue
Will cause GDB to error with:
Continuing.
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x9e0
Command aborted.
This is due to the symbol offsets not being relocated after reloading the file.
Fix is to ensure solib_create_inferior_hook is called, in the same manner as
infrun.c:follow_exec().
Expand the idempotent test to cover PIE scenarios.
gdb/ChangeLog:
* symfile.c (symbol_file_command): Call solib_create_inferior_hook.
gdb/testsuite/ChangeLog:
* gdb.base/break-idempotent.exp: Test both PIE and non PIE.
---
gdb/ChangeLog | 4 ++
gdb/symfile.c | 12 ++++++
gdb/testsuite/ChangeLog | 4 ++
gdb/testsuite/gdb.base/break-idempotent.exp | 66 ++++++++++++++++-------------
4 files changed, 56 insertions(+), 30 deletions(-)
diff --git a/gdb/symfile.c b/gdb/symfile.c
index bd79315687..a03ac29541 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1672,7 +1672,19 @@ symbol_file_command (const char *args, int from_tty)
validate_readnow_readnever (flags);
+ /* Set SYMFILE_DEFER_BP_RESET because the proper displacement for a PIE
+ (Position Independent Executable) main symbol file will only be
+ computed by the solib_create_inferior_hook below. Without it,
+ breakpoint_re_set would fail to insert the breakpoints with the zero
+ displacement. */
+ add_flags |= SYMFILE_DEFER_BP_RESET;
+
symbol_file_add_main_1 (name, add_flags, flags, offset);
+
+ solib_create_inferior_hook (from_tty);
+
+ /* Now it's safe to re-add the breakpoints. */
+ breakpoint_re_set ();
}
}
diff --git a/gdb/testsuite/gdb.base/break-idempotent.exp b/gdb/testsuite/gdb.base/break-idempotent.exp
index 902a5f818b..96f91c50f9 100644
--- a/gdb/testsuite/gdb.base/break-idempotent.exp
+++ b/gdb/testsuite/gdb.base/break-idempotent.exp
@@ -36,23 +36,6 @@
standard_testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
- return -1
-}
-
-if ![runto_main] then {
- fail "can't run to main"
- return 0
-}
-
-if [is_remote host] {
- set arg [remote_download host $binfile]
- if { $arg == "" } {
- perror "download failed"
- return -1
- }
-}
-
# Force a breakpoint re-set in GDB. Currently this is done by
# reloading symbols with the "file" command.
@@ -123,7 +106,7 @@ proc set_breakpoint { break_command } {
proc test_break { always_inserted break_command } {
set cmd [lindex [split "$break_command"] 0]
- with_test_prefix "always-inserted $always_inserted: $cmd" {
+ with_test_prefix "$cmd" {
delete_breakpoints
if ![runto_main] then {
@@ -163,20 +146,43 @@ proc test_break { always_inserted break_command } {
}
}
-foreach always_inserted { "off" "on" } {
- test_break $always_inserted "break"
+# The testcase uses the "file" command to force breakpoint re-set in
+# GDB. Test both with and without PIE, as GDB used to mishandle
+# breakpoint re-set when reloading PIEs.
+foreach_with_prefix pie { "nopie" "pie" } {
+
+ set opts {debug}
+ lappend opts $pie
- if {![skip_hw_breakpoint_tests]} {
- test_break $always_inserted "hbreak"
+ set binfile [standard_output_file $testfile-$pie]
+
+ if {[prepare_for_testing "failed to prepare" $binfile $srcfile $opts]} {
+ continue
}
- if {![skip_hw_watchpoint_tests]} {
- test_break $always_inserted "watch"
+ if [is_remote host] {
+ set arg [remote_download host $binfile]
+ if { $arg == "" } {
+ untested "download failed"
+ continue
+ }
}
- if {![skip_hw_watchpoint_access_tests]
- && ![skip_hw_watchpoint_multi_tests]} {
- test_break $always_inserted "rwatch"
- test_break $always_inserted "awatch"
+ foreach_with_prefix always_inserted { "off" "on" } {
+ test_break $always_inserted "break"
+
+ if {![skip_hw_breakpoint_tests]} {
+ test_break $always_inserted "hbreak"
+ }
+
+ if {![skip_hw_watchpoint_tests]} {
+ test_break $always_inserted "watch"
+ }
+
+ if {![skip_hw_watchpoint_access_tests]
+ && ![skip_hw_watchpoint_multi_tests]} {
+ test_break $always_inserted "rwatch"
+ test_break $always_inserted "awatch"
+ }
}
}
++++++ gdb-testsuite-ada-pie.patch ++++++
[gdb/testsuite] Compile ada hello world for skip_ada_tests
For openSUSE Leap 15.0 with gcc-PIE installed (which makes gcc create PIE
executables by default) we get:
...
FAIL: gdb.ada/O2_float_param.exp: compilation foo.adb
...
The problem is that while gcc-PIE affects gcc, it does not affect gnatlink,
so it links in the libgnat.a, rather than libgnat_pic.a. [ This is
bsc#1115034. ]
[ Without gcc-PIE, we have a related problem: if we run ada tests with
--target_board=unix/-fPIE/-pie, which makes sure PIE executables are generated
for c/c++ test-cases, still we get non-PIE ada executables, because gnatmake
does not pass -pie to gnatlink. And if gnatmake would pass -pie to gnatlink,
we'd run into the same FAIL as above because gnatlink does not use use
libgnat_pic.a when -pie is specified (this is PR gcc/87936). So, in order to
have ada tests generate PIE executables, we need
--target_board=unix/-fPIE/-largs/-pie/-lgnat_pic/-margs, which will not work
with c/c++ test-cases. ]
For now, we check whether we can compile an ada hello world, and if not,
generate an UNSUPPORTED in either skip_ada_tests or gdb_compile_ada, to
not have this problem result in ~200 FAILs.
gdb/testsuite/ChangeLog:
2019-08-06 Tom de Vries <tdevries(a)suse.de>
* lib/ada.exp (gdb_compile_ada_bare): Factor out of ...
(gdb_compile_ada): ... here.
(gdb_can_compile_ada): New gdb_caching_proc.
* lib/gdb.exp: Add load_lib ada.exp.
(skip_ada_tests): Return 1 if !gdb_can_compile_ada.
---
gdb/testsuite/lib/ada.exp | 38 +++++++++++++++++++++++++++++++++++++-
gdb/testsuite/lib/gdb.exp | 6 ++++++
2 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index 1345c747c5..e3a600327e 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -29,7 +29,7 @@ proc target_compile_ada_from_dir {builddir source dest type options} {
# Compile some Ada code.
-proc gdb_compile_ada {source dest type options} {
+proc gdb_compile_ada_bare {source dest type options} {
set srcdir [file dirname $source]
set gprdir [file dirname $srcdir]
@@ -53,10 +53,46 @@ proc gdb_compile_ada {source dest type options} {
# We therefore simply check whether the dest file has been created
# or not. Unless not present, the build has succeeded.
if [file exists $dest] { set result "" }
+ return $result
+}
+
+proc gdb_compile_ada {source dest type options} {
+ if { [gdb_can_compile_ada] == 0 } {
+ global gdb_test_file_name
+ unsupported "$gdb_test_file_name"
+ return "Cannot compile ada"
+ }
+ set result [gdb_compile_ada_bare $source $dest $type $options]
gdb_compile_test $source $result
return $result
}
+gdb_caching_proc gdb_can_compile_ada {
+ set name "hello"
+ set dir "[pwd]/tmp-ada-hello-[pid]"
+ set src "$dir/$name.adb"
+ set dest "$dir/$name"
+
+ set code {
+ with Ada.Text_IO;
+
+ procedure Hello is
+ begin
+ Ada.Text_IO.Put_Line("Hello, world!");
+ end Hello;
+ }
+
+ file mkdir $dir
+ gdb_produce_source $src $code
+ set res [gdb_compile_ada_bare $src $dest executable {debug}]
+ file delete -force $dir
+
+ if { $res != "" } {
+ return 0
+ }
+ return 1
+}
+
# Like standard_testfile, but for Ada. Historically the Ada tests
# used a different naming convention from many of the other gdb tests,
# and this difference was preserved during the conversion to
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index edc8dfcdfd..8585320bd2 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -29,6 +29,7 @@ load_lib libgloss.exp
load_lib cache.exp
load_lib gdb-utils.exp
load_lib memory.exp
+load_lib ada.exp
global GDB
@@ -1881,6 +1882,11 @@ proc skip_fortran_tests {} {
# Return a 1 if I don't even want to try to test ada.
proc skip_ada_tests {} {
+ if { [gdb_can_compile_ada] == 0 } {
+ global gdb_test_file_name
+ unsupported "$gdb_test_file_name"
+ return 1
+ }
return 0
}
++++++ gdb-testsuite-add-missing-initial-prompt-read-in-multidictionary.exp.patch ++++++
[gdb/testsuite] Add missing initial prompt read in multidictionary.exp
When running multidictionary.exp in conjunction with:
...
$ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1))
...
we get:
...
Running gdb/testsuite/gdb.dwarf2/multidictionary.exp ...
ERROR: Couldn't load multidictionary into gdb.
=== gdb Summary ===
nr of unresolved testcases 1
...
The multidictionary test-case needs -readnow, and achieves this using:
...
gdb_spawn_with_cmdline_opts "-readnow"
gdb_load
...
but the initial gdb prompt is not read. Usually, the following gdb_load
command accidentally consumes that initial prompt (at the gdb_expect for the
kill command in gdb_file_cmd). But under high load, that doesn't happen and
we run into the error.
Fix this by consuming the initial gdb prompt after spawning gdb.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-07-23 Tom de Vries <tdevries(a)suse.de>
PR testsuite/24842
* gdb.dwarf2/multidictionary.exp: Consume initial prompt after
gdb_spawn_with_cmdline_opts.
---
gdb/testsuite/gdb.dwarf2/multidictionary.exp | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/gdb/testsuite/gdb.dwarf2/multidictionary.exp b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
index 5588ef2144..c307ed8adc 100644
--- a/gdb/testsuite/gdb.dwarf2/multidictionary.exp
+++ b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
@@ -148,6 +148,12 @@ if {[build_executable $testfile.exp $testfile [list $asm_file $srcfile] {}] \
# We force the DIEs above to be read in via "-readnow".
gdb_spawn_with_cmdline_opts "-readnow"
+set test "initial prompt"
+gdb_test_multiple "" $test {
+ -re ".*$gdb_prompt $" {
+ pass "$test"
+ }
+}
gdb_load $binfile
# All we need to do is check whether GDB is alive. Without
++++++ gdb-testsuite-avoid-pagination-in-attach-32.exp.patch ++++++
Avoid pagination in attach-32.exp
When running test-case attach-32.exp from
gdb-6.3-inferior-notification-20050721.patch, we run into:
...
spawn build/gdb/testsuite/../../gdb/gdb -nw -nx \
-data-directory build/gdb/testsuite/../data-directory --pid=27520
GNU gdb (GDB) 8.3.50.20190726-git
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 27520
Reading symbols from build/gdb/testsuite/outputs/gdb.base/attach-32/attach-32...
Reading symbols from /lib/libm.so.6...
(No debugging symbols found in /lib/libm.so.6)
Reading symbols from /lib/libc.so.6...
(No debugging symbols found in /lib/libc.so.6)
(No debugging symbols found in /lib/libc.so.6)
Reading symbols from /lib/ld-linux.so.2...
(No debugging symbols found in /lib/ld-linux.so.2)
main () at /data/gdb_versions/devel/src/gdb/testsuite/gdb.base/attach-32.c:15
--Type <RET> for more, q to quit, c to continue without paging--ERROR: \
(timeout) GDB never initialized after 10 seconds.
...
The test-case hangs because pagination is activated, with height == 25
due to gdb_init.
Fix this by starting gdb using -iex "set width 0" -iex "set height 0" -quiet,
similar to how it is done in attach.exp (see commit fef1b2933d "Avoid
pagination in attach.exp").
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-07-26 Tom de Vries <tdevries(a)suse.de>
* gdb.base/attach-32.exp: Start gdb using -iex "set width 0" -iex
"set height 0" -quiet.
---
gdb/testsuite/gdb.base/attach-32.exp | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/gdb/testsuite/gdb.base/attach-32.exp b/gdb/testsuite/gdb.base/attach-32.exp
index 67ded02ccf..7627a0a5db 100644
--- a/gdb/testsuite/gdb.base/attach-32.exp
+++ b/gdb/testsuite/gdb.base/attach-32.exp
@@ -212,10 +212,14 @@ if { [istarget "*-*-cygwin*"] } {
set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
}
-set GDBFLAGS_orig $GDBFLAGS
-set GDBFLAGS "--pid=$testpid"
-gdb_start
-set GDBFLAGS $GDBFLAGS_orig
+set res [gdb_spawn_with_cmdline_opts \
+ "-quiet -iex \"set height 0\" -iex \"set width 0\" --pid=$testpid"]
+set test "starting with --pid"
+gdb_test_multiple "" $test {
+ -re "Reading symbols from.*$gdb_prompt $" {
+ pass "$test"
+ }
+}
gdb_reinitialize_dir $srcdir/$subdir
@@ -234,10 +238,14 @@ if { [istarget "*-*-cygwin*"] } {
set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
}
-set GDBFLAGS_orig $GDBFLAGS
-set GDBFLAGS "--pid=$testpid"
-gdb_start
-set GDBFLAGS $GDBFLAGS_orig
+set res [gdb_spawn_with_cmdline_opts \
+ "-quiet -iex \"set height 0\" -iex \"set width 0\" --pid=$testpid"]
+set test "starting with --pid"
+gdb_test_multiple "" $test {
+ -re "Reading symbols from.*$gdb_prompt $" {
+ pass "$test"
+ }
+}
gdb_reinitialize_dir $srcdir/$subdir
do_call_attach_tests
++++++ gdb-testsuite-fix-perror-in-gdb.opt-fortran-string.exp.patch ++++++
Fix perror in gdb.opt/fortran-string.exp
When running the test-case gdb.opt/fortran-string.exp from
gdb-archer-vla-tests.patch, we run into:
...
ERROR: couldn't run to breakpoint MAIN__
...
The test case attempts to set a breakpoint on a line containing an "s = s"
assignment and when that doesn't work, it error out with above error message.
The test-case executable is optimized, and the "s = s" assignment is optimized
away, so there's not really an error, it's just that the test-case is
unsupported due to the optimizations done by the compiler.
Fix this by replacing the ERROR with UNSUPPORTED.
gdb/testsuite/ChangeLog:
2019-07-26 Tom de Vries <tdevries(a)suse.de>
* gdb.opt/fortran-string.exp: Replace error with unsupported.
---
gdb/testsuite/gdb.opt/fortran-string.exp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.opt/fortran-string.exp b/gdb/testsuite/gdb.opt/fortran-string.exp
index 90a2bdf212..6e5f37d439 100644
--- a/gdb/testsuite/gdb.opt/fortran-string.exp
+++ b/gdb/testsuite/gdb.opt/fortran-string.exp
@@ -30,7 +30,7 @@ if { [prepare_for_testing ${test}.exp ${test} ${srcfile} {debug f90 additional_f
}
if ![runto $srcfile:[gdb_get_line_number "s = s"]] then {
- perror "couldn't run to breakpoint MAIN__"
+ unsupported "couldn't run to breakpoint s = s in optimized executable"
continue
}
++++++ gdb-testsuite-i386-pkru-exp.patch ++++++
commit 1512d3b7b9de3a1943623f2e1f373459d5d80a98
Author: Tom de Vries <tdevries(a)suse.de>
Date: Fri Jul 26 21:49:45 2019 +0200
[gdb/testsuite] Fix unterminated string in i386-pkru.exp
I ran into this error:
...
ERROR: tcl error sourcing gdb/testsuite/gdb.arch/i386-pkru.exp.
ERROR: missing "
while executing
"untested ""
invoked from within
"if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
[list debug additional_flags=${comp_flags}]] } {
untested "failed to c..."
(file "gdb/testsuite/gdb.arch/i386-pkru.exp" line 25)
invoked from within
...
caused by:
...
untested "failed to compile x86 PKEYS test.
...
Fix the unterminated string.
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-07-26 Tom de Vries <tdevries(a)suse.de>
* gdb.arch/i386-pkru.exp: Fix unterminated string.
diff --git a/gdb/testsuite/gdb.arch/i386-pkru.exp b/gdb/testsuite/gdb.arch/i386-pkru.exp
index 7a2c65799e..db271522f0 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.exp
+++ b/gdb/testsuite/gdb.arch/i386-pkru.exp
@@ -24,7 +24,7 @@ set comp_flags "-I${srcdir}/../nat/"
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
[list debug additional_flags=${comp_flags}]] } {
- untested "failed to compile x86 PKEYS test.
+ untested "failed to compile x86 PKEYS test."
return -1
}
++++++ gdb-testsuite-pie-no-pie.patch ++++++
- Testsuite: Ensure pie is disabled on some tests
- Testsuite: Remove pie from trace tests
- [gdb/testsuite] Fail in gdb_compile if nopie results in PIE executable
- [gdb/testsuite] Fail in gdb_compile if pie results in non-PIE executable
---------------------------------------------------------
[gdb/testsuite] Fail in gdb_compile if pie results in non-PIE executable
When running gdb.base/break-idempotent.exp with
--target_board=unix/-fno-PIE/-no-pie, we get:
...
nr of expected passes 140
...
The test-case is compiled once with nopie and once with pie, but in both cases
we end up with a non-PIE executable. The "-fno-PIE -no-pie" options specified
using the target_board are interpreted by dejagnu as multilib_flags, and end up
overriding the pie flags.
Fix this by checking in gdb_compile if the resulting exec is non-PIE despite of
a pie setting, and if so return an error:
...
Running gdb/testsuite/gdb.base/break-idempotent.exp ...
gdb compile failed, pie failed to generate PIE executable
=== gdb Summary ===
nr of expected passes 70
nr of untested testcases 1
...
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-08-05 Tom de Vries <tdevries(a)suse.de>
* lib/gdb.exp (version_at_least): Factor out of ...
(tcl_version_at_least): ... here.
(gdb_compile): Fail if pie results in non-PIE executable.
(readelf_version, readelf_prints_pie): New proc.
(exec_is_pie): Return -1 if unknown.
---------------------------------------------------------
[gdb/testsuite] Fail in gdb_compile if nopie results in PIE executable
When running gdb.base/dump.exp with --target_board=unix/-fPIE/-pie, we get:
...
Running gdb/testsuite/gdb.base/dump.exp ...
FAIL: gdb.base/dump.exp: dump array as value, intel hex
...
The FAIL happens because although the test specifies nopie, the exec is
in fact compiled as PIE. The "-fPIE -pie" options specified using the
target_board are interpreted by dejagnu as multilib_flags, and end up
overriding the nopie flags.
Fix this by checking in gdb_compile if the resulting exec is PIE despite of
a nopie setting, and if so return an error:
...
Running gdb/testsuite/gdb.base/dump.exp ...
gdb compile failed, nopie failed to prevent PIE executable
=== gdb Summary ===
nr of untested testcases 1
...
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2019-07-30 Tom de Vries <tdevries(a)suse.de>
PR testsuite/24834
* lib/gdb.exp (gdb_compile): Fail if nopie results in PIE executable.
(exec_is_pie): New proc.
---------------------------------------------------------
Testsuite: Remove pie from trace tests
Ubuntu/Debian defaults PIE to enabled. This causes the trace tests
to fall over due to variables being returned as "unavailable". The
tests were never designed to work with pie.
Simply ensure the nopie flag is always used for the failing tests.
This removes 100+ failures when running native-gdbserver on Ubuntu 18.04.
gdb/testsuite/ChangeLog:
* gdb.trace/backtrace.exp: Use nopie flag.
* gdb.trace/circ.exp: Likewise.
* gdb.trace/collection.exp: Likewise.
* gdb.trace/ftrace.exp: Likewise.
* gdb.trace/mi-trace-unavailable.exp: Likewise.
* gdb.trace/mi-traceframe-changed.exp: Likewise.
* gdb.trace/qtro.exp: Likewise.
* gdb.trace/read-memory.exp: Likewise.
* gdb.trace/report.exp: Likewise.
* gdb.trace/tfile.exp: Likewise.
* gdb.trace/tfind.exp: Likewise.
* gdb.trace/unavailable.exp: Likewise.
---------------------------------------------------------
Testsuite: Ensure pie is disabled on some tests
Recent versions of Ubuntu and Debian default GCC to enable pie.
In dump.exp, pie will causes addresses to be out of range for IHEX.
In break-interp.exp, pie is explicitly set for some tests and assumed
to be disabled for the remainder.
Ensure pie is disabled for these tests when required.
In addition, add a pie option to gdb_compile to match the nopie option
and simplify use.
gdb/testsuite/ChangeLog:
* README: Add pie options.
* gdb.base/break-interp.exp: Ensure pie is disabled.
* gdb.base/dump.exp: Likewise.
* lib/gdb.exp (gdb_compile): Add pie option.
---------------------------------------------------------
diff --git a/gdb/testsuite/README b/gdb/testsuite/README
index b5e75b9a79..db90ea4698 100644
--- a/gdb/testsuite/README
+++ b/gdb/testsuite/README
@@ -482,6 +482,16 @@ gdb,no_thread_names
The target doesn't support thread names.
+gdb,pie_flag
+
+ The flag required to force the compiler to produce position-independent
+ executables.
+
+gdb,pie_ldflag
+
+ The flag required to force the linker to produce position-independent
+ executables.
+
gdb,nopie_flag
The flag required to force the compiler to produce non-position-independent
diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
index f85e8a650a..51e31f6503 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -625,8 +625,10 @@ foreach ldprelink {NO YES} {
lappend opts {debug}
}
if {$binpie != "NO"} {
- lappend opts {additional_flags=-fPIE}
- lappend opts {ldflags=-pie}
+ lappend opts {pie}
+ } else {
+ # Debian9/Ubuntu16.10 onwards default to PIE enabled. Ensure it is disabled.
+ lappend opts {nopie}
}
set dir ${exec}.d
diff --git a/gdb/testsuite/gdb.base/dump.exp b/gdb/testsuite/gdb.base/dump.exp
index 44b0988b80..52ba5f8ebe 100644
--- a/gdb/testsuite/gdb.base/dump.exp
+++ b/gdb/testsuite/gdb.base/dump.exp
@@ -36,6 +36,10 @@ if {[istarget "spu*-*-*"]} then {
set is64bitonly "yes"
}
+# Debian9/Ubuntu16.10 onwards default to PIE enabled. Ensure it is disabled as
+# this causes addresses to be out of range for IHEX.
+lappend options {nopie}
+
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${options}] != "" } {
untested "failed to compile"
return -1
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 36f167336c..3d5f8726f7 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3492,6 +3492,7 @@ set gdb_saved_set_unbuffered_mode_obj ""
# dynamically load libraries at runtime. For example, on Linux, this adds
# -ldl so that the test can use dlopen.
# - nowarnings: Inhibit all compiler warnings.
+# - pie: Force creation of PIE executables.
# - nopie: Prevent creation of PIE executables.
#
# And here are some of the not too obscure options understood by DejaGnu that
@@ -3630,8 +3631,33 @@ proc gdb_compile {source dest type options} {
set options [lreplace $options $nowarnings $nowarnings $flag]
}
- # Replace the "nopie" option with the appropriate additional_flags
- # to disable PIE executables.
+ # Replace the "pie" option with the appropriate compiler and linker flags
+ # to enable PIE executables.
+ set pie [lsearch -exact $options pie]
+ if {$pie != -1} {
+ if [target_info exists gdb,pie_flag] {
+ set flag "additional_flags=[target_info gdb,pie_flag]"
+ } else {
+ # For safety, use fPIE rather than fpie. On AArch64, m68k, PowerPC
+ # and SPARC, fpie can cause compile errors due to the GOT exceeding
+ # a maximum size. On other architectures the two flags are
+ # identical (see the GCC manual). Note Debian9 and Ubuntu16.10
+ # onwards default GCC to using fPIE. If you do require fpie, then
+ # it can be set using the pie_flag.
+ set flag "additional_flags=-fPIE"
+ }
+ set options [lreplace $options $pie $pie $flag]
+
+ if [target_info exists gdb,pie_ldflag] {
+ set flag "ldflags=[target_info gdb,pie_ldflag]"
+ } else {
+ set flag "ldflags=-pie"
+ }
+ lappend options "$flag"
+ }
+
+ # Replace the "nopie" option with the appropriate linker flag to disable
+ # PIE executables. There are no compiler flags for this option.
set nopie [lsearch -exact $options nopie]
if {$nopie != -1} {
if [target_info exists gdb,nopie_flag] {
diff --git a/gdb/testsuite/gdb.trace/backtrace.exp b/gdb/testsuite/gdb.trace/backtrace.exp
index 0f60153cb5..24e097135f 100644
--- a/gdb/testsuite/gdb.trace/backtrace.exp
+++ b/gdb/testsuite/gdb.trace/backtrace.exp
@@ -27,7 +27,7 @@ if ![gdb_trace_common_supports_arch] {
}
if [prepare_for_testing "failed to prepare" $executable $srcfile \
- [list debug nowarnings]] {
+ [list debug nowarnings nopie]] {
return -1
}
diff --git a/gdb/testsuite/gdb.trace/circ.exp b/gdb/testsuite/gdb.trace/circ.exp
index d48eca5deb..30ec9b47fc 100644
--- a/gdb/testsuite/gdb.trace/circ.exp
+++ b/gdb/testsuite/gdb.trace/circ.exp
@@ -17,7 +17,7 @@ load_lib "trace-support.exp"
standard_testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nowarnings}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nowarnings nopie}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.trace/collection.exp
index 8c064385ba..44eccbe865 100644
--- a/gdb/testsuite/gdb.trace/collection.exp
+++ b/gdb/testsuite/gdb.trace/collection.exp
@@ -19,7 +19,7 @@ load_lib "trace-support.exp"
standard_testfile
set executable $testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nowarnings}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nowarnings nopie}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
index f97c2c6193..702efe76bb 100644
--- a/gdb/testsuite/gdb.trace/ftrace.exp
+++ b/gdb/testsuite/gdb.trace/ftrace.exp
@@ -53,7 +53,7 @@ set remote_libipa [gdb_load_shlib $libipa]
# file unused because linking not done" when building the object.
if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
- executable [list debug $additional_flags shlib=$libipa] ] != "" } {
+ executable [list debug nopie $additional_flags shlib=$libipa] ] != "" } {
untested "failed to compile"
return -1
}
diff --git a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
index 5ec4bbc152..f0b3c52728 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
@@ -17,7 +17,7 @@ load_lib trace-support.exp
standard_testfile trace-unavailable.c
-if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug}] } {
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug nopie}] } {
return -1
}
diff --git a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
index 781d3646cb..1244b5b273 100644
--- a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
@@ -32,7 +32,7 @@ if {![is_remote host] && ![is_remote target]} {
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
executable \
- [list debug nowarnings \
+ [list debug nowarnings nopie\
"additional_flags=-DTFILE_DIR=\"$tfile_dir\""]] \
!= "" } {
untested "failed to compile"
diff --git a/gdb/testsuite/gdb.trace/qtro.exp b/gdb/testsuite/gdb.trace/qtro.exp
index 9eabfeb51e..d5d912b5b9 100644
--- a/gdb/testsuite/gdb.trace/qtro.exp
+++ b/gdb/testsuite/gdb.trace/qtro.exp
@@ -22,7 +22,7 @@ load_lib trace-support.exp
standard_testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nopie}]} {
return -1
}
clean_restart $testfile
diff --git a/gdb/testsuite/gdb.trace/read-memory.exp b/gdb/testsuite/gdb.trace/read-memory.exp
index 61fc137916..4d19f0074d 100644
--- a/gdb/testsuite/gdb.trace/read-memory.exp
+++ b/gdb/testsuite/gdb.trace/read-memory.exp
@@ -17,7 +17,7 @@ load_lib "trace-support.exp"
standard_testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug nopie}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp
index f43fbb7c62..c847ab0c5b 100644
--- a/gdb/testsuite/gdb.trace/report.exp
+++ b/gdb/testsuite/gdb.trace/report.exp
@@ -27,7 +27,7 @@ if ![gdb_trace_common_supports_arch] {
return -1
}
if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
- executable {debug nowarnings}] != "" } {
+ executable {debug nowarnings nopie}] != "" } {
untested "failed to compile"
return -1
}
diff --git a/gdb/testsuite/gdb.trace/tfile.exp b/gdb/testsuite/gdb.trace/tfile.exp
index 04f3e98e99..23f4fc58d0 100644
--- a/gdb/testsuite/gdb.trace/tfile.exp
+++ b/gdb/testsuite/gdb.trace/tfile.exp
@@ -37,7 +37,7 @@ if {![is_remote host] && ![is_remote target]} {
standard_testfile
if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
executable \
- [list debug \
+ [list debug nopie\
"additional_flags=-DTFILE_DIR=\"$tfile_dir\""]] \
!= "" } {
untested "failed to compile"
diff --git a/gdb/testsuite/gdb.trace/tfind.exp b/gdb/testsuite/gdb.trace/tfind.exp
index 2c9996b040..fb58f80196 100644
--- a/gdb/testsuite/gdb.trace/tfind.exp
+++ b/gdb/testsuite/gdb.trace/tfind.exp
@@ -29,7 +29,7 @@ if ![gdb_trace_common_supports_arch] {
}
if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" \
- executable {debug nowarnings}] != "" } {
+ executable {debug nowarnings nopie}] != "" } {
untested "failed to compile"
return -1
}
diff --git a/gdb/testsuite/gdb.trace/unavailable.exp b/gdb/testsuite/gdb.trace/unavailable.exp
index 23d593e7d3..f3bb54db34 100644
--- a/gdb/testsuite/gdb.trace/unavailable.exp
+++ b/gdb/testsuite/gdb.trace/unavailable.exp
@@ -19,7 +19,7 @@ standard_testfile unavailable.cc
set executable $testfile
if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
- {debug nowarnings c++}]} {
+ {debug nowarnings c++ nopie}]} {
return -1
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 3d5f8726f7..cf7739aee3 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3722,6 +3722,12 @@ proc gdb_compile {source dest type options} {
regsub "\[\r\n\]*$" "$result" "" result
regsub "^\[\r\n\]*" "$result" "" result
+ if { $type == "executable" && $result == "" && $nopie != -1 } {
+ if { [exec_is_pie "$dest"] } {
+ set result "nopie failed to prevent PIE executable"
+ }
+ }
+
if {[lsearch $options quiet] < 0} {
# We shall update this on a per language basis, to avoid
# changing the entire testsuite in one go.
@@ -5083,6 +5089,18 @@ proc rerun_to_main {} {
}
}
+# Return true if EXECUTABLE is a Position Independent Executable.
+
+proc exec_is_pie { executable } {
+ set readelf_program [gdb_find_readelf]
+ set res [catch {exec $readelf_program -d $executable \
+ | grep -E "(FLAGS_1).*Flags:.* PIE($| )" }]
+ if { $res == 0 } {
+ return 1
+ }
+ return 0
+}
+
# Return true if a test should be skipped due to lack of floating
# point support or GDB can't fetch the contents from floating point
# registers.
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index cf7739aee3..896e0f1b40 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1097,6 +1097,18 @@ proc gdb_test { args } {
}]
}
+# Return 1 if version MAJOR.MINOR is at least AT_LEAST_MAJOR.AT_LEAST_MINOR.
+proc version_at_least { major minor at_least_major at_least_minor} {
+ if { $major > $at_least_major } {
+ return 1
+ } elseif { $major == $at_least_major \
+ && $minor >= $at_least_minor } {
+ return 1
+ } else {
+ return 0
+ }
+}
+
# gdb_test_no_output COMMAND MESSAGE
# Send a command to GDB and verify that this command generated no output.
#
@@ -3722,9 +3734,13 @@ proc gdb_compile {source dest type options} {
regsub "\[\r\n\]*$" "$result" "" result
regsub "^\[\r\n\]*" "$result" "" result
- if { $type == "executable" && $result == "" && $nopie != -1 } {
- if { [exec_is_pie "$dest"] } {
+ if { $type == "executable" && $result == "" \
+ && ($nopie != -1 || $pie != -1) } {
+ set is_pie [exec_is_pie "$dest"]
+ if { $nopie != -1 && $is_pie == 1 } {
set result "nopie failed to prevent PIE executable"
+ } elseif { $pie != -1 && $is_pie == 0 } {
+ set result "pie failed to generate PIE executable"
}
}
@@ -5089,13 +5105,53 @@ proc rerun_to_main {} {
}
}
-# Return true if EXECUTABLE is a Position Independent Executable.
+# Return list with major and minor version of readelf, or an empty list.
+gdb_caching_proc readelf_version {
+ set readelf_program [gdb_find_readelf]
+ set res [catch {exec $readelf_program --version} output]
+ if { $res != 0 } {
+ return [list]
+ }
+ set lines [split $output \n]
+ set line [lindex $lines 0]
+ set res [regexp {[ \t]+([0-9]+)[.]([0-9]+)[^ \t]*$} \
+ $line dummy major minor]
+ if { $res != 1 } {
+ return [list]
+ }
+ return [list $major $minor]
+}
+
+# Return 1 if readelf prints the PIE flag, 0 if is doesn't, and -1 if unknown.
+proc readelf_prints_pie { } {
+ set version [readelf_version]
+ if { [llength $version] == 0 } {
+ return -1
+ }
+ set major [lindex $version 0]
+ set minor [lindex $version 1]
+ # It would be better to construct a PIE executable and test if the PIE
+ # flag is printed by readelf, but we cannot reliably construct a PIE
+ # executable if the multilib_flags dictate otherwise
+ # (--target_board=unix/-no-pie/-fno-PIE).
+ return [version_at_least $major $minor 2 26]
+}
+
+# Return 1 if EXECUTABLE is a Position Independent Executable, 0 if it is not,
+# and -1 if unknown.
proc exec_is_pie { executable } {
+ set res [readelf_prints_pie]
+ if { $res != 1 } {
+ return -1
+ }
set readelf_program [gdb_find_readelf]
- set res [catch {exec $readelf_program -d $executable \
- | grep -E "(FLAGS_1).*Flags:.* PIE($| )" }]
- if { $res == 0 } {
+ set res [catch {exec $readelf_program -d $executable} output]
+ if { $res != 0 } {
+ return -1
+ }
+ set res [regexp -line {\(FLAGS_1\).*Flags:.* PIE($| )} $output]
+ if { $res == 1 } {
return 1
}
return 0
++++++ gdb-testsuite-read1-fixes.patch ++++++
- Fix test_gdb_complete_tab_multiple race
- [gdb/testsuite] Don't expect gdb_prompt in mi_skip_python_test
- [gdb/testsuite] Fix gdb.base/maint.exp with check-read1
- [gdb/testsuite] Fix mi-catch-cpp-exceptions.exp and mi-nonstop.exp with check-read1
- [gdb/testsuite] Fix python.exp with check-read1
- [gdb/testsuite, 1/2] Fix gdb.linespec/explicit.exp with check-read1
- [gdb/testsuite, 2/2] Fix gdb.linespec/explicit.exp with check-read1
- [gdb/testsuite] Test skip_libstdcxx_probe_tests in mi-catch-cpp-exceptions.exp
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 38e9a1ec4b..810c7c9b8c 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -69,15 +69,15 @@ set saw_registers 0
set saw_headers 0
set test "maint print registers"
gdb_test_multiple $test $test {
- -re "\[^\r\n\]+Name\[^\r\n\]+Nr\[^\r\n\]+Rel\[^\r\n\]+Offset\[^\r\n\]+Size\[^\r\n\]+Type\[^\r\n\]+\[\r\n\]+" {
+ -re "\[^\r\n\]+Name\[^\r\n\]+Nr\[^\r\n\]+Rel\[^\r\n\]+Offset\[^\r\n\]+Size\[^\r\n\]+Type\[^\r\n\]+\r\n" {
set saw_headers 1
exp_continue
}
- -re "^\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
+ -re "^\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\[0-9\]+\[^\r\n\]+\r\n" {
set saw_registers 1
exp_continue
}
- -re "^\\*\[0-9\]+\[^\r\n\]+\[\r\n\]+" {
+ -re "^\\*\[0-9\]+\[^\r\n\]+\r\n" {
exp_continue
}
-re "$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp
index 11656ca5c5..e50e503343 100644
--- a/gdb/testsuite/gdb.linespec/explicit.exp
+++ b/gdb/testsuite/gdb.linespec/explicit.exp
@@ -241,20 +241,7 @@ namespace eval $testfile {
-re "break -source exp\\\x07licit" {
send_gdb "\t\t"
gdb_test_multiple "" $tst {
- -re "\\\x07\r\nexplicit.c\[ \t\]+explicit2.c\[ \t\]+\r\n$gdb_prompt" {
- send_gdb "\n"
- gdb_test "" \
- {Source filename requires function, label, or line offset.} \
- $tst
- }
- }
- }
-
- -re "break -source exp\\\x07l" {
- # This pattern may occur when glibc debuginfo is installed.
- send_gdb "\t\t"
- gdb_test_multiple "" $tst {
- -re "\\\x07\r\nexplicit.c\[ \t\]+explicit2.c\[ \t\]+expl.*\r\n$gdb_prompt" {
+ -re "\\\x07\r\nexplicit.c\[ \t\]+explicit2.c\[ \t\]+\(expl.*\)?\r\n$gdb_prompt" {
send_gdb "\n"
gdb_test "" \
{Source filename requires function, label, or line offset.} \
@@ -486,7 +473,7 @@ namespace eval $testfile {
send_gdb "break \t"
gdb_test_multiple "" $tst {
"break \\\x07" {
- send_gdb "\t\t"
+ send_gdb "\t"
gdb_test_multiple "" $tst {
"Display all" {
send_gdb "y"
diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp
index b62572ceb8..f5c1d1b261 100644
--- a/gdb/testsuite/gdb.python/python.exp
+++ b/gdb/testsuite/gdb.python/python.exp
@@ -450,7 +450,7 @@ gdb_py_test_multiple "prompt substitution readline" \
"end" ""
gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {
- -re "Python Exception (exceptions.RuntimeError|<(type 'exceptions.|class ')RuntimeError'>) Python exception called.*" {
+ -re "Python Exception (exceptions.RuntimeError|<(type 'exceptions.|class ')RuntimeError'>) Python exception called.*$gdb_prompt $" {
pass "set hook"
}
}
@@ -462,7 +462,7 @@ gdb_py_test_silent_cmd "set python print-stack full" \
"set print-stack full for prompt error test" 1
gdb_test_multiple "python gdb.prompt_hook = error_prompt" "set the hook" {
- -re "Traceback.*File.*line.*RuntimeError.*Python exception called.*" {
+ -re "Traceback.*File.*line.*RuntimeError.*Python exception called.*$gdb_prompt $" {
pass "set hook"
}
}
diff --git a/gdb/testsuite/lib/completion-support.exp b/gdb/testsuite/lib/completion-support.exp
index 3e498d3c63..8a75b0d785 100644
--- a/gdb/testsuite/lib/completion-support.exp
+++ b/gdb/testsuite/lib/completion-support.exp
@@ -144,8 +144,12 @@ proc test_gdb_complete_tab_multiple { input_line add_completed_line \
set maybe_bell ""
}
gdb_test_multiple "" "$test (second tab)" {
- -re "^${maybe_bell}\r\n$expected_re\r\n$gdb_prompt $input_line_re$add_completed_line_re$" {
- pass "$test"
+ -re "^${maybe_bell}\r\n$expected_re\r\n$gdb_prompt " {
+ gdb_test_multiple "" "$test (second tab)" {
+ -re "^$input_line_re$add_completed_line_re$" {
+ pass "$test"
+ }
+ }
}
}
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 896e0f1b40..2eb00d58b9 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -695,7 +695,7 @@ proc gdb_internal_error_resync {} {
}
-# gdb_test_multiple COMMAND MESSAGE EXPECT_ARGUMENTS
+# gdb_test_multiple COMMAND MESSAGE EXPECT_ARGUMENTS PROMPT_REGEXP
# Send a command to gdb; test the result.
#
# COMMAND is the command to execute, send to GDB with send_gdb. If
@@ -707,6 +707,8 @@ proc gdb_internal_error_resync {} {
# context; action elements will be executed in the caller's context.
# Unlike patterns for gdb_test, these patterns should generally include
# the final newline and prompt.
+# PROMPT_REGEXP is a regexp matching the expected prompt after the command
+# output. If empty, defaults to "$gdb_prompt $"
#
# Returns:
# 1 if the test failed, according to a built-in failure pattern
@@ -744,7 +746,7 @@ proc gdb_internal_error_resync {} {
# expected from $gdb_spawn_id. IOW, callers do not need to worry
# about resetting "-i" back to $gdb_spawn_id explicitly.
#
-proc gdb_test_multiple { command message user_code } {
+proc gdb_test_multiple { command message user_code { prompt_regexp "" } } {
global verbose use_gdb_stub
global gdb_prompt pagination_prompt
global GDB
@@ -754,6 +756,10 @@ proc gdb_test_multiple { command message user_code } {
upvar expect_out expect_out
global any_spawn_id
+ if { "$prompt_regexp" == "" } {
+ set prompt_regexp "$gdb_prompt $"
+ }
+
if { $message == "" } {
set message $command
}
@@ -913,7 +919,7 @@ proc gdb_test_multiple { command message user_code } {
}
append code {
- -re "Ending remote debugging.*$gdb_prompt $" {
+ -re "Ending remote debugging.*$prompt_regexp" {
if ![isnative] then {
warning "Can`t communicate to remote target."
}
@@ -921,17 +927,17 @@ proc gdb_test_multiple { command message user_code } {
gdb_start
set result -1
}
- -re "Undefined\[a-z\]* command:.*$gdb_prompt $" {
+ -re "Undefined\[a-z\]* command:.*$prompt_regexp" {
perror "Undefined command \"$command\"."
fail "$message"
set result 1
}
- -re "Ambiguous command.*$gdb_prompt $" {
+ -re "Ambiguous command.*$prompt_regexp" {
perror "\"$command\" is not a unique command name."
fail "$message"
set result 1
}
- -re "$inferior_exited_re with code \[0-9\]+.*$gdb_prompt $" {
+ -re "$inferior_exited_re with code \[0-9\]+.*$prompt_regexp" {
if ![string match "" $message] then {
set errmsg "$message (the program exited)"
} else {
@@ -940,7 +946,7 @@ proc gdb_test_multiple { command message user_code } {
fail "$errmsg"
set result -1
}
- -re "$inferior_exited_re normally.*$gdb_prompt $" {
+ -re "$inferior_exited_re normally.*$prompt_regexp" {
if ![string match "" $message] then {
set errmsg "$message (the program exited)"
} else {
@@ -949,7 +955,7 @@ proc gdb_test_multiple { command message user_code } {
fail "$errmsg"
set result -1
}
- -re "The program is not being run.*$gdb_prompt $" {
+ -re "The program is not being run.*$prompt_regexp" {
if ![string match "" $message] then {
set errmsg "$message (the program is no longer running)"
} else {
@@ -958,7 +964,7 @@ proc gdb_test_multiple { command message user_code } {
fail "$errmsg"
set result -1
}
- -re "\r\n$gdb_prompt $" {
+ -re "\r\n$prompt_regexp" {
if ![string match "" $message] then {
fail "$message"
}
@@ -972,13 +978,13 @@ proc gdb_test_multiple { command message user_code } {
}
-re "\\((y or n|y or \\\[n\\\]|\\\[y\\\] or n)\\) " {
send_gdb "n\n"
- gdb_expect -re "$gdb_prompt $"
+ gdb_expect -re "$prompt_regexp"
fail "$message (got interactive prompt)"
set result -1
}
-re "\\\[0\\\] cancel\r\n\\\[1\\\] all.*\r\n> $" {
send_gdb "0\n"
- gdb_expect -re "$gdb_prompt $"
+ gdb_expect -re "$prompt_regexp"
fail "$message (got breakpoint menu)"
set result -1
}
@@ -1842,7 +1848,7 @@ proc skip_python_tests_prompt { prompt_regexp } {
return 1
}
-re "$prompt_regexp" {}
- }
+ } "$prompt_regexp"
set gdb_py_is_py24 0
gdb_test_multiple "python print (sys.version_info\[0\])" "check if python 3" {
@@ -1852,7 +1858,7 @@ proc skip_python_tests_prompt { prompt_regexp } {
-re ".*$prompt_regexp" {
set gdb_py_is_py3k 0
}
- }
+ } "$prompt_regexp"
if { $gdb_py_is_py3k == 0 } {
gdb_test_multiple "python print (sys.version_info\[1\])" "check if python 2.4" {
-re "\[45\].*$prompt_regexp" {
@@ -1861,7 +1867,7 @@ proc skip_python_tests_prompt { prompt_regexp } {
-re ".*$prompt_regexp" {
set gdb_py_is_py24 0
}
- }
+ } "$prompt_regexp"
}
return 0
@@ -3079,22 +3085,27 @@ proc skip_unwinder_tests {} {
# Return 0 if we should skip tests that require the libstdc++ stap
# probes. This must be invoked while gdb is running, after shared
-# libraries have been loaded.
-
-proc skip_libstdcxx_probe_tests {} {
- global gdb_prompt
+# libraries have been loaded. PROMPT_REGEXP is the expected prompt.
+proc skip_libstdcxx_probe_tests_prompt { prompt_regexp } {
set ok 0
gdb_test_multiple "info probe" "check for stap probe in libstdc++" {
- -re ".*libstdcxx.*catch.*\r\n$gdb_prompt $" {
+ -re ".*libstdcxx.*catch.*\r\n$prompt_regexp" {
set ok 1
}
- -re "\r\n$gdb_prompt $" {
+ -re "\r\n$prompt_regexp" {
}
- }
+ } "$prompt_regexp"
return $ok
}
+# As skip_libstdcxx_probe_tests_prompt, with gdb_prompt.
+
+proc skip_libstdcxx_probe_tests {} {
+ global gdb_prompt
+ return [skip_libstdcxx_probe_tests_prompt "$gdb_prompt $"]
+}
+
# Return 1 if we should skip tests of the "compile" feature.
# This must be invoked after the inferior has been started.
@@ -3131,7 +3142,7 @@ proc gdb_is_target_1 { target_name target_stack_regexp prompt_regexp } {
-re "$prompt_regexp" {
pass $test
}
- }
+ } "$prompt_regexp"
return 0
}
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index a58c4f6e11..d0ee5ca744 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -2596,6 +2596,13 @@ proc mi_skip_python_tests {} {
return [skip_python_tests_prompt "$mi_gdb_prompt$"]
}
+# As skip_libstdcxx_probe_tests_prompt, with mi_gdb_prompt.
+
+proc mi_skip_libstdcxx_probe_tests {} {
+ global mi_gdb_prompt
+ return [skip_libstdcxx_probe_tests_prompt "$mi_gdb_prompt$"]
+}
+
# Check whether we're testing with the remote or extended-remote
# targets.
1
0