openSUSE Commits
Threads by month
- ----- 2024 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2020
- 1 participants
- 4645 discussions
Hello community,
here is the log from the commit of package python-statsmodels for openSUSE:Leap:15.2 checked in at 2020-05-28 20:49:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-statsmodels (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-statsmodels.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-statsmodels"
Thu May 28 20:49:02 2020 rev:14 rq: version:0.10.2
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-statsmodels/python-statsmodels.changes 2020-05-28 20:08:07.710636873 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.python-statsmodels.new.3606/python-statsmodels.changes 2020-05-28 20:49:03.273942145 +0200
@@ -2,13 +1,0 @@
-Mon Apr 6 09:30:02 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
-
-- Switch to multibuild to not take ages on running tests and
- blocking all depending packages
-
--------------------------------------------------------------------
-Mon Apr 6 07:14:18 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
-
-- Update to 0.11.1:
- * Bugfixes all around
- * upstream declare dropped support for python2
-
--------------------------------------------------------------------
Old:
----
_multibuild
statsmodels-0.11.1.tar.gz
New:
----
statsmodels-0.10.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-statsmodels.spec ++++++
--- /var/tmp/diff_new_pack.0escPG/_old 2020-05-28 20:49:04.201944909 +0200
+++ /var/tmp/diff_new_pack.0escPG/_new 2020-05-28 20:49:04.201944909 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-statsmodels
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,43 +17,30 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%global flavor @BUILD_FLAVOR@%{nil}
-%if "%{flavor}" == "test"
-%define psuffix -test
-%bcond_without test
-%else
-%define psuffix %{nil}
-%bcond_with test
-%endif
-%define skip_python2 1
-Name: python-statsmodels%{psuffix}
-Version: 0.11.1
+Name: python-statsmodels
+Version: 0.10.2
Release: 0
Summary: A Python module that allows users to explore data
License: BSD-3-Clause
-URL: https://github.com/statsmodels/statsmodels
+Group: Development/Libraries/Python
+URL: http://statsmodels.sourceforge.net/
Source: https://files.pythonhosted.org/packages/source/s/statsmodels/statsmodels-%{…
-BuildRequires: %{python_module Cython >= 0.29}
BuildRequires: %{python_module devel}
-BuildRequires: %{python_module numpy-devel >= 1.14}
-BuildRequires: %{python_module scipy >= 1.0}
+BuildRequires: %{python_module matplotlib >= 1.0.0}
+BuildRequires: %{python_module numpy-devel >= 1.7.0}
+BuildRequires: %{python_module pandas >= 0.7.1}
+BuildRequires: %{python_module patsy >= 0.3.0}
+BuildRequires: %{python_module scipy >= 0.9.0}
BuildRequires: %{python_module setuptools >= 0.6}
BuildRequires: fdupes
BuildRequires: gcc-fortran
BuildRequires: python-rpm-macros
-Requires: python-numpy >= 1.14
-Requires: python-pandas >= 0.21
-Requires: python-patsy >= 0.5.1
-Requires: python-scipy >= 1.0
-Recommends: python-matplotlib >= 2.2
-%if %{with test}
-BuildRequires: %{python_module matplotlib >= 2.2}
-BuildRequires: %{python_module pandas >= 0.21}
-BuildRequires: %{python_module patsy >= 0.5.1}
-BuildRequires: %{python_module statsmodels >= %{version}}
-%endif
+Requires: python-numpy >= 1.7.0
+Requires: python-pandas >= 0.7.1
+Requires: python-patsy >= 0.3.0
+Requires: python-scipy >= 0.9.0
+Recommends: python-matplotlib >= 1.0.0
# SECTION test requirements
-BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
# /SECTION
%python_subpackages
@@ -90,13 +77,10 @@
chmod a-x README_l1.txt
%build
-%if !%{with test}
export CFLAGS="%{optflags} -fno-strict-aliasing"
%python_build
-%endif
%install
-%if !%{with test}
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
@@ -105,24 +89,23 @@
%python_expand find %{buildroot}%{$python_sitearch} -type f -exec chmod a-x {} \;
rm -f %{buildroot}%{_prefix}/LICENSE.txt
rm -f %{buildroot}%{_prefix}/setup.cfg
-%endif
+%ifnarch ppc64le
%check
-%if %{with test}
-export PYTHONDONTWRITEBYTECODE=1
-# tsa and discrete tests - take AGES to run all those tests in OBS, like 2h per the folder
-# statsmodels/stats/tests/test_dist_dependant_measures.py online tests
-# test_lazy_imports test_docstring_optimization_compat - fail due to dep updates
-%pytest_arch -n auto -v -p no:cacheprovider %{$python_sitearch}/statsmodels/ --ignore=%{$python_sitearch}/statsmodels/tsa --ignore=%{$python_sitearch}/statsmodels/discrete --ignore %{$python_sitearch}/statsmodels/stats/tests/test_dist_dependant_measures.py -k 'not (test_lazy_imports or test_docstring_optimization_compat)'
+export PYTHONDONTWRITEBYTECODE=1 # do not write unreproducible .pyc files
+mv statsmodels statsmodels_temp
+rm -rf build _build.*
+%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
+pytest-%{$python_bin_suffix} -p no:cacheprovider %{buildroot}%{$python_sitearch}/statsmodels/
+}
+mv statsmodels_temp statsmodels
%endif
-%if !%{with test}
%files %{python_files}
%doc README.rst README_l1.txt
%doc examples/
%license COPYRIGHTS.txt LICENSE.txt
%{python_sitearch}/statsmodels/
%{python_sitearch}/statsmodels-%{version}-py*.egg-info
-%endif
%changelog
++++++ statsmodels-0.11.1.tar.gz -> statsmodels-0.10.2.tar.gz ++++++
/work/SRC/openSUSE:Leap:15.2/python-statsmodels/statsmodels-0.11.1.tar.gz /work/SRC/openSUSE:Leap:15.2/.python-statsmodels.new.3606/statsmodels-0.10.2.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package 000product for openSUSE:Leap:15.2:PowerPC checked in at 2020-05-28 20:30:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:PowerPC/000product (Old)
and /work/SRC/openSUSE:Leap:15.2:PowerPC/.000product.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Thu May 28 20:30:41 2020 rev:271 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-dvd5-dvd-ppc64le.kiwi ++++++
--- /var/tmp/diff_new_pack.BCMS5l/_old 2020-05-28 20:30:41.758665082 +0200
+++ /var/tmp/diff_new_pack.BCMS5l/_new 2020-05-28 20:30:41.762665094 +0200
@@ -3646,6 +3646,7 @@
<repopackage name="xfce4-dict-lang"/>
<repopackage name="xfce4-notifyd"/>
<repopackage name="xfce4-notifyd-branding-openSUSE"/>
+ <repopackage name="xfce4-notifyd-branding-upstream"/>
<repopackage name="xfce4-notifyd-lang"/>
<repopackage name="xfce4-panel"/>
<repopackage name="xfce4-panel-branding-openSUSE"/>
stub.kiwi: same change
++++++ dvd.group ++++++
--- /var/tmp/diff_new_pack.BCMS5l/_old 2020-05-28 20:30:41.898665499 +0200
+++ /var/tmp/diff_new_pack.BCMS5l/_new 2020-05-28 20:30:41.902665511 +0200
@@ -3595,7 +3595,8 @@
<package name="xfce4-dict" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
<package name="xfce4-dict-lang" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
<package name="xfce4-notifyd" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
- <package name="xfce4-notifyd-branding-openSUSE" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
+ <package name="xfce4-notifyd-branding-openSUSE" supportstatus="unsupported"/> <!-- reason: extra:expansion -->
+ <package name="xfce4-notifyd-branding-upstream" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
<package name="xfce4-notifyd-lang" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
<package name="xfce4-panel" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
<package name="xfce4-panel-branding-openSUSE" supportstatus="unsupported"/> <!-- reason: xfce:patterns-xfce-xfce -->
++++++ openSUSE-dvd5-dvd-ppc64le.kwd ++++++
--- /var/tmp/diff_new_pack.BCMS5l/_old 2020-05-28 20:30:41.946665641 +0200
+++ /var/tmp/diff_new_pack.BCMS5l/_new 2020-05-28 20:30:41.946665641 +0200
@@ -3595,6 +3595,7 @@
xfce4-dict-lang: +Kwd:\nsupport_unsupported\n-Kwd:
xfce4-notifyd: +Kwd:\nsupport_unsupported\n-Kwd:
xfce4-notifyd-branding-openSUSE: +Kwd:\nsupport_unsupported\n-Kwd:
+xfce4-notifyd-branding-upstream: +Kwd:\nsupport_unsupported\n-Kwd:
xfce4-notifyd-lang: +Kwd:\nsupport_unsupported\n-Kwd:
xfce4-panel: +Kwd:\nsupport_unsupported\n-Kwd:
xfce4-panel-branding-openSUSE: +Kwd:\nsupport_unsupported\n-Kwd:
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.BCMS5l/_old 2020-05-28 20:30:42.002665808 +0200
+++ /var/tmp/diff_new_pack.BCMS5l/_new 2020-05-28 20:30:42.010665832 +0200
@@ -1294,9 +1294,6 @@
- btfs
- btrfs-extent-same
- bucklespring
- - budgie-desktop
- - budgie-desktop-devel
- - budgie-desktop-docs
- buffer
- bugreporter
- bugzilla
@@ -1917,7 +1914,6 @@
- crash-eppic
- crash-kmp-default
- crazydiskinfo
- - create-resources
- createrepo
- createrepo_c
- cri-o
@@ -3724,8 +3720,6 @@
- ghc-adjunctions
- ghc-adjunctions-devel
- ghc-aeson
- - ghc-aeson-compat
- - ghc-aeson-compat-devel
- ghc-aeson-devel
- ghc-aeson-pretty
- ghc-aeson-pretty-devel
@@ -3830,8 +3824,6 @@
- ghc-continued-fractions-devel
- ghc-contravariant
- ghc-contravariant-devel
- - ghc-control-monad-omega
- - ghc-control-monad-omega-devel
- ghc-converge
- ghc-converge-devel
- ghc-cookie
@@ -3978,8 +3970,6 @@
- ghc-hspec-expectations-devel
- ghc-hspec-smallcheck
- ghc-hspec-smallcheck-devel
- - ghc-hstatsd
- - ghc-hstatsd-devel
- ghc-http-api-data
- ghc-http-api-data-devel
- ghc-http-client
@@ -3988,8 +3978,6 @@
- ghc-http-client-tls-devel
- ghc-http-conduit
- ghc-http-conduit-devel
- - ghc-http-download
- - ghc-http-download-devel
- ghc-http-types
- ghc-http-types-devel
- ghc-hxt
@@ -4047,8 +4035,6 @@
- ghc-memory-devel
- ghc-microlens
- ghc-microlens-devel
- - ghc-microlens-th
- - ghc-microlens-th-devel
- ghc-mime-types
- ghc-mime-types-devel
- ghc-mintty
@@ -4113,8 +4099,6 @@
- ghc-pem-devel
- ghc-persistent
- ghc-persistent-devel
- - ghc-persistent-sqlite
- - ghc-persistent-sqlite-devel
- ghc-persistent-template
- ghc-persistent-template-devel
- ghc-pretty
@@ -4159,8 +4143,6 @@
- ghc-resource-pool-devel
- ghc-resourcet
- ghc-resourcet-devel
- - ghc-retry
- - ghc-retry-devel
- ghc-rfc5051
- ghc-rfc5051-devel
- ghc-rio
@@ -4173,8 +4155,6 @@
- ghc-rpm-macros-extra
- ghc-safe
- ghc-safe-devel
- - ghc-safe-exceptions
- - ghc-safe-exceptions-devel
- ghc-scientific
- ghc-scientific-devel
- ghc-semigroupoids
@@ -4207,10 +4187,8 @@
- ghc-stm-chans
- ghc-stm-chans-devel
- ghc-stm-devel
- - ghc-store
- ghc-store-core
- ghc-store-core-devel
- - ghc-store-devel
- ghc-streaming-commons
- ghc-streaming-commons-devel
- ghc-sundown
@@ -4226,8 +4204,6 @@
- ghc-tagsoup
- ghc-tagsoup-devel
- ghc-tar
- - ghc-tar-conduit
- - ghc-tar-conduit-devel
- ghc-tar-devel
- ghc-template-haskell
- ghc-template-haskell-devel
@@ -4522,10 +4498,6 @@
- gmusicbrowser
- gmusicbrowser-lang
- gn
- - gnokii
- - gnokii-devel
- - gnokii-lang
- - gnokii-smsd
- gnome-2048
- gnome-2048-lang
- gnome-autoar-devel
@@ -5051,7 +5023,6 @@
- gtk-sharp3-gapi-devel
- gtk-vnc-devel
- gtk-vnc-tools
- - gtk-xfce-engine
- gtk2-branding-upstream
- gtk2-devel
- gtk2-engine-aurora
@@ -7794,8 +7765,6 @@
- libbsd-devel
- libbtf1
- libbtrfs-devel
- - libbudgie-plugin0
- - libbudgietheme0
- libbuffer0_3
- libbullet-devel
- libbullet2_86
@@ -8767,8 +8736,6 @@
- libgupnp-devel
- libgupnp-dlna-devel
- libgupnp-igd-devel
- - libgupnp-ui-1_0-0
- - libgupnp-ui-devel
- libgusb-devel
- libgviewaudio-2_0-2
- libgviewencoder-2_0-2
@@ -9207,6 +9174,8 @@
- libloader-javadoc
- libloadpng-devel
- libloadpng4_4
+ - liblockfile-devel
+ - liblockfile1
- liblog4c-devel
- liblog4c-doc
- liblog4c3
@@ -9300,7 +9269,6 @@
- libmatroska-devel
- libmaxminddb-devel
- libmaxminddb0
- - libmaya-calendar0
- libmbedcrypto3
- libmbedtls12
- libmbedx509-0
@@ -9564,7 +9532,6 @@
- libnl3-devel
- libnlopt0
- libnma-devel
- - libnoise-core0
- libnormaliz0
- libnoson2
- libnotify-devel
@@ -9808,10 +9775,6 @@
- libpangox-1_0-0
- libpano-devel
- libpano-utils
- - libpantheon-files-core-devel
- - libpantheon-files-core0
- - libpantheon-files-widgets-devel
- - libpantheon-files-widgets0
- libpaper-devel
- libpaper-utils
- libpaper1
@@ -10206,7 +10169,6 @@
- librasqal-devel-doc
- libratbag-devel
- libratbag-tools
- - libraven0
- libraw-devel
- libraw-devel-static
- libraw-tools
@@ -11306,8 +11268,6 @@
- libxmmsclient6
- libxmp-devel
- libxmp4
- - libxnoise-devel
- - libxnoise0
- libxornstorage-devel
- libxornstorage0
- libxosd2
@@ -11539,6 +11499,7 @@
- lnav
- lndir
- lockdev-devel
+ - lockfile
- log4cplus-devel
- log4cpp-devel
- log4cpp-doc
@@ -12140,9 +12101,6 @@
- maven-wagon-ssh-external
- maven2-javadoc
- mawk
- - maya-calendar
- - maya-calendar-devel
- - maya-calendar-lang
- mayavi
- mayavi-doc
- mayavi-jupyter
@@ -12892,8 +12850,6 @@
- nautilus-image-converter
- nautilus-image-converter-lang
- nautilus-plugin-easytag
- - nautilus-search-tool
- - nautilus-search-tool-lang
- nautilus-terminal
- nauty
- nauty-devel
@@ -13150,9 +13106,6 @@
- nodejs8
- nodejs8-devel
- nodejs8-docs
- - noise
- - noise-devel
- - noise-lang
- nomacs
- nomacs-lang
- non-mixer
@@ -14172,12 +14125,6 @@
- panini
- pantheon-calculator
- pantheon-calculator-lang
- - pantheon-files
- - pantheon-files-lang
- - pantheon-photos
- - pantheon-photos-lang
- - pantheon-terminal
- - pantheon-terminal-lang
- pantheon-wallpapers-branding-upstream
- paper-icon-theme
- paperclips
@@ -16904,7 +16851,6 @@
- python2-PeakUtils
- python2-Pebble
- python2-Pillow-tk
- - python2-Pint
- python2-PrettyTable
- python2-Protego
- python2-PsyLab
@@ -17068,6 +17014,7 @@
- python2-attr
- python2-attrs
- python2-aubio
+ - python2-audiogrep
- python2-audiolazy
- python2-audioread
- python2-audit
@@ -18689,7 +18636,6 @@
- python2-sshtunnel
- python2-statistics
- python2-statsd
- - python2-statsmodels
- python2-stdeb
- python2-stestr
- python2-stevedore
@@ -19176,6 +19122,7 @@
- python3-aiodns
- python3-aioeventlet
- python3-aiohttp
+ - python3-aiohttp-socks
- python3-aiohttp-theme
- python3-aioresponses
- python3-aiosmtpd
@@ -19232,6 +19179,7 @@
- python3-attr
- python3-attrs
- python3-aubio
+ - python3-audiogrep
- python3-audiolazy
- python3-audioread
- python3-audit
@@ -21660,7 +21608,6 @@
- rapid-photo-downloader
- rapid-photo-downloader-lang
- rapidjson-devel
- - rapport
- raptor
- rarian
- rarian-devel
@@ -30581,8 +30528,6 @@
- transmission-daemon
- transmission-qt
- transmission-qt-lang
- - transporter
- - transporter-lang
- transset
- trapproto-devel
- tre
@@ -30870,7 +30815,6 @@
- typelib-1_0-gSignond-1_0
- typelib-1_0-kkc-1_0
- typelib-1_0-libmirage-3_2
- - typelib_1_0-Budgie-0_1
- typesafe-config
- typesafe-config-javadoc
- typescript
@@ -31563,7 +31507,6 @@
- xfce4-fsguard-plugin-lang
- xfce4-genmon-plugin
- xfce4-genmon-plugin-lang
- - xfce4-icon-theme
- xfce4-mailwatch-plugin
- xfce4-mailwatch-plugin-lang
- xfce4-mixer
@@ -31579,7 +31522,6 @@
- xfce4-netspeed-plugin
- xfce4-notes-plugin
- xfce4-notes-plugin-lang
- - xfce4-notifyd-branding-upstream
- xfce4-notifyd-theme-adapta
- xfce4-notifyd-theme-plata
- xfce4-panel-branding-upstream
@@ -31635,7 +31577,6 @@
- xfwm4-themes
- xgalaga++
- xgalaga-sdl
- - xgnokii
- xgrabsc
- xhfsutil
- xhtml-dtd
@@ -31771,8 +31712,6 @@
- xmvn-resolve
- xmvn-subst
- xmvn-tools-javadoc
- - xnoise
- - xnoise-lang
- xob
- xom
- xonotic
1
0
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Leap:15.2:PowerPC checked in at 2020-05-28 20:30:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:PowerPC/000release-packages (Old)
and /work/SRC/openSUSE:Leap:15.2:PowerPC/.000release-packages.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Thu May 28 20:30:38 2020 rev:238 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.utocTx/_old 2020-05-28 20:30:40.486661303 +0200
+++ /var/tmp/diff_new_pack.utocTx/_new 2020-05-28 20:30:40.490661315 +0200
@@ -6310,6 +6310,7 @@
Provides: weakremover(cracklib-dict-small)
Provides: weakremover(crazydiskinfo)
Provides: weakremover(crda)
+Provides: weakremover(create-resources)
Provides: weakremover(createrepo)
Provides: weakremover(criu)
Provides: weakremover(criu-devel)
@@ -8003,6 +8004,7 @@
Provides: weakremover(gmp-ecm-devel)
Provides: weakremover(gnokii)
Provides: weakremover(gnokii-devel)
+Provides: weakremover(gnokii-lang)
Provides: weakremover(gnokii-smsd)
Provides: weakremover(gnome-2048)
Provides: weakremover(gnome-bluetooth)
@@ -14170,6 +14172,7 @@
Provides: weakremover(mawk)
Provides: weakremover(maya-calendar)
Provides: weakremover(maya-calendar-devel)
+Provides: weakremover(maya-calendar-lang)
Provides: weakremover(mayavi)
Provides: weakremover(mayavi-doc)
Provides: weakremover(mayavi-jupyter)
@@ -14511,6 +14514,7 @@
Provides: weakremover(nautilus-image-converter)
Provides: weakremover(nautilus-plugin-easytag)
Provides: weakremover(nautilus-search-tool)
+Provides: weakremover(nautilus-search-tool-lang)
Provides: weakremover(nautilus-sendto)
Provides: weakremover(nautilus-share)
Provides: weakremover(nautilus-totem)
@@ -14698,6 +14702,7 @@
Provides: weakremover(nodejs12-devel)
Provides: weakremover(noise)
Provides: weakremover(noise-devel)
+Provides: weakremover(noise-lang)
Provides: weakremover(nomacs)
Provides: weakremover(non-mixer)
Provides: weakremover(non-ntk)
@@ -15129,8 +15134,11 @@
Provides: weakremover(panini)
Provides: weakremover(pantheon-calculator)
Provides: weakremover(pantheon-files)
+Provides: weakremover(pantheon-files-lang)
Provides: weakremover(pantheon-photos)
+Provides: weakremover(pantheon-photos-lang)
Provides: weakremover(pantheon-terminal)
+Provides: weakremover(pantheon-terminal-lang)
Provides: weakremover(paperjam)
Provides: weakremover(paperkey)
Provides: weakremover(papi)
@@ -16197,6 +16205,7 @@
Provides: weakremover(python2-Mathics)
Provides: weakremover(python2-Pillow)
Provides: weakremover(python2-Pillow-tk)
+Provides: weakremover(python2-Pint)
Provides: weakremover(python2-PyAudio)
Provides: weakremover(python2-PyECLib)
Provides: weakremover(python2-PyICU)
@@ -17225,6 +17234,7 @@
Provides: weakremover(rakkess)
Provides: weakremover(randrproto-devel)
Provides: weakremover(rang-devel)
+Provides: weakremover(rapport)
Provides: weakremover(raptor)
Provides: weakremover(rarian)
Provides: weakremover(rarian-devel)
@@ -18743,6 +18753,7 @@
Provides: weakremover(transconnect)
Provides: weakremover(translator)
Provides: weakremover(transporter)
+Provides: weakremover(transporter-lang)
Provides: weakremover(transset)
Provides: weakremover(trapproto-devel)
Provides: weakremover(tree)
@@ -19500,6 +19511,7 @@
Provides: weakremover(xfce4-eyes-plugin)
Provides: weakremover(xfce4-fsguard-plugin)
Provides: weakremover(xfce4-genmon-plugin)
+Provides: weakremover(xfce4-icon-theme)
Provides: weakremover(xfce4-mailwatch-plugin)
Provides: weakremover(xfce4-mixer)
Provides: weakremover(xfce4-mixer-plugin)
@@ -19662,6 +19674,7 @@
Provides: weakremover(xmvn)
Provides: weakremover(xmvn-minimal)
Provides: weakremover(xnoise)
+Provides: weakremover(xnoise-lang)
Provides: weakremover(xob)
Provides: weakremover(xorg-x11-driver-video)
Provides: weakremover(xorriso)
@@ -26244,6 +26257,7 @@
Provides: weakremover(python-PasteDeploy)
Provides: weakremover(python-Pillow)
Provides: weakremover(python-Pillow-tk)
+Provides: weakremover(python-Pint)
Provides: weakremover(python-PrettyTable)
Provides: weakremover(python-PyAudio)
Provides: weakremover(python-PyAudio-docs)
1
0
Hello community,
here is the log from the commit of package libxslt for openSUSE:Leap:15.1:Update checked in at 2020-05-28 20:15:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/libxslt (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.libxslt.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxslt"
Thu May 28 20:15:16 2020 rev:2 rq:808849 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.MuE9vG/_old 2020-05-28 20:15:19.235921336 +0200
+++ /var/tmp/diff_new_pack.MuE9vG/_new 2020-05-28 20:15:19.235921336 +0200
@@ -1 +1 @@
-<link package='libxslt.10243' cicount='copy' />
+<link package='libxslt.12722' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package libxslt-python for openSUSE:Leap:15.1:Update checked in at 2020-05-28 20:15:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/libxslt-python (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.libxslt-python.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxslt-python"
Thu May 28 20:15:14 2020 rev:2 rq:808849 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.Mx1YFI/_old 2020-05-28 20:15:16.659913668 +0200
+++ /var/tmp/diff_new_pack.Mx1YFI/_new 2020-05-28 20:15:16.659913668 +0200
@@ -1 +1 @@
-<link package='libxslt-python.10243' cicount='copy' />
+<link package='libxslt-python.12722' cicount='copy' />
1
0
Hello community,
here is the log from the commit of package gradle for openSUSE:Leap:15.2 checked in at 2020-05-28 20:11:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/gradle (Old)
and /work/SRC/openSUSE:Leap:15.2/.gradle.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gradle"
Thu May 28 20:11:58 2020 rev:12 rq:809888 version:4.4.1
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/gradle/gradle.changes 2020-01-15 15:08:43.502015335 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.gradle.new.3606/gradle.changes 2020-05-28 20:12:02.367335343 +0200
@@ -1,0 +2,95 @@
+Tue Dec 17 11:49:50 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Avoid all-released-versions.json as source, since we are not
+ building integration tests.
+
+-------------------------------------------------------------------
+Mon Dec 9 12:38:32 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Modified patch:
+ * gradle-4.4.1-asm7.patch
+ + Rediff and use ASM7 api instead of ASM6, since we are using
+ objectweb-asm 7.2
+- Added patches:
+ * cast-estimated-runtime-to-long.patch
+ + estimatedRuntime must be cast to long otherwise gradle build
+ fails with "Cannot assign value of type java.math.BigDecimal
+ to variable of type long".
+ * java11-compatibility.patch
+ + Fixes the compatibility with Java 11. This is backport of
+ upstream changes in 4.8
+ * java8-compatibility.patch
+ + Keep compatibility with Java 8 by avoiding to use Java 9+
+ APIs
+ * remove-timestamps.patch
+ + Avoid timestamps and thus irreproducible builds
+
+-------------------------------------------------------------------
+Mon Nov 25 11:14:34 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Added patch:
+ * gradle-4.4.1-asm7.patch
+ + fix build with objectweb-asm 7.2
+
+-------------------------------------------------------------------
+Wed Nov 20 21:31:11 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Gradle looks for slf4j-api.jar, so we provide a link there
+
+-------------------------------------------------------------------
+Sun Nov 17 20:04:50 UTC 2019 - Fridrich Strba <fstrba(a)suse.com>
+
+- Package a full gradle instead of the open apis only
+- Upgrade to version 4.4.1
+- Added patches:
+ * 0001-Gradle-local-mode.patch
+ + Use gradle local mode by default
+ * 0002-Remove-Class-Path-from-manifest.patch
+ + Remove classpath from manifest
+ * 0003-Implement-XMvn-repository-factory-method.patch
+ + Implement factory methods for xmvn repository
+ * 0004-Use-unversioned-dependency-JAR-names.patch
+ + Use unversioned jar files for dependencies
+ * 0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch
+ + Port to maven 3.3.9 and maven-resolver
+ * 0006-Disable-code-quality-checks.patch
+ + Disable code quality checks useless for rpm build
+ * 0007-Port-to-Kryo-3.0.patch
+ + Fix build with kryo 3.0
+ * 0008-Port-to-Ivy-2.4.0.patch
+ + Fix build with apache-ivy 2.4.0
+ * 0009-Port-to-Polyglot-0.1.8.patch
+ + Allow building with tesla-polyglot >= 0.1.8
+ * 0010-Port-from-Simple-4-to-Jetty-9.patch
+ + build using org.eclipse.jetty:jetty-server instead of
+ org.simpleframework:simple
+ * 0011-Disable-benchmarks.patch
+ + Do not run benchmarks useless during rpm build
+ * 0012-Disable-patching-of-external-modules.patch
+ + Disable patching of external modules during the build
+ * 0013-Add-missing-transitive-dependencies.patch
+ + Add transitive dependencies for aqute-bndlib, jansi and zinc
+ * 0014-Disable-ideNative-module.patch
+ + Do not build ideNative module
+ * 0015-Disable-docs-build.patch
+ + Do not build docs needing asciidoctorj that we don't have
+ * 0016-Port-to-guava-20.0.patch
+ + Fix build with guava 20.0
+ * 0017-Set-core-api-source-level-to-8.patch
+ + Build core-api submodule with source/target 8
+
+-------------------------------------------------------------------
+Tue Sep 17 11:37:40 UTC 2019 - Pedro Monreal Gonzalez <pmonrealgonzalez(a)suse.com>
+
+- Add LICENSE file to the correct tag
+
+-------------------------------------------------------------------
+Tue Sep 17 11:31:39 UTC 2019 - Pedro Monreal Gonzalez <pmonrealgonzalez(a)suse.com>
+
+- Security fix: [bsc#1150998, CVE-2019-16370]
+ * The PGP signing plugin in Gradle before 6.0 relies on the SHA-1
+ algorithm. PGP signing plugin might allow an attacker to replace
+ an artifact with a different one.
+- Add gradle-CVE-2019-16370.patch
+
+-------------------------------------------------------------------
Old:
----
v3.2.1.zip
New:
----
0001-Gradle-local-mode.patch
0002-Remove-Class-Path-from-manifest.patch
0003-Implement-XMvn-repository-factory-method.patch
0004-Use-unversioned-dependency-JAR-names.patch
0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch
0006-Disable-code-quality-checks.patch
0007-Port-to-Kryo-3.0.patch
0008-Port-to-Ivy-2.4.0.patch
0009-Port-to-Polyglot-0.1.8.patch
0010-Port-from-Simple-4-to-Jetty-9.patch
0011-Disable-benchmarks.patch
0012-Disable-patching-of-external-modules.patch
0013-Add-missing-transitive-dependencies.patch
0014-Disable-ideNative-module.patch
0015-Disable-docs-build.patch
0016-Port-to-guava-20.0.patch
0017-Set-core-api-source-level-to-8.patch
_constraints
cast-estimated-runtime-to-long.patch
gradle-4.4.1-asm7.patch
gradle-4.4.1-src.zip
gradle-CVE-2019-16370.patch
gradle-font-metadata.xml
gradle-jquery-metadata.xml
gradle-launcher.sh.in
gradle-man.txt
gradle.desktop
java11-compatibility.patch
java8-compatibility.patch
remove-timestamps.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gradle.spec ++++++
--- /var/tmp/diff_new_pack.G8HXqs/_old 2020-05-28 20:12:02.907336951 +0200
+++ /var/tmp/diff_new_pack.G8HXqs/_new 2020-05-28 20:12:02.911336962 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gradle
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,66 +12,405 @@
# 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/
#
Name: gradle
-Version: 3.2.1
+Version: 4.4.1
Release: 0
-Summary: Groovy-based build system
+Summary: Build automation tool
+# Some examples and integration tests are under GNU LGPL and Boost
+# Software License, but are not used to create binary package.
License: Apache-2.0
-Group: Development/Tools
-Url: http://www.gradle.org/
-Source0: https://github.com/gradle/gradle/archive/v%{version}.zip
-BuildRequires: java-devel
-BuildRequires: javapackages-tools
+URL: http://www.gradle.org/
+
+Source0: http://services.gradle.org/distributions/gradle-%{version}-src.zip
+#Source1: http://services.gradle.org/versions/all#/all-released-versions.json
+Source2: gradle-font-metadata.xml
+Source3: gradle-jquery-metadata.xml
+Source4: gradle-launcher.sh.in
+Source5: gradle.desktop
+Source6: gradle-man.txt
+
+Patch0001: 0001-Gradle-local-mode.patch
+Patch0002: 0002-Remove-Class-Path-from-manifest.patch
+Patch0003: 0003-Implement-XMvn-repository-factory-method.patch
+Patch0004: 0004-Use-unversioned-dependency-JAR-names.patch
+Patch0005: 0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch
+Patch0006: 0006-Disable-code-quality-checks.patch
+Patch0007: 0007-Port-to-Kryo-3.0.patch
+Patch0008: 0008-Port-to-Ivy-2.4.0.patch
+Patch0009: 0009-Port-to-Polyglot-0.1.8.patch
+Patch0010: 0010-Port-from-Simple-4-to-Jetty-9.patch
+Patch0011: 0011-Disable-benchmarks.patch
+Patch0012: 0012-Disable-patching-of-external-modules.patch
+Patch0013: 0013-Add-missing-transitive-dependencies.patch
+Patch0014: 0014-Disable-ideNative-module.patch
+Patch0015: 0015-Disable-docs-build.patch
+Patch0016: 0016-Port-to-guava-20.0.patch
+# it depends on ant which is Java 8+
+Patch0017: 0017-Set-core-api-source-level-to-8.patch
+
+Patch100: gradle-CVE-2019-16370.patch
+
+Patch200: gradle-4.4.1-asm7.patch
+
+Patch300: java11-compatibility.patch
+Patch301: java8-compatibility.patch
+Patch302: remove-timestamps.patch
+Patch303: cast-estimated-runtime-to-long.patch
+
+BuildRequires: gradle-local
+BuildRequires: xmvn-subst
+
+# Generic build dependencies
+BuildRequires: desktop-file-utils
+BuildRequires: glibc-locale-base
+BuildRequires: hostname
+BuildRequires: procps
BuildRequires: unzip
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildArch: noarch
-%description
-A flexible groovy-based build tool.
+# Not to have to own the directories
+BuildRequires: hicolor-icon-theme
-%package open-api
-Summary: Open API definition for %{name}
-Group: Development/Tools
-Requires: jpackage-utils
-
-%description open-api
-Open API definition for gradle. It provides a simple versioned way to
-interact with gradle. The open API jar is all that is needed to
-develop/distribute a plugin. It provides some static functions that
-dynamically load gradle from a directory you specify to do things like
-create the UI or execute gradle commands directly (and I think some gradle
-debugger information may soon be accessible there). All you need is the
-gradle home directory and the open API jar.
+# manpage build dependencies
+BuildRequires: asciidoc
+BuildRequires: xmlto
+
+# Artifacts required for Gradle build
+BuildRequires: mvn(antlr:antlr)
+BuildRequires: mvn(biz.aQute.bnd:bndlib)
+BuildRequires: mvn(bsh:bsh)
+BuildRequires: mvn(ch.qos.logback:logback-classic)
+BuildRequires: mvn(ch.qos.logback:logback-core)
+BuildRequires: mvn(com.amazonaws:aws-java-sdk-core)
+BuildRequires: mvn(com.amazonaws:aws-java-sdk-kms)
+BuildRequires: mvn(com.amazonaws:aws-java-sdk-s3)
+BuildRequires: mvn(com.beust:jcommander)
+BuildRequires: mvn(com.esotericsoftware.kryo:kryo)
+BuildRequires: mvn(com.esotericsoftware:minlog)
+BuildRequires: mvn(com.esotericsoftware:reflectasm)
+BuildRequires: mvn(com.fasterxml.jackson.core:jackson-annotations)
+BuildRequires: mvn(com.fasterxml.jackson.core:jackson-core)
+BuildRequires: mvn(com.fasterxml.jackson.core:jackson-databind)
+BuildRequires: mvn(com.google.code.findbugs:findbugs)
+BuildRequires: mvn(com.google.code.findbugs:jsr305)
+BuildRequires: mvn(com.google.code.gson:gson)
+BuildRequires: mvn(com.google.guava:guava-jdk5:20.0)
+BuildRequires: mvn(com.google.guava:guava:20.0)
+BuildRequires: mvn(com.google.http-client:google-http-client)
+BuildRequires: mvn(com.google.oauth-client:google-oauth-client)
+BuildRequires: mvn(com.googlecode.jarjar:jarjar)
+BuildRequires: mvn(com.googlecode.jatl:jatl)
+BuildRequires: mvn(com.jcraft:jsch)
+BuildRequires: mvn(com.sun:tools)
+BuildRequires: mvn(com.typesafe.zinc:zinc)
+BuildRequires: mvn(com.uwyn:jhighlight)
+BuildRequires: mvn(commons-beanutils:commons-beanutils)
+BuildRequires: mvn(commons-cli:commons-cli)
+BuildRequires: mvn(commons-codec:commons-codec)
+BuildRequires: mvn(commons-collections:commons-collections)
+BuildRequires: mvn(commons-configuration:commons-configuration)
+BuildRequires: mvn(commons-io:commons-io)
+BuildRequires: mvn(commons-lang:commons-lang)
+BuildRequires: mvn(dom4j:dom4j)
+BuildRequires: mvn(javax.inject:javax.inject)
+BuildRequires: mvn(javax.servlet:javax.servlet-api)
+BuildRequires: mvn(jaxen:jaxen)
+BuildRequires: mvn(jline:jline)
+BuildRequires: mvn(joda-time:joda-time)
+BuildRequires: mvn(junit:junit)
+BuildRequires: mvn(net.java.dev.jna:jna)
+BuildRequires: mvn(net.jcip:jcip-annotations)
+BuildRequires: mvn(net.rubygrapefruit:native-platform)
+BuildRequires: mvn(net.sourceforge.nekohtml:nekohtml)
+BuildRequires: mvn(org.antlr:antlr4-runtime)
+BuildRequires: mvn(org.apache.ant:ant)
+BuildRequires: mvn(org.apache.ant:ant-launcher)
+BuildRequires: mvn(org.apache.commons:commons-compress)
+BuildRequires: mvn(org.apache.commons:commons-lang3)
+BuildRequires: mvn(org.apache.geronimo.specs:geronimo-annotation_1.0_spec)
+BuildRequires: mvn(org.apache.httpcomponents:httpclient)
+BuildRequires: mvn(org.apache.httpcomponents:httpcore)
+BuildRequires: mvn(org.apache.ivy:ivy)
+BuildRequires: mvn(org.apache.maven.wagon:wagon-file)
+BuildRequires: mvn(org.apache.maven.wagon:wagon-http)
+BuildRequires: mvn(org.apache.maven.wagon:wagon-http-shared)
+BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api)
+BuildRequires: mvn(org.apache.maven:maven-aether-provider)
+BuildRequires: mvn(org.apache.maven:maven-artifact)
+BuildRequires: mvn(org.apache.maven:maven-builder-support)
+BuildRequires: mvn(org.apache.maven:maven-compat)
+BuildRequires: mvn(org.apache.maven:maven-core)
+BuildRequires: mvn(org.apache.maven:maven-model)
+BuildRequires: mvn(org.apache.maven:maven-model-builder)
+BuildRequires: mvn(org.apache.maven:maven-plugin-api)
+BuildRequires: mvn(org.apache.maven:maven-repository-metadata)
+BuildRequires: mvn(org.apache.maven:maven-settings)
+BuildRequires: mvn(org.apache.maven:maven-settings-builder)
+BuildRequires: mvn(org.apache.xbean:xbean-reflect)
+BuildRequires: mvn(org.apache:apache:pom:)
+BuildRequires: mvn(org.bouncycastle:bcpg-jdk15on)
+BuildRequires: mvn(org.bouncycastle:bcprov-jdk15on)
+BuildRequires: mvn(org.codehaus.groovy.modules.http-builder:http-builder)
+BuildRequires: mvn(org.codehaus.groovy:groovy-all)
+BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds)
+BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations)
+BuildRequires: mvn(org.codehaus.plexus:plexus-interpolation)
+BuildRequires: mvn(org.codehaus.plexus:plexus-utils)
+BuildRequires: mvn(org.codenarc:CodeNarc)
+BuildRequires: mvn(org.eclipse.aether:aether-api)
+BuildRequires: mvn(org.eclipse.aether:aether-connector-basic)
+BuildRequires: mvn(org.eclipse.aether:aether-impl)
+BuildRequires: mvn(org.eclipse.aether:aether-spi)
+BuildRequires: mvn(org.eclipse.aether:aether-transport-wagon)
+BuildRequires: mvn(org.eclipse.aether:aether-util)
+BuildRequires: mvn(org.eclipse.jdt:core)
+BuildRequires: mvn(org.eclipse.jetty:jetty-annotations)
+BuildRequires: mvn(org.eclipse.jetty:jetty-jsp)
+BuildRequires: mvn(org.eclipse.jetty:jetty-plus)
+BuildRequires: mvn(org.eclipse.jetty:jetty-security)
+BuildRequires: mvn(org.eclipse.jetty:jetty-server)
+BuildRequires: mvn(org.eclipse.jetty:jetty-servlet)
+BuildRequires: mvn(org.eclipse.jetty:jetty-util)
+BuildRequires: mvn(org.eclipse.jetty:jetty-webapp)
+BuildRequires: mvn(org.eclipse.jetty:jetty-xml)
+BuildRequires: mvn(org.eclipse.jgit:org.eclipse.jgit)
+BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject)
+BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus)
+BuildRequires: mvn(org.fusesource.hawtjni:hawtjni-runtime)
+BuildRequires: mvn(org.fusesource.jansi:jansi)
+BuildRequires: mvn(org.fusesource.jansi:jansi-native)
+BuildRequires: mvn(org.gmetrics:GMetrics)
+BuildRequires: mvn(org.jsoup:jsoup)
+BuildRequires: mvn(org.mozilla:rhino)
+BuildRequires: mvn(org.objenesis:objenesis)
+BuildRequires: mvn(org.ow2.asm:asm-all)
+BuildRequires: mvn(org.parboiled:parboiled-core)
+BuildRequires: mvn(org.parboiled:parboiled-java)
+BuildRequires: mvn(org.pegdown:pegdown)
+BuildRequires: mvn(org.samba.jcifs:jcifs)
+BuildRequires: mvn(org.slf4j:jcl-over-slf4j)
+BuildRequires: mvn(org.slf4j:jul-to-slf4j)
+BuildRequires: mvn(org.slf4j:log4j-over-slf4j)
+BuildRequires: mvn(org.slf4j:slf4j-api)
+BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:)
+BuildRequires: mvn(org.sonatype.plexus:plexus-cipher)
+BuildRequires: mvn(org.sonatype.plexus:plexus-sec-dispatcher)
+BuildRequires: mvn(org.sonatype.pmaven:pmaven-common)
+BuildRequires: mvn(org.sonatype.pmaven:pmaven-groovy)
+BuildRequires: mvn(org.testng:testng)
+BuildRequires: mvn(xerces:xercesImpl) mvn(org.apache.httpcomponents:httpclient)
+BuildRequires: mvn(xml-apis:xml-apis)
+# Avoid building with bootstrap versions of those
+#!BuildRequires: groovy-lib sbt gpars
+# But we want to avoid cycle with oneself
+#!BuildRequires: gradle-bootstrap
+
+Obsoletes: %{name}-bootstrap
+
+# Artifacts required for Gradle build which don't have Maven metadata
+# and thus no mvn provides.
+BuildRequires: lato-fonts
+BuildRequires: liberation-fonts
+
+# Generic runtime dependencies.
+Requires: bash
+Requires: hicolor-icon-theme
+Requires: javapackages-tools
+
+# Theoretically Gradle might be usable with just JRE, but typical Gradle
+# workflow requires full JDK, so we recommend it here.
+Recommends: java-devel
+
+# Providers of symlinks in Gradle lib/ directory. Generated with:
+# for l in $(find /usr/share/gradle -type l); do rpm -qf --qf 'Requires: %{name}\n' $(readlink -e $l); done | sort -u | grep -v gradle
+Requires: ant
+Requires: apache-commons-cli
+Requires: apache-commons-codec
+Requires: apache-commons-collections
+Requires: apache-commons-compress
+Requires: apache-commons-io
+Requires: apache-commons-lang
+Requires: apache-commons-lang3
+Requires: apache-ivy
+Requires: aqute-bndlib
+Requires: atinject
+Requires: aws-sdk-java-core
+Requires: aws-sdk-java-kms
+Requires: aws-sdk-java-s3
+Requires: base64coder
+Requires: beust-jcommander
+Requires: bouncycastle
+Requires: bouncycastle-pg
+Requires: bsh2
+Requires: ecj
+Requires: glassfish-servlet-api
+Requires: google-gson
+Requires: google-guice
+Requires: groovy-lib
+Requires: guava20
+Requires: hawtjni-runtime
+Requires: httpcomponents-client
+Requires: httpcomponents-core
+Requires: jackson-annotations
+Requires: jackson-core
+Requires: jackson-databind
+Requires: jansi
+Requires: jansi-native
+Requires: jatl
+Requires: jcifs
+Requires: jcip-annotations
+Requires: jcl-over-slf4j
+Requires: jetty-server
+Requires: jetty-util
+Requires: jgit
+Requires: joda-time
+Requires: jsch
+Requires: jsr-305
+Requires: jul-to-slf4j
+Requires: junit
+Requires: kryo
+Requires: log4j-over-slf4j
+Requires: maven-lib
+Requires: maven-resolver-api
+Requires: maven-resolver-connector-basic
+Requires: maven-resolver-impl
+Requires: maven-resolver-spi
+Requires: maven-resolver-transport-wagon
+Requires: maven-resolver-util
+Requires: maven-wagon-file
+Requires: maven-wagon-http
+Requires: maven-wagon-http-shared
+Requires: maven-wagon-provider-api
+Requires: minlog
+Requires: native-platform
+Requires: nekohtml
+Requires: objectweb-asm
+Requires: objenesis
+Requires: plexus-cipher
+Requires: plexus-classworlds
+Requires: plexus-containers-component-annotations
+Requires: plexus-interpolation
+Requires: plexus-sec-dispatcher
+Requires: plexus-utils
+Requires: reflectasm
+Requires: rhino
+Requires: sisu-inject
+Requires: sisu-plexus
+Requires: slf4j
+Requires: snakeyaml
+Requires: tesla-polyglot-common
+Requires: tesla-polyglot-groovy
+Requires: testng
+Requires: xbean
+Requires: xerces-j2
+Requires: xml-commons-apis
+
+%description
+Gradle is build automation evolved. Gradle can automate the building,
+testing, publishing, deployment and more of software packages or other
+types of projects such as generated static websites, generated
+documentation or indeed anything else.
+
+Gradle combines the power and flexibility of Ant with the dependency
+management and conventions of Maven into a more effective way to
+build. Powered by a Groovy DSL and packed with innovation, Gradle
+provides a declarative way to describe all kinds of builds through
+sensible defaults. Gradle is quickly becoming the build system of
+choice for many open source projects, leading edge enterprises and
+legacy automation challenges.
%prep
-%setup -q
+%autosetup -p1
+
+# Remove bundled wrapper JAR
+rm -rf gradle/wrapper/
+# Remove bundled JavaScript
+>subprojects/diagnostics/src/main/resources/org/gradle/api/tasks/diagnostics/htmldependencyreport/jquery.jstree.js
+
+# This file is normally downloaded from Internet during package build
+# mkdir -p build
+# cp %{SOURCE1} build/all-released-versions.json
+
+# quality checks for which we don't have deps
+rm -r buildSrc/src/main/groovy/org/gradle/binarycompatibility
+rm buildSrc/src/main/groovy/org/gradle/build/docs/CacheableAsciidoctorTask.groovy
+
+# jquery and fonts don't have Maven metadata
+%mvn_config resolverSettings/metadataRepositories/repository %{SOURCE2}
+%mvn_config resolverSettings/metadataRepositories/repository %{SOURCE3}
+
+# Tests for build script currently fail, but the build works.
+# TODO: enble tests
+rm -rf buildSrc/src/test
+
+# Compilation with Fedora versions of some libraries produces
+# warnings. Lets not treat them as errors to make the build work.
+sed -i 's/"-Werror" <<//' gradle/strictCompile.gradle
+
+removeProject() {
+sed -i "/'$1'/d" settings.gradle
+sed -i "s/'$1',\?//" build.gradle
+}
+removeProject resourcesGcs
+rm -r subprojects/resources-gcs
+rm -r subprojects/ide-native
%build
-# Build Open API subpackage
-pushd subprojects/open-api/src/main/java
-find -name '*.java' |xargs javac -source 1.6 -target 1.6
-find -name '*.class' |xargs jar cf gradle-open-api.jar
-popd
+export LANG=en_US.UTF8
+export JAVA_OPTS="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
+# Disables parallel build and daemon mode
+rm gradle.properties
+gradle-local --offline --no-daemon install xmvnInstall \
+ -Pgradle_installPath=$PWD/inst -PfinalRelease
+
+# manpage build
+mkdir man
+asciidoc -b docbook -d manpage -o man/gradle.xml %{SOURCE6}
+xmlto man man/gradle.xml -o man
%install
-install -d %{buildroot}%{_javadir}
-# Open API
-pushd subprojects/open-api/src/main/java
-install -p -m644 gradle-open-api.jar \
- %{buildroot}%{_javadir}/gradle-open-api-%{version}.jar
-ln -s gradle-open-api-%{version}.jar \
- %{buildroot}%{_javadir}/gradle-open-api.jar
-popd
-
-%files open-api
-%defattr(-,root,root,-)
-%{_javadir}/gradle-open-api-%{version}.jar
-%{_javadir}/gradle-open-api.jar
-%doc LICENSE
-%doc subprojects/distributions/src/toplevel/NOTICE
+cp subprojects/distributions/src/toplevel/NOTICE .
+cp subprojects/docs/src/samples/application/src/dist/LICENSE .
+
+install -d -m 755 %{buildroot}%{_javadir}/%{name}/
+
+rm -rf inst/bin/gradle.bat inst/media
+ln -sf %{_bindir}/%{name} inst/bin/gradle
+find inst/lib -type f -name 'gradle*' | sed 's:.*/\(gradle-.*\)-%{version}.*:ln -sf %{_javadir}/%{name}/\1.jar &:' | bash -x
+ln -sf $(find-jar ecj/ecj) inst/lib/plugins/ecj.jar
+xmvn-subst -s $(find inst/lib -type f)
+# TODO figure out why this one is missing
+ln -s $(find-jar commons-lang) inst/lib/
+ln -s $(find-jar slf4j/slf4j-api) inst/lib/
+cp -a inst %{buildroot}%{_datadir}/%{name}
+
+%mvn_install
+
+install -d -m 755 %{buildroot}%{_bindir}/
+cat %{SOURCE4} | sed "s#@BASH@#$(which bash)#g" >gradle.sh
+chmod +x %{name}.sh
+install -p -m 755 %{name}.sh %{buildroot}%{_bindir}/%{name}
+
+desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE5}
+
+for r in 16 24 32 48 64 128 256; do
+ install -d -m 755 %{buildroot}%{_datadir}/icons/hicolor/${r}x${r}/apps/
+ install -p -m 644 subprojects/distributions/src/toplevel/media/gradle-icon-${r}x${r}.png \
+ %{buildroot}%{_datadir}/icons/hicolor/${r}x${r}/apps/%{name}.png
+done
+
+install -d -m 755 %{buildroot}%{_mandir}/man1/
+install -p -m 644 man/gradle.1 %{buildroot}%{_mandir}/man1/gradle.1
+
+%files -f .mfiles
+%{_bindir}/%{name}
+%{_datadir}/%{name}
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/icons/hicolor/*/apps/%{name}.png
+%{_mandir}/man1/gradle.1*
+%license LICENSE NOTICE
%changelog
++++++ 0001-Gradle-local-mode.patch ++++++
>From a20dbae1bff7997e720b767ce7c6c0aca51b3574 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Wed, 15 Oct 2014 14:23:30 +0200
Subject: [PATCH 01/17] Gradle local mode
---
build.gradle | 1 +
buildSrc/build.gradle | 3 +++
subprojects/docs/docs.gradle | 1 +
subprojects/docs/src/transforms/release-notes.gradle | 1 +
subprojects/reporting/reporting.gradle | 1 +
5 files changed, 7 insertions(+)
diff --git a/build.gradle b/build.gradle
index aea7a65c3b3..7d8ac910b04 100644
--- a/build.gradle
+++ b/build.gradle
@@ -197,6 +197,7 @@ allprojects {
maven { url 'https://repo.gradle.org/gradle/libs-releases' }
maven { url 'https://repo.gradle.org/gradle/libs-milestones' }
maven { url "https://repo.gradle.org/gradle/libs-snapshots" }
+ xmvn()
}
// patchExternalModules lives in the root project - we need to activate normalization there, too.
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index bdf01f600dc..196acdb4b73 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -29,6 +29,9 @@ repositories {
maven { url 'https://repo.gradle.org/gradle/libs-releases' }
maven { url "https://repo.gradle.org/gradle/libs-snapshots" }
maven { url "https://plugins.gradle.org/m2/" }
+ xmvn()
+ maven { url 'https://repo.gradle.org/gradle/libs' }
+ mavenCentral()
}
dependencies {
diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle
index 9704e5214bd..e960da3eb1a 100755
--- a/subprojects/docs/docs.gradle
+++ b/subprojects/docs/docs.gradle
@@ -41,6 +41,7 @@ apply plugin: 'javascript-base'
apply plugin: 'org.asciidoctor.convert'
repositories {
+ xmvn()
javaScript.googleApis()
ivy {
diff --git a/subprojects/docs/src/transforms/release-notes.gradle b/subprojects/docs/src/transforms/release-notes.gradle
index a4410e35049..8bfe924c972 100644
--- a/subprojects/docs/src/transforms/release-notes.gradle
+++ b/subprojects/docs/src/transforms/release-notes.gradle
@@ -1,5 +1,6 @@
buildscript {
repositories {
+ xmvn()
mavenCentral()
}
dependencies {
diff --git a/subprojects/reporting/reporting.gradle b/subprojects/reporting/reporting.gradle
index a467c71be4d..92981631cb8 100644
--- a/subprojects/reporting/reporting.gradle
+++ b/subprojects/reporting/reporting.gradle
@@ -7,6 +7,7 @@ configurations {
}
repositories {
+ xmvn()
javaScript.googleApis()
}
--
2.17.2
++++++ 0002-Remove-Class-Path-from-manifest.patch ++++++
>From b2a5d7f3bd79639fbd391f3b2ce74a6f1e6023de Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Sun, 9 Nov 2014 17:52:30 +0100
Subject: [PATCH 02/17] Remove Class-Path from manifest
---
.../installation/CurrentGradleInstallationLocator.java | 8 +-------
.../org/gradle/api/internal/classpath/ManifestUtil.java | 3 +++
subprojects/launcher/launcher.gradle | 3 +++
.../launcher/daemon/client/DefaultDaemonStarter.java | 6 +-----
4 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java b/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
index 88d6b0be44d..fe9086c5c29 100644
--- a/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
+++ b/subprojects/core-api/src/main/java/org/gradle/internal/installation/CurrentGradleInstallationLocator.java
@@ -51,13 +51,7 @@ abstract class CurrentGradleInstallationLocator {
}
private static File findDistDir(Class<?> clazz) {
- File codeSource = ClasspathUtil.getClasspathForClass(clazz);
- if (codeSource.isFile()) {
- return determineDistRootDir(codeSource);
- } else {
- // Loaded from a classes dir - assume we're running from the ide or tests
- return null;
- }
+ return new File("/usr/share/gradle");
}
/**
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java
index 193f91079a4..2f8bc364401 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/ManifestUtil.java
@@ -71,6 +71,9 @@ public class ManifestUtil {
return EMPTY;
}
String classpathEntry = manifest.getMainAttributes().getValue("Class-Path");
+ if (classpathEntry == null) {
+ classpathEntry = manifest.getMainAttributes().getValue("X-Gradle-Class-Path");
+ }
if (classpathEntry == null || classpathEntry.trim().length() == 0) {
return EMPTY;
}
diff --git a/subprojects/launcher/launcher.gradle b/subprojects/launcher/launcher.gradle
index 23f161cfcee..db50238a34a 100644
--- a/subprojects/launcher/launcher.gradle
+++ b/subprojects/launcher/launcher.gradle
@@ -49,6 +49,9 @@ task configureJar {
jar {
dependsOn configureJar
manifest.mainAttributes('Main-Class': "org.gradle.launcher.GradleMain")
+ doFirst {
+ jar.manifest.mainAttributes('X-Gradle-Class-Path': "${project(':core').jar.archivePath.name} ${project(':baseServices').jar.archivePath.name}")
+ }
}
task startScripts(type: GradleStartScriptGenerator) {
diff --git a/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java b/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java
index 830aaf34cfe..2c57544bb51 100755
--- a/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java
+++ b/subprojects/launcher/src/main/java/org/gradle/launcher/daemon/client/DefaultDaemonStarter.java
@@ -73,17 +73,13 @@ public class DefaultDaemonStarter implements DaemonStarter {
ModuleRegistry registry = new DefaultModuleRegistry(gradleInstallation);
ClassPath classpath;
List<File> searchClassPath;
- if (gradleInstallation == null) {
+ {
// When not running from a Gradle distro, need runtime impl for launcher plus the search path to look for other modules
classpath = ClassPath.EMPTY;
for (Module module : registry.getModule("gradle-launcher").getAllRequiredModules()) {
classpath = classpath.plus(module.getClasspath());
}
searchClassPath = registry.getAdditionalClassPath().getAsFiles();
- } else {
- // When running from a Gradle distro, only need launcher jar. The daemon can find everything from there.
- classpath = registry.getModule("gradle-launcher").getImplementationClasspath();
- searchClassPath = Collections.emptyList();
}
if (classpath.isEmpty()) {
throw new IllegalStateException("Unable to construct a bootstrap classpath when starting the daemon");
--
2.17.2
++++++ 0003-Implement-XMvn-repository-factory-method.patch ++++++
>From 46e4a62a1e5e78b46a76a6d6669356de8dd51e06 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Sun, 9 Nov 2014 21:37:37 +0100
Subject: [PATCH 03/17] Implement XMvn repository factory method
---
.../artifacts/BaseRepositoryFactory.java | 2 +
.../dsl/DefaultRepositoryHandler.java | 5 ++
.../DefaultBaseRepositoryFactory.java | 62 +++++++++++++++++++
3 files changed, 69 insertions(+)
diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java
index bfcbf4f618b..760782370e5 100644
--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java
+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/BaseRepositoryFactory.java
@@ -43,4 +43,6 @@ public interface BaseRepositoryFactory {
IvyArtifactRepository createIvyRepository();
MavenArtifactRepository createMavenRepository();
+
+ ArtifactRepository createXMvnResolver();
}
diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java
index 1640b68a114..d1770e97352 100644
--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java
+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/dsl/DefaultRepositoryHandler.java
@@ -43,6 +43,7 @@ public class DefaultRepositoryHandler extends DefaultArtifactRepositoryContainer
public static final String FLAT_DIR_DEFAULT_NAME = "flatDir";
private static final String MAVEN_REPO_DEFAULT_NAME = "maven";
private static final String IVY_REPO_DEFAULT_NAME = "ivy";
+ private static final String XMVN_REPO_DEFAULT_NAME = "xmvn";
private final BaseRepositoryFactory repositoryFactory;
@@ -112,4 +113,8 @@ public class DefaultRepositoryHandler extends DefaultArtifactRepositoryContainer
public IvyArtifactRepository ivy(Closure closure) {
return ivy(ConfigureUtil.configureUsing(closure));
}
+
+ public ArtifactRepository xmvn() {
+ return addRepository(repositoryFactory.createXMvnResolver(), XMVN_REPO_DEFAULT_NAME);
+ }
}
diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java
index 0110370ff22..58c98f4e923 100644
--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java
+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/repositories/DefaultBaseRepositoryFactory.java
@@ -46,8 +46,15 @@ import org.gradle.internal.resource.local.FileStore;
import org.gradle.internal.resource.local.LocallyAvailableResourceFinder;
import java.io.File;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
import java.util.Map;
+import java.util.Set;
public class DefaultBaseRepositoryFactory implements BaseRepositoryFactory {
private final LocalMavenRepositoryLocator localMavenRepositoryLocator;
@@ -171,4 +178,59 @@ public class DefaultBaseRepositoryFactory implements BaseRepositoryFactory {
return repository.getName() + '(' + url + ')';
}
}
+
+ public ArtifactRepository createXMvnResolver() {
+ // Check if XMvn connector is available and inform user if it's not.
+ // This is more user-friendly as it prevents cryptic stack traces.
+ if (!new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").exists())
+ throw new RuntimeException("Local mode for Gradle is not available because XMvn Gradle connector is not installed. "
+ + "To use local mode you need to install gradle-local package.");
+
+ // XMvn connector for Gradle is an external library and it is not
+ // included in default Gradle classpath. Before it can be accessed
+ // we need to add its implementation JARs to current class loader.
+ /*
+ try {
+ ClassLoader classLoader = getClass().getClassLoader();
+ Set<URL> newUrls = new LinkedHashSet<URL>();
+ newUrls.add(new File("/usr/share/java/xmvn/xmvn-api.jar").toURI().toURL());
+ newUrls.add(new File("/usr/share/java/xmvn/xmvn-launcher.jar").toURI().toURL());
+ newUrls.add(new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").toURI().toURL());
+ Method getterMethod = classLoader.getClass().getMethod("getURLs");
+ Object[] currentUrls = (Object[]) getterMethod.invoke(classLoader);
+ newUrls.removeAll(Arrays.asList(currentUrls));
+ Method adderMethod = classLoader.getClass().getMethod("addURLs", Iterable.class);
+ adderMethod.invoke(classLoader, newUrls);
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException("Unable to inject XMvn JARs to Gradle class loader", e);
+ } catch (MalformedURLException e) {
+ // Should not happen
+ throw new RuntimeException(e);
+ }
+ */
+ Class xmvnClass;
+
+ try {
+ URL[] newUrls = new URL[] {
+ new File("/usr/share/java/xmvn/xmvn-api.jar").toURI().toURL(),
+ new File("/usr/share/java/xmvn/xmvn-core.jar").toURI().toURL(),
+ new File("/usr/share/java/xmvn/xmvn-connector-gradle.jar").toURI().toURL()
+ };
+ ClassLoader classLoader = new URLClassLoader(newUrls, getClass().getClassLoader());
+ String xmvnConnectorRole = "org.fedoraproject.xmvn.connector.gradle.GradleResolver";
+ xmvnClass = classLoader.loadClass(xmvnConnectorRole);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("Unable to inject XMvn JARs to Gradle class loader", e);
+ } catch (MalformedURLException e) {
+ // Should not happen
+ throw new RuntimeException(e);
+ }
+
+ try {
+ return (ArtifactRepository) xmvnClass.getConstructor(MetaDataParser.class, ImmutableModuleIdentifierFactory.class, FileResourceRepository.class)
+ .newInstance(pomParser, moduleIdentifierFactory, fileResourceRepository);
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException("Failed to inject XMvn resolver", e);
+ }
+ }
}
--
2.17.2
++++++ 0004-Use-unversioned-dependency-JAR-names.patch ++++++
>From df35f5573411746ea2a3d01bfa3f2bcbb01648c3 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Sat, 7 Feb 2015 15:28:03 +0100
Subject: [PATCH 04/17] Use unversioned dependency JAR names
---
.../gradle/api/internal/classpath/DefaultModuleRegistry.java | 2 +-
.../java/org/gradle/api/internal/plugins/GroovyJarFile.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
index bcd55e367d2..0ead27197d6 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/classpath/DefaultModuleRegistry.java
@@ -227,7 +227,7 @@ public class DefaultModuleRegistry implements ModuleRegistry {
}
private File findJar(String name) {
- Pattern pattern = Pattern.compile(Pattern.quote(name) + "-\\d.+\\.jar");
+ Pattern pattern = Pattern.compile(Pattern.quote(name) + "(?:-\\d.+)?\\.jar");
if (gradleInstallation != null) {
for (File libDir : gradleInstallation.getLibDirs()) {
for (File file : libDir.listFiles()) {
diff --git a/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java b/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java
index 5b7329999ae..c4c778e65a6 100644
--- a/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java
+++ b/subprojects/plugins/src/main/java/org/gradle/api/internal/plugins/GroovyJarFile.java
@@ -23,7 +23,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroovyJarFile {
- private static final Pattern FILE_NAME_PATTERN = Pattern.compile("(groovy(?:-all)?)-(\\d.*?)(-indy)?.jar");
+ private static final Pattern FILE_NAME_PATTERN = Pattern.compile("(groovy(?:-all)?)(?:-(\\d.*?))?(-indy)?.jar");
private final File file;
private final Matcher matcher;
--
2.17.2
++++++ 0005-Port-to-Maven-3.3.9-and-Eclipse-Aether.patch ++++++
>From d5dc17df18ae38230761b9ce9efbfdd66217ec37 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Mon, 6 Jul 2015 09:57:22 +0200
Subject: [PATCH 05/17] Port to Maven 3.3.9 and Eclipse Aether
---
gradle/dependencies.gradle | 23 ++++++---
.../internal/maven/MavenProjectsCreator.java | 7 +--
.../action/AbstractMavenPublishAction.java | 49 +++++++++----------
.../action/LoggingMavenTransferListener.java | 6 +--
.../internal/action/MavenDeployAction.java | 31 ++++++------
.../internal/action/MavenInstallAction.java | 10 ++--
.../action/SnapshotVersionManager.java | 16 +++---
7 files changed, 76 insertions(+), 66 deletions(-)
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 73cf0b1ee08..54dc27d7fbe 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -123,12 +123,18 @@ libraries.nekohtml = dependencies.module("net.sourceforge.nekohtml:nekohtml:1.9.
libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.maven}") {
dependency "org.apache.maven:maven-settings:${versions.maven}@jar"
dependency "org.apache.maven:maven-settings-builder:${versions.maven}@jar"
+ dependency "org.apache.maven:maven-builder-support:${versions.maven}@jar"
+
+ //sisu:
+ dependency "org.eclipse.sisu:org.eclipse.sisu.plexus:0.3.0@jar"
+ dependency "org.eclipse.sisu:org.eclipse.sisu.inject:0.3.0@jar"
+ dependency "org.sonatype.sisu:sisu-guice:3.2.5:no_aop@jar"
+ dependency "javax.inject:javax.inject:1@jar"
//plexus:
dependency "org.codehaus.plexus:plexus-utils:2.1@jar"
dependency "org.codehaus.plexus:plexus-interpolation:1.14@jar"
dependency "org.codehaus.plexus:plexus-component-annotations:1.5.5@jar"
- dependency "org.codehaus.plexus:plexus-container-default:1.5.5@jar"
dependency "org.codehaus.plexus:plexus-classworlds:2.4@jar"
//sonatype plexus
@@ -150,14 +156,17 @@ libraries.maven3 = dependencies.module("org.apache.maven:maven-core:${versions.m
dependency 'org.apache.maven.wagon:wagon-file:2.4@jar'
dependency 'org.apache.maven.wagon:wagon-http:2.4@jar'
dependency 'org.apache.maven.wagon:wagon-provider-api:2.4@jar'
- dependency 'org.apache.maven.wagon:wagon-http-shared4:2.4@jar'
+ dependency 'org.apache.maven.wagon:wagon-http-shared:2.4@jar'
//eather:
- dependency "org.sonatype.aether:aether-api:1.13.1@jar"
- dependency "org.sonatype.aether:aether-impl:1.13.1@jar"
- dependency "org.sonatype.aether:aether-spi:1.13.1@jar"
- dependency "org.sonatype.aether:aether-util:1.13.1@jar"
- dependency 'org.sonatype.aether:aether-connector-wagon:1.13.1@jar'
+ dependency "org.eclipse.aether:aether-api:1.0.0.v20140518@jar"
+ dependency "org.eclipse.aether:aether-impl:1.0.0.v20140518@jar"
+ dependency "org.eclipse.aether:aether-spi:1.0.0.v20140518@jar"
+ dependency "org.eclipse.aether:aether-util:1.0.0.v20140518@jar"
+ dependency 'org.eclipse.aether:aether-connector-basic:1.0.0.v20140518@jar'
+ dependency 'org.eclipse.aether:aether-transport-wagon:1.0.0.v20140518@jar'
+
+ dependency 'org.apache.commons:commons-lang3:3.4@jar'
}
libraries.spock = [
diff --git a/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java b/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
index 7a858124b29..69a580405b4 100644
--- a/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
+++ b/subprojects/build-init/src/main/java/org/gradle/buildinit/plugins/internal/maven/MavenProjectsCreator.java
@@ -25,12 +25,13 @@ import org.apache.maven.settings.Settings;
import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.DefaultContainerConfiguration;
import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.configuration.PlexusConfigurationException;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.util.DefaultRepositorySystemSession;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.RepositorySystemSession;
import org.gradle.util.CollectionUtils;
import java.io.File;
@@ -55,7 +56,7 @@ public class MavenProjectsCreator {
private Set<MavenProject> createNow(Settings settings, File pomFile) throws PlexusContainerException, PlexusConfigurationException, ComponentLookupException, MavenExecutionRequestPopulationException, ProjectBuildingException {
ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration()
.setClassWorld(new ClassWorld("plexus.core", ClassWorld.class.getClassLoader()))
- .setName("mavenCore");
+ .setName("mavenCore").setClassPathScanning(PlexusConstants.SCANNING_INDEX).setAutoWiring(true);
DefaultPlexusContainer container = new DefaultPlexusContainer(containerConfiguration);
ProjectBuilder builder = container.lookup(ProjectBuilder.class);
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java
index 9dd6e695afd..7d65dde67e3 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/AbstractMavenPublishAction.java
@@ -18,11 +18,11 @@ package org.gradle.api.publication.maven.internal.action;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.repository.internal.MavenRepositorySystemSession;
-import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
-import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
+import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
+import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.DefaultContainerConfiguration;
import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.classworlds.ClassWorld;
@@ -30,16 +30,16 @@ import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.gradle.api.GradleException;
import org.gradle.internal.UncheckedException;
-import org.sonatype.aether.RepositoryException;
-import org.sonatype.aether.RepositorySystem;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.artifact.ArtifactType;
-import org.sonatype.aether.impl.Deployer;
-import org.sonatype.aether.impl.internal.DefaultDeployer;
-import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
-import org.sonatype.aether.util.DefaultRepositorySystemSession;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactType;
+import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.artifact.DefaultArtifact;
import java.io.File;
import java.io.FileReader;
@@ -60,9 +60,8 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
protected AbstractMavenPublishAction(File pomFile, List<File> wagonJars) {
container = newPlexusContainer(wagonJars);
- session = new MavenRepositorySystemSession();
+ session = MavenRepositorySystemUtils.newSession();
session.setTransferListener(new LoggingMavenTransferListener());
- session.getConfigProperties().put("maven.metadata.legacy", "true");
Model pom = parsePom(pomFile);
pomArtifact = new DefaultArtifact(pom.getGroupId(), pom.getArtifactId(), "pom", pom.getVersion()).setFile(pomFile);
@@ -70,7 +69,11 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
}
public void setLocalMavenRepositoryLocation(File localMavenRepository) {
- session.setLocalRepositoryManager(new SimpleLocalRepositoryManager(localMavenRepository));
+ try {
+ session.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory().newInstance(session, new LocalRepository(localMavenRepository)));
+ } catch (NoLocalRepositoryManagerException e) {
+ throw UncheckedException.throwAsUncheckedException(e);
+ }
}
public void setMainArtifact(File file) {
@@ -117,7 +120,11 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
classRealm.addURL(jar.toURI().toURL());
}
}
- return new DefaultPlexusContainer(new DefaultContainerConfiguration().setRealm(classRealm));
+ ContainerConfiguration conf = new DefaultContainerConfiguration();
+ conf.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
+ conf.setAutoWiring(true);
+ conf.setRealm(classRealm);
+ return new DefaultPlexusContainer(conf);
} catch (PlexusContainerException e) {
throw UncheckedException.throwAsUncheckedException(e);
} catch (MalformedURLException e) {
@@ -127,14 +134,6 @@ abstract class AbstractMavenPublishAction implements MavenPublishAction {
private RepositorySystem newRepositorySystem() {
try {
- DefaultDeployer deployer = (DefaultDeployer) getContainer().lookup(Deployer.class);
- // This is a workaround for https://issues.gradle.org/browse/GRADLE-3324.
- // Somehow the ArrayList 'result' in `org.sonatype.aether.impl.internal.Utils#sortMetadataGeneratorFactories` ends up
- // being a list of nulls on windows and IBM's 1.6 JDK.
- deployer.setMetadataFactories(null);
- deployer.addMetadataGeneratorFactory(new VersionsMetadataGeneratorFactory());
- deployer.addMetadataGeneratorFactory(new SnapshotMetadataGeneratorFactory());
- deployer.addMetadataGeneratorFactory(snapshotVersionManager);
return container.lookup(RepositorySystem.class);
} catch (ComponentLookupException e) {
throw UncheckedException.throwAsUncheckedException(e);
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java
index 5d75a16744b..46287cff506 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/LoggingMavenTransferListener.java
@@ -18,9 +18,9 @@ package org.gradle.api.publication.maven.internal.action;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.sonatype.aether.transfer.AbstractTransferListener;
-import org.sonatype.aether.transfer.TransferEvent;
-import org.sonatype.aether.transfer.TransferEvent.RequestType;
+import org.eclipse.aether.transfer.AbstractTransferListener;
+import org.eclipse.aether.transfer.TransferEvent;
+import org.eclipse.aether.transfer.TransferEvent.RequestType;
class LoggingMavenTransferListener extends AbstractTransferListener {
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingMavenTransferListener.class);
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java
index 220e8535c18..c9891dfb583 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenDeployAction.java
@@ -19,14 +19,15 @@ import org.apache.maven.artifact.ant.RemoteRepository;
import org.gradle.api.GradleException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.sonatype.aether.RepositorySystem;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.deployment.DeployRequest;
-import org.sonatype.aether.deployment.DeploymentException;
-import org.sonatype.aether.repository.Authentication;
-import org.sonatype.aether.repository.Proxy;
-import org.sonatype.aether.util.repository.DefaultProxySelector;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.deployment.DeploymentException;
+import org.eclipse.aether.repository.Authentication;
+import org.eclipse.aether.repository.Proxy;
+import org.eclipse.aether.util.repository.AuthenticationBuilder;
+import org.eclipse.aether.util.repository.DefaultProxySelector;
import java.io.File;
import java.util.Collection;
@@ -57,7 +58,7 @@ public class MavenDeployAction extends AbstractMavenPublishAction {
throw new GradleException("Must specify a repository for deployment");
}
- org.sonatype.aether.repository.RemoteRepository aetherRepo = createRepository(gradleRepo);
+ org.eclipse.aether.repository.RemoteRepository aetherRepo = createRepository(gradleRepo);
DeployRequest request = new DeployRequest();
request.setRepository(aetherRepo);
@@ -69,22 +70,22 @@ public class MavenDeployAction extends AbstractMavenPublishAction {
repositorySystem.deploy(session, request);
}
- private org.sonatype.aether.repository.RemoteRepository createRepository(RemoteRepository gradleRepo) {
- org.sonatype.aether.repository.RemoteRepository repo = new org.sonatype.aether.repository.RemoteRepository("remote", gradleRepo.getLayout(), gradleRepo.getUrl());
+ private org.eclipse.aether.repository.RemoteRepository createRepository(RemoteRepository gradleRepo) {
+ org.eclipse.aether.repository.RemoteRepository.Builder repoBuilder = new org.eclipse.aether.repository.RemoteRepository.Builder("remote", gradleRepo.getLayout(), gradleRepo.getUrl());
org.apache.maven.artifact.ant.Authentication auth = gradleRepo.getAuthentication();
if (auth != null) {
- repo.setAuthentication(new Authentication(auth.getUserName(), auth.getPassword(), auth.getPrivateKey(), auth.getPassphrase()));
+ repoBuilder.setAuthentication(new AuthenticationBuilder().addUsername(auth.getUserName()).addPassword(auth.getPassword()).addPrivateKey(auth.getPrivateKey(), auth.getPassphrase()).build());
}
org.apache.maven.artifact.ant.Proxy proxy = gradleRepo.getProxy();
if (proxy != null) {
DefaultProxySelector proxySelector = new DefaultProxySelector();
- Authentication proxyAuth = new Authentication(proxy.getUserName(), proxy.getPassword());
+ Authentication proxyAuth = new AuthenticationBuilder().addUsername(proxy.getUserName()).addPassword(proxy.getPassword()).build();
proxySelector.add(new Proxy(proxy.getType(), proxy.getHost(), proxy.getPort(), proxyAuth), proxy.getNonProxyHosts());
- repo.setProxy(proxySelector.getProxy(repo));
+ repoBuilder.setProxy(proxySelector.getProxy(repoBuilder.build()));
}
- return repo;
+ return repoBuilder.build();
}
}
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java
index 37d9dc52d5b..3b121111f2b 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/MavenInstallAction.java
@@ -15,11 +15,11 @@
*/
package org.gradle.api.publication.maven.internal.action;
-import org.sonatype.aether.RepositorySystem;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.installation.InstallRequest;
-import org.sonatype.aether.installation.InstallationException;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.installation.InstallationException;
import java.io.File;
import java.util.Collection;
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java
index 1fedf1d281a..b1ee8c09a1a 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/action/SnapshotVersionManager.java
@@ -16,13 +16,13 @@
package org.gradle.api.publication.maven.internal.action;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.deployment.DeployRequest;
-import org.sonatype.aether.impl.MetadataGenerator;
-import org.sonatype.aether.impl.MetadataGeneratorFactory;
-import org.sonatype.aether.installation.InstallRequest;
-import org.sonatype.aether.metadata.Metadata;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.metadata.Metadata;
import java.util.Collection;
import java.util.Collections;
@@ -35,7 +35,7 @@ class SnapshotVersionManager implements MetadataGeneratorFactory, MetadataGenera
}
@Override
- public int getPriority() {
+ public float getPriority() {
return -100;
}
--
2.17.2
++++++ 0006-Disable-code-quality-checks.patch ++++++
>From 7298e1704b87799781a23c5b51adb6d6a794c4ee Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Wed, 20 Sep 2017 15:26:10 +0300
Subject: [PATCH 06/17] Disable code quality checks
---
build.gradle | 4 ----
buildSrc/build.gradle | 9 ---------
gradle/classycle.gradle | 7 -------
subprojects/distributions/distributions.gradle | 2 --
4 files changed, 22 deletions(-)
diff --git a/build.gradle b/build.gradle
index 7d8ac910b04..92233aef8c9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -215,15 +215,11 @@ subprojects {
apply from: "$rootDir/gradle/groovyProject.gradle"
apply from: "$rootDir/gradle/testWithUnknownOS.gradle"
apply from: "$rootDir/gradle/java9.gradle"
- check.dependsOn ":docs:checkstyleApi"
- check.dependsOn "codeQuality"
}
if (project in publishedProjects) {
apply from: "$rootDir/gradle/publish.gradle"
}
-
- apply from: "$rootDir/gradle/codeQuality.gradle"
}
configurations {
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 196acdb4b73..80ccdd03188 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -50,9 +50,6 @@ dependencies {
compile "org.pegdown:pegdown:1.6.0"
compile "org.jsoup:jsoup:1.6.3"
- compile 'me.champeau.gradle:japicmp-gradle-plugin:0.2.4'
- compile "org.asciidoctor:asciidoctor-gradle-plugin:$asciidoctorPluginVersion"
- compile 'com.github.javaparser:javaparser-core:2.4.0'
}
ext.isCiServer = System.getenv().containsKey("CI")
@@ -60,9 +57,3 @@ ext.isCiServer = System.getenv().containsKey("CI")
apply from: '../gradle/compile.gradle'
apply from: '../gradle/dependencies.gradle'
apply from: '../gradle/classycle.gradle'
-
-if (!isCiServer || (isCiServer && Boolean.getBoolean('enableCodeQuality'))) {
- apply from: '../gradle/codeQuality.gradle'
-}
-
-apply from: "../gradle/ciReporting.gradle"
diff --git a/gradle/classycle.gradle b/gradle/classycle.gradle
index ba44bdfed3b..5396cf3c5ed 100644
--- a/gradle/classycle.gradle
+++ b/gradle/classycle.gradle
@@ -1,11 +1,4 @@
allprojects {
ext.useClassycle = { params = [:] ->
- def excludePatterns = params.exclude ?: []
-
- apply plugin: org.gradle.plugins.classycle.ClassyclePlugin
-
- tasks.withType(org.gradle.plugins.classycle.Classycle).all() {
- it.excludePatterns = excludePatterns
- }
}
}
diff --git a/subprojects/distributions/distributions.gradle b/subprojects/distributions/distributions.gradle
index 2ff68e89277..1283e42c700 100644
--- a/subprojects/distributions/distributions.gradle
+++ b/subprojects/distributions/distributions.gradle
@@ -131,5 +131,3 @@ integTestTasks.all {
systemProperty 'org.gradle.public.api.includes', publicApiIncludes.join(':')
systemProperty 'org.gradle.public.api.excludes', publicApiExcludes.join(':')
}
-
-apply from: 'binary-compatibility.gradle'
--
2.17.2
++++++ 0007-Port-to-Kryo-3.0.patch ++++++
>From 67e10af4d925d4cef15be9aa48781d439c29f171 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Fri, 12 Jun 2015 12:04:53 +0200
Subject: [PATCH 07/17] Port to Kryo 3.0
---
.../org/gradle/internal/serialize/kryo/KryoBackedEncoder.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java b/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java
index c63e4340069..9f93df4ab8a 100644
--- a/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java
+++ b/subprojects/messaging/src/main/java/org/gradle/internal/serialize/kryo/KryoBackedEncoder.java
@@ -78,7 +78,7 @@ public class KryoBackedEncoder extends AbstractEncoder implements FlushableEncod
* Returns the total number of bytes written by this encoder, some of which may still be buffered.
*/
public int getWritePosition() {
- return output.total();
+ return (int)output.total();
}
public void flush() {
--
2.17.2
++++++ 0008-Port-to-Ivy-2.4.0.patch ++++++
>From 9273768537f428d78e178b328d61c85746ea800e Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Mon, 13 Apr 2015 12:27:00 +0200
Subject: [PATCH 08/17] Port to Ivy 2.4.0
---
.../ivyresolve/parser/IvyXmlModuleDescriptorParser.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java
index 9a86d9cb183..c29f1952eb7 100644
--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java
+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/ivyservice/ivyresolve/parser/IvyXmlModuleDescriptorParser.java
@@ -1207,7 +1207,7 @@ public class IvyXmlModuleDescriptorParser extends AbstractModuleDescriptorParser
buffer = null;
state = State.INFO;
} else if (state == State.EXTRA_INFO) {
- getMd().getExtraInfo().put(new NamespaceId(uri, localName), buffer == null ? "" : buffer.toString());
+ ((Map)getMd().getExtraInfo()).put(new NamespaceId(uri, localName), buffer == null ? "" : buffer.toString());
buffer = null;
state = State.INFO;
} else if (state == State.DESCRIPTION) {
--
2.17.2
++++++ 0009-Port-to-Polyglot-0.1.8.patch ++++++
>From e0fd3d1d53e2a477ae55534bbc9180a40537bf65 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Tue, 21 Apr 2015 15:12:44 +0200
Subject: [PATCH 09/17] Port to Polyglot 0.1.8
---
.../maven/internal/pom/CustomModelBuilder.java | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java
index e311d4993b6..91d5fa22d95 100644
--- a/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java
+++ b/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal/pom/CustomModelBuilder.java
@@ -20,11 +20,15 @@ import org.apache.maven.model.Model;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.gradle.api.publication.maven.internal.ModelFactory;
import org.slf4j.LoggerFactory;
+import org.sonatype.maven.polyglot.PolyglotModelManager;
import org.sonatype.maven.polyglot.execute.ExecuteManager;
import org.sonatype.maven.polyglot.execute.ExecuteManagerImpl;
+import org.sonatype.maven.polyglot.groovy.GroovyMapping;
import org.sonatype.maven.polyglot.groovy.builder.ModelBuilder;
+import org.sonatype.maven.polyglot.mapping.XmlMapping;
import java.lang.reflect.Field;
+import java.util.Arrays;
import java.util.Map;
/**
@@ -33,17 +37,16 @@ import java.util.Map;
public class CustomModelBuilder extends ModelBuilder {
public CustomModelBuilder(Model model) {
+ PolyglotModelManager modelManager = new PolyglotModelManager();
+ setProp(modelManager.getClass(), modelManager, "log",
+ new PlexusLoggerAdapter(LoggerFactory.getLogger(PolyglotModelManager.class)));
+ setProp(modelManager.getClass(), modelManager, "mappings",
+ Arrays.asList(new XmlMapping(), new GroovyMapping()));
ExecuteManager executeManager = new ExecuteManagerImpl();
setProp(executeManager.getClass(), executeManager, "log",
new PlexusLoggerAdapter(LoggerFactory.getLogger(ExecuteManagerImpl.class)));
+ setProp(executeManager.getClass(), executeManager, "manager", modelManager);
setProp(ModelBuilder.class, this, "executeManager", executeManager);
- setProp(ModelBuilder.class, this, "log",
- new PlexusLoggerAdapter(LoggerFactory.getLogger(ModelBuilder.class)));
- try {
- initialize();
- } catch (InitializationException e) {
- throw new RuntimeException(e);
- }
Map factories = (Map) getProp(FactoryBuilderSupport.class, this, "factories");
factories.remove("project");
ModelFactory modelFactory = new ModelFactory(model);
--
2.17.2
++++++ 0010-Port-from-Simple-4-to-Jetty-9.patch ++++++
>From 9b5c1c859a60229beb20aa9bd4480f82786ff717 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk(a)redhat.com>
Date: Fri, 30 Jan 2015 13:16:40 +0100
Subject: [PATCH 10/17] Port from Simple 4 to Jetty 9
---
gradle/dependencies.gradle | 6 +-
subprojects/javascript/javascript.gradle | 2 +-
.../simple/SimpleHttpFileServerFactory.java | 38 ++++-----
.../internal/SimpleFileServerContainer.java | 82 -------------------
4 files changed, 23 insertions(+), 105 deletions(-)
delete mode 100644 subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 54dc27d7fbe..96ff6f58fee 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -68,12 +68,12 @@ libraries.logback_classic = dependencies.module('ch.qos.logback:logback-classic:
}
// Jetty
-libraries.servlet_api = "org.mortbay.jetty:servlet-api:2.5-20081211@jar"
-libraries.jetty_util = dependencies.module("org.mortbay.jetty:jetty-util:6.1.26") {
+libraries.servlet_api = "javax.servlet:javax.servlet-api"
+libraries.jetty_util = dependencies.module("org.eclipse.jetty:jetty-util") {
dependency libraries.slf4j_api
dependency libraries.servlet_api
}
-libraries.jetty = dependencies.module("org.mortbay.jetty:jetty:6.1.26") {
+libraries.jetty = dependencies.module("org.eclipse.jetty:jetty-server") {
dependency libraries.jetty_util
dependency libraries.servlet_api
}
diff --git a/subprojects/javascript/javascript.gradle b/subprojects/javascript/javascript.gradle
index 1e94bd8de68..18970197521 100644
--- a/subprojects/javascript/javascript.gradle
+++ b/subprojects/javascript/javascript.gradle
@@ -19,7 +19,7 @@ dependencies {
compile "org.mozilla:rhino:1.7R3"
compile libraries.gson // used by JsHint
- compile "org.simpleframework:simple:4.1.21" // used by http package in envjs
+ compile libraries.jetty // used by http package in envjs
compile project(':core'), project(":plugins"), project(':workers')
compile libraries.inject
diff --git a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java
index 8a4f692cf4e..6983db21cb4 100644
--- a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java
+++ b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/SimpleHttpFileServerFactory.java
@@ -16,43 +16,43 @@
package org.gradle.plugins.javascript.envjs.http.simple;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
import org.gradle.api.UncheckedIOException;
import org.gradle.internal.concurrent.Stoppable;
import org.gradle.plugins.javascript.envjs.http.HttpFileServer;
import org.gradle.plugins.javascript.envjs.http.HttpFileServerFactory;
-import org.gradle.plugins.javascript.envjs.http.simple.internal.SimpleFileServerContainer;
-import org.simpleframework.http.core.Container;
-import org.simpleframework.http.core.ContainerServer;
-import org.simpleframework.http.resource.FileContext;
-import org.simpleframework.transport.Server;
-import org.simpleframework.transport.connect.Connection;
-import org.simpleframework.transport.connect.SocketConnection;
import java.io.File;
-import java.io.IOException;
-import java.net.InetSocketAddress;
public class SimpleHttpFileServerFactory implements HttpFileServerFactory {
public HttpFileServer start(File contentRoot, int port) {
- Container container = new SimpleFileServerContainer(new FileContext(contentRoot));
-
try {
- final Server server = new ContainerServer(container);
- Connection connection = new SocketConnection(server);
- InetSocketAddress address = new InetSocketAddress(port);
- InetSocketAddress usedAddress = (InetSocketAddress)connection.connect(address);
+ final Server server = new Server(8080);
+
+ ResourceHandler handler = new ResourceHandler();
+ handler.setResourceBase(contentRoot.getPath());
+
+ HandlerList handlers = new HandlerList();
+ handlers.setHandlers(new Handler[] { handler, new DefaultHandler() });
+ server.setHandler(handlers);
+
+ server.start();
- return new SimpleHttpFileServer(contentRoot, usedAddress.getPort(), new Stoppable() {
+ return new SimpleHttpFileServer(contentRoot, port, new Stoppable() {
public void stop() {
try {
- server.stop();
- } catch (IOException e) {
+ server.join();
+ } catch (InterruptedException e) {
throw new UncheckedIOException(e);
}
}
});
- } catch (IOException e) {
+ } catch (Exception e) {
throw new UncheckedIOException(e);
}
}
diff --git a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java b/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java
deleted file mode 100644
index 5d67baeeae1..00000000000
--- a/subprojects/javascript/src/main/java/org/gradle/plugins/javascript/envjs/http/simple/internal/SimpleFileServerContainer.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2012 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.gradle.plugins.javascript.envjs.http.simple.internal;
-
-import org.apache.commons.io.IOUtils;
-import org.gradle.api.UncheckedIOException;
-import org.simpleframework.http.Request;
-import org.simpleframework.http.Response;
-import org.simpleframework.http.core.Container;
-import org.simpleframework.http.resource.Context;
-import org.simpleframework.http.resource.Index;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.nio.charset.Charset;
-
-public class SimpleFileServerContainer implements Container {
-
- private final Context context;
-
- public SimpleFileServerContainer(Context context) {
- this.context = context;
- }
-
- public void handle(Request req, Response resp) {
- Index requestIndex = context.getIndex(req.getTarget());
- File targetFile = requestIndex.getFile();
-
- if (!targetFile.exists()) {
- resp.setCode(404);
- resp.setText("Not Found");
- try {
- resp.getPrintStream().println(String.format("File '%s' does not exist", targetFile.getAbsolutePath()));
- resp.commit();
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
- }
-
- String contentType = requestIndex.getContentType();
- resp.set("Content-Type", contentType);
-
- OutputStream output = null;
- try {
- output = resp.getOutputStream();
-
- if (contentType.startsWith("text/")) {
- resp.set("Content-Encoding", Charset.defaultCharset().name());
- Reader input = new FileReader(requestIndex.getFile());
- IOUtils.copy(input, output);
- IOUtils.closeQuietly(input);
- } else {
- InputStream input = new FileInputStream(requestIndex.getFile());
- IOUtils.copy(input, output);
- IOUtils.closeQuietly(input);
- }
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- } finally {
- IOUtils.closeQuietly(output);
- }
- }
-}
--
2.17.2
++++++ 0011-Disable-benchmarks.patch ++++++
>From 36ea3935a6ffef95a530b88fd30ddd579d0da39d Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Fri, 29 Sep 2017 14:10:15 +0300
Subject: [PATCH 11/17] Disable benchmarks
---
gradle/groovyProject.gradle | 4 ----
subprojects/base-services/base-services.gradle | 6 ------
subprojects/build-cache/build-cache.gradle | 6 ------
subprojects/native/native.gradle | 8 --------
4 files changed, 24 deletions(-)
diff --git a/gradle/groovyProject.gradle b/gradle/groovyProject.gradle
index d4479292523..df61e7f1e88 100644
--- a/gradle/groovyProject.gradle
+++ b/gradle/groovyProject.gradle
@@ -124,10 +124,6 @@ if (file("src/performanceTest").exists()) {
apply from: "$rootDir/gradle/performanceTest.gradle"
}
-if (file("src/jmh").exists()) {
- apply from: "$rootDir/gradle/jmh.gradle"
-}
-
apply from: "$rootDir/gradle/distributionTesting.gradle"
apply from: "$rootDir/gradle/intTestImage.gradle"
diff --git a/subprojects/base-services/base-services.gradle b/subprojects/base-services/base-services.gradle
index 3f9cb27e2e6..491c0fa46eb 100644
--- a/subprojects/base-services/base-services.gradle
+++ b/subprojects/base-services/base-services.gradle
@@ -16,12 +16,6 @@ dependencies {
implementation libraries.commons_lang
implementation libraries.commons_io
implementation libraries.jcip
-
- jmh libraries.bouncycastle_provider
-}
-
-jmh {
- include = ["HashingAlgorithmsBenchmark"]
}
task buildReceiptResource(type: Copy) {
diff --git a/subprojects/build-cache/build-cache.gradle b/subprojects/build-cache/build-cache.gradle
index 005923c563b..01d32928320 100644
--- a/subprojects/build-cache/build-cache.gradle
+++ b/subprojects/build-cache/build-cache.gradle
@@ -26,12 +26,6 @@ dependencies {
implementation project(":logging")
implementation libraries.commons_io
-
- jmh libraries.ant
- jmh libraries.commons_compress
- jmh "io.airlift:aircompressor:0.8"
- jmh "org.iq80.snappy:snappy:0.4"
- jmh "org.kamranzafar:jtar:2.3"
}
useTestFixtures()
diff --git a/subprojects/native/native.gradle b/subprojects/native/native.gradle
index dfd4db20408..0b59611dfcd 100755
--- a/subprojects/native/native.gradle
+++ b/subprojects/native/native.gradle
@@ -19,14 +19,6 @@ useTestFixtures()
useTestFixtures(project: ":logging")
useClassycle()
-jmh {
- fork = 1
- threads = 2
- warmupIterations = 10
- synchronizeIterations = false
- resultFormat = 'CSV'
-}
-
task copyJmhReport(type: Copy) {
destinationDir = file("$buildDir/reports/jmh-html")
--
2.17.2
++++++ 0012-Disable-patching-of-external-modules.patch ++++++
>From cfdfdb199a7a72b8ca83d76ddc7241b34c1e9d05 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Mon, 2 Oct 2017 17:31:44 +0300
Subject: [PATCH 12/17] Disable patching of external modules
---
build.gradle | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/build.gradle b/build.gradle
index 92233aef8c9..dc302c5fccf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -252,18 +252,11 @@ configurations {
}
}
-def patchedExternalModulesDir = new File(buildDir, "external/files")
-def patchedExternalModules = files({ -> fileTree(patchedExternalModulesDir).files.sort() })
-patchedExternalModules.builtBy 'patchExternalModules'
-
dependencies {
- externalModules "org.gradle:gradle-kotlin-dsl:${versions.gradle_kotlin_dsl}"
- externalModules "org.gradle:gradle-kotlin-dsl-tooling-builders:${versions.gradle_kotlin_dsl}"
coreRuntime project(':launcher')
coreRuntime project(':runtimeApiInfo')
runtime project(':wrapper')
runtime project(":installationBeacon")
- runtime patchedExternalModules
gradlePlugins pluginProjects
gradlePlugins implementationPluginProjects
gradlePlugins project(':workers')
@@ -273,18 +266,10 @@ dependencies {
coreRuntimeExtensions project(':dependencyManagement') //See: DynamicModulesClassPathProvider.GRADLE_EXTENSION_MODULES
coreRuntimeExtensions project(':pluginUse')
coreRuntimeExtensions project(':workers')
- coreRuntimeExtensions patchedExternalModules
}
import org.gradle.modules.PatchExternalModules
-task patchExternalModules(type: PatchExternalModules) {
- allModules = configurations.externalModulesRuntime
- coreModules = configurations.coreRuntime
- modulesToPatch = configurations.externalModules
- destination = patchedExternalModulesDir
-}
-
task verifyIsProductionBuildEnvironment {
doLast {
assert javaVersion.java8:
--
2.17.2
++++++ 0013-Add-missing-transitive-dependencies.patch ++++++
>From 930ef37f4fe3be61982d5ead5a8620cb65335108 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Mon, 2 Oct 2017 17:33:05 +0300
Subject: [PATCH 13/17] Add missing transitive dependencies
---
gradle/dependencies.gradle | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 96ff6f58fee..bbf10217798 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -37,7 +37,10 @@ libraries.ant = dependencies.module("org.apache.ant:ant:${versions.ant}") {
libraries.asm = 'org.ow2.asm:asm-debug-all:6.0_ALPHA'
libraries.cglib = 'cglib:cglib:3.2.5'
-libraries.bndlib = dependencies.module('biz.aQute.bnd:biz.aQute.bndlib:3.4.0')
+libraries.bndlib = dependencies.module('biz.aQute.bnd:bndlib:3.4.0') {
+ dependency 'biz.aQute.bnd:aQute.libg:3.4.0@jar'
+ dependency 'biz.aQute.bnd:biz.aQute.bnd.annotation:3.4.0@jar'
+}
libraries.commons_cli = 'commons-cli:commons-cli:1.2@jar'
libraries.commons_io = dependencies.module(versions.commons_io)
libraries.commons_lang = 'commons-lang:commons-lang:2.6@jar'
@@ -102,8 +105,10 @@ libraries += [
equalsVerifier: 'nl.jqno.equalsverifier:equalsverifier:2.1.6',
xbean: 'org.apache.xbean:xbean-reflect:3.4@jar', //required by maven3 classes
nativePlatform: 'net.rubygrapefruit:native-platform:0.14',
- jansi: dependencies.module('org.fusesource.jansi:jansi:1.14'),
- xerces: "xerces:xercesImpl:2.11.0",
+ jansi: dependencies.module('org.fusesource.jansi:jansi:1.14') {
+ dependency "org.fusesource.jansi:jansi-native:1.14"
+ },
+ xerces: "xerces:xercesImpl:2.9.1",
objenesis: 'org.objenesis:objenesis:1.2@jar',
jsoup: 'org.jsoup:jsoup:1.6.3',
xmlApis: 'xml-apis:xml-apis:1.4.01',
@@ -219,7 +224,11 @@ libraries.awsS3 = [
] + libraries.commons_httpclient + libraries.joda
// keep in sync with ScalaLanguagePlugin code
-libraries.zinc = 'com.typesafe.zinc:zinc:0.3.15'
+libraries.zinc = dependencies.module('com.typesafe.zinc:zinc:0.3.15') {
+ dependency "org.scala-sbt:compile"
+ dependency "org.scala-sbt:compiler-integration"
+ dependency "org.scala-sbt:incremental-compiler"
+}
libraries.gcs = [
dependencies.create('com.google.apis:google-api-services-storage:v1-rev78-1.22.0') {
--
2.17.2
++++++ 0014-Disable-ideNative-module.patch ++++++
>From d4c851fb400e9c1f7077c32bd80c943f80eed828 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Mon, 2 Oct 2017 17:34:01 +0300
Subject: [PATCH 14/17] Disable ideNative module
---
build.gradle | 2 +-
settings.gradle | 1 -
subprojects/language-native/language-native.gradle | 2 --
subprojects/platform-native/platform-native.gradle | 2 --
subprojects/testing-native/testing-native.gradle | 3 +--
5 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/build.gradle b/build.gradle
index dc302c5fccf..0eb2008a845 100644
--- a/build.gradle
+++ b/build.gradle
@@ -151,7 +151,7 @@ ext {
'ide', 'announce', 'scala', 'signing', 'ear', 'javascript', 'buildComparison',
'diagnostics', 'reporting', 'publish', 'ivy', 'jacoco', 'buildInit', 'platformBase',
'platformJvm', 'languageJvm', 'languageJava', 'languageGroovy', 'languageScala',
- 'platformNative', 'platformPlay', 'idePlay', 'languageNative', 'ideNative', 'testingBase',
+ 'platformNative', 'platformPlay', 'idePlay', 'languageNative', 'testingBase',
'testingNative', 'testingJvm', 'pluginDevelopment', 'pluginUse', 'resourcesHttp',
'resourcesSftp', 'resourcesS3', 'resourcesGcs', 'compositeBuilds', 'buildCacheHttp'
].collect { project(it) }
diff --git a/settings.gradle b/settings.gradle
index ab5013aa5fc..3178a38aba9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -36,7 +36,6 @@ include 'resourcesSftp'
include 'plugins'
include 'scala'
include 'ide'
-include 'ideNative'
include 'idePlay'
include 'osgi'
include 'maven'
diff --git a/subprojects/language-native/language-native.gradle b/subprojects/language-native/language-native.gradle
index 00282e6f0f2..f23610aa754 100644
--- a/subprojects/language-native/language-native.gradle
+++ b/subprojects/language-native/language-native.gradle
@@ -18,8 +18,6 @@ dependencies {
compile project(':core')
compile project(':platformNative')
compile project(':maven')
-
- integTestRuntime project(":ideNative")
}
useTestFixtures()
diff --git a/subprojects/platform-native/platform-native.gradle b/subprojects/platform-native/platform-native.gradle
index 63231a88d6c..236deeeda87 100644
--- a/subprojects/platform-native/platform-native.gradle
+++ b/subprojects/platform-native/platform-native.gradle
@@ -22,8 +22,6 @@ dependencies {
compile project(':diagnostics')
integTestRuntime project(':maven')
- // Required to test visual studio project file generation for generated sources
- integTestRuntime project(':ideNative')
testFixturesCompile project(':internalIntegTesting')
}
diff --git a/subprojects/testing-native/testing-native.gradle b/subprojects/testing-native/testing-native.gradle
index c388099a3d3..4e7164fb71c 100644
--- a/subprojects/testing-native/testing-native.gradle
+++ b/subprojects/testing-native/testing-native.gradle
@@ -19,8 +19,7 @@ dependencies {
compile project(':platformNative')
compile project(':languageNative')
compile project(':testingBase')
-
- integTestRuntime project(':ideNative')
+ compile project(':testingJvm')
}
useTestFixtures()
--
2.17.2
++++++ 0015-Disable-docs-build.patch ++++++
>From 794ada1e70d92ac918bef5c0de69ad988e295918 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Mon, 2 Oct 2017 23:09:09 +0300
Subject: [PATCH 15/17] Disable docs build
---
subprojects/docs/docs.gradle | 372 +----------------------------------
1 file changed, 6 insertions(+), 366 deletions(-)
diff --git a/subprojects/docs/docs.gradle b/subprojects/docs/docs.gradle
index e960da3eb1a..f59938642c3 100755
--- a/subprojects/docs/docs.gradle
+++ b/subprojects/docs/docs.gradle
@@ -14,12 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import org.apache.tools.ant.filters.ReplaceTokens
-import org.gradle.build.docs.AssembleSamplesDocTask
-import org.gradle.build.docs.CacheableAsciidoctorTask
-import org.gradle.build.docs.Docbook2Xhtml
-import org.gradle.build.docs.ExtractSamplesTask
-import org.gradle.build.docs.ExtractSnippetsTask
+import javax.xml.transform.TransformerFactory
+import javax.xml.transform.stream.StreamResult
+import javax.xml.transform.stream.StreamSource
+
import org.gradle.build.docs.UserGuideSectionVerifier
import org.gradle.build.docs.UserGuideTransformTask
import org.gradle.build.docs.Xhtml2Pdf
@@ -38,7 +36,6 @@ apply plugin: 'base'
apply plugin: 'pegdown'
apply plugin: 'jsoup'
apply plugin: 'javascript-base'
-apply plugin: 'org.asciidoctor.convert'
repositories {
xmvn()
@@ -65,28 +62,6 @@ configurations {
}
dependencies {
- asciidoctor 'org.asciidoctor:asciidoctorj:1.5.6'
-
- userGuideTask 'xalan:xalan:2.7.1', libraries.xerces
- userGuideTask module('xhtmlrenderer:xhtmlrenderer:R8rc1') {
- dependency 'itext:itext:2.0.8@jar'
- }
- userGuideTask 'xslthl:xslthl:2.0.1@jar'
-
- userGuideStyleSheets 'docbook:docbook-xsl:1.75.2@zip'
- jquery "jquery:jquery.min:1.8.0@js"
- jqueryTipTip "com.drewwilson.code:jquery.tipTip:1.3:minified@js"
-
- fonts \
- "lato:regular:6:v0SdcGFAl2aezM9Vq_aFTQ@ttf",
- "lato:regular-italic:6:LqowQDslGv4DmUBAfWa2Vw@ttf",
- "lato:bold:6:DvlFBScY1r-FMtZSYIYoYw@ttf",
- "lato:bold-italic:6:HkF_qI1x_noxlxhrhMQYEKCWcynf_cDxXwCLxiixG1c@ttf",
- "ubuntumono:regular:3:ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E@ttf",
- "ubuntumono:regular-italic:3:KAKuHXAHZOeECOWAHsRKA-LrC4Du4e_yfTJ8Ol60xk0@ttf",
- "ubuntumono:bold:3:ceqTZGKHipo8pJj4molytp_TkvowlIOtbR7ePgFOpF4@ttf",
- "ubuntumono:bold-italic:3:n_d8tv_JOIiYyMXR4eaV9WsGzsqhEorxQDpu60nfWEc@ttf"
-
testCompile "org.pegdown:pegdown:1.1.0"
testCompile libraries.jsoup
testCompile "org.gebish:geb-spock:0.9.3"
@@ -112,174 +87,20 @@ ext {
samplesSrcDir = file('src/samples')
}
-ext.outputs = [:]
-outputs.samples = files(samplesDir) {
- builtBy 'samples'
-}
-outputs.distDocs = files(distDocsDir) {
- builtBy 'distDocs'
-}
-outputs.docs = files(docsDir) {
- builtBy 'javadocAll', 'userguide', 'dslHtml', 'releaseNotes'
-}
-
-tasks.withType(CacheableAsciidoctorTask) {
- backends = ['docbook']
- separateOutputDirs = false
- options doctype: 'book'
- inputs.file asciidocSanitizeStylesheet withPropertyName "sanitizerStylesheet" withPathSensitivity PathSensitivity.NONE
-
- extensions {
- inlinemacro (name: "api") {
- parent, target, attributes ->
- def (className, method) = target.split('#', 2) as List
- def content = "<apilink class=\"$className\""
- if (method) {
- // Add space after comma, because we can't have spaces in api: targets
- // Restore Asciidoc's '…&zwsp;' replacement to the original '...'
- content += " method=\"${method.replaceAll(/,\s*/, ', ').replaceAll(/\…\​/, '...')}\""
- }
- content += " />"
- return content
- }
- }
-
- attributes website: 'http://www.gradle.org'
-
- doLast {
- outputDir.eachFileMatch(~/.*.xml/) { File file ->
- def contents = file.getText("utf-8")
- try {
- def transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(asciidocSanitizeStylesheet))
- transformer.transform(new StreamSource(new StringReader(contents)), new StreamResult(file))
- } catch (Exception ex) {
- throw new RuntimeException("Couldn't process $file:\n" + contents, ex)
- }
- }
- }
-}
-
-tasks.withType(Docbook2Xhtml) {
- dependsOn userguideStyleSheets
- classpath = configurations.userGuideTask
- stylesheetsDir = userguideStyleSheets.destinationDir
-}
-
-tasks.withType(UserGuideTransformTask) {
- dependsOn samples, dslDocbook
- snippetsDir = samples.snippetsDir
- linksFile = dslDocbook.linksFile
- websiteUrl = 'http://www.gradle.org'
+ext.outputs = []
- if (name in ["pdfUserguideDocbook"]) {
- // These will only be valid for releases, but that's ok
- javadocUrl = "http://www.gradle.org/docs/${->version}/javadoc"
- dsldocUrl = "http://www.gradle.org/docs/${->version}/dsl"
- } else {
- javadocUrl = '../javadoc'
- dsldocUrl = '../dsl'
- }
-}
-
-tasks.withType(AssembleDslDocTask) {
- classDocbookDir = dslSrcDir
-}
-
-task configureCss {
- doLast {
- def images = fileTree(dir: "src/docs/css/images", include: "*.*").files.collectEntries {
- [it.name, it.bytes.encodeBase64().toString()]
- }
-
- def fonts = configurations.fonts.resolvedConfiguration.resolvedArtifacts.collectEntries {
- def id = it.moduleVersion.id
- ["${id.group}-${id.name}".toString(), it.file.bytes.encodeBase64().toString()]
- }
-
- ext.tokens = images + fonts
- css.inputs.property 'tokens', tokens
- css.filter ReplaceTokens, tokens: tokens
- }
-}
-
-task css(type: Sync, dependsOn: configureCss) {
+task css(type: Sync) {
into "$buildDir/css"
from "src/docs/css"
include "*.css"
include "*.svg"
}
-ext.cssFiles = fileTree(css.destinationDir) {
- builtBy css
-}
-
-task samples(type: ExtractSnippetsTask) {
- samples = samplesSrcDir
- destDir = samplesDir
- excludes = ['userguideOutput/**',
- '**/readme.xml',
- '**/build/**',
- '**/.gradle/**']
- nonFiltered = [ 'userguide/tutorial/antLoadfileResources/**',
- 'native-binaries/cunit/libs/**',
- 'native-binaries/google-test/libs/**' ]
- snippetsDir = new File(buildDir, 'snippets')
-}
-
-task userguideStyleSheets(type: Copy) {
- File stylesheetsDir = new File(srcDocsDir, 'stylesheets')
- into new File(buildDir, 'stylesheets')
- from(stylesheetsDir) {
- include '*.xsl'
- }
- from(cssFiles)
- from({ zipTree(configurations.userGuideStyleSheets.singleFile) }) {
- // Remove the prefix
- eachFile { fcd -> fcd.path = fcd.path.replaceFirst('^docbook-xsl-[0-9\\.]+/', '') }
- }
-}
-
-tasks.remove(asciidoctor)
-
-task userguideAsciidoc(type: CacheableAsciidoctorTask) {
- sourceDir = userguideSrcDir
- sources { include '*.adoc' }
- outputDir = asciidocOutputDir
- inputs.file { defaultImports.importsDestFile } withPropertyName 'defaultImports' withPathSensitivity PathSensitivity.NONE
-
- // we pull the default-imports from here:
- resources {
- from(generatedResourcesDir)
- include "**/*.txt"
- }
-}
-
-task samplesDocbook(type: AssembleSamplesDocTask) {
- source samplesSrcDir
- include '**/readme.xml'
- destFile = new File(docbookSrc, 'samplesList.xml')
-}
-
-task samplesDocs(type: Docbook2Xhtml) {
- source samplesDocbook
- destFile = new File(samples.destDir, 'readme.html')
- stylesheetName = 'standaloneHtml.xsl'
-}
-
task dslMetaData(type: ExtractDslMetaDataTask) {
source { javadocAll.source }
destFile = new File(docbookSrc, 'dsl-meta-data.bin')
}
-task dslDocbook(type: AssembleDslDocTask, dependsOn: [dslMetaData]) {
- sources = fileTree(dir: dslSrcDir, includes: ['*.xml'])
- sourceFile = new File(dslSrcDir, 'dsl.xml')
- classMetaDataFile = dslMetaData.destFile
- pluginsMetaDataFile = new File(dslSrcDir, 'plugins.xml')
- destFile = new File(docbookSrc, 'dsl.xml')
- linksFile = new File(docbookSrc, 'api-links.bin')
-}
-
task defaultImports(type: GenerateDefaultImportsTask, dependsOn: dslMetaData) {
metaDataFile = dslMetaData.destFile
importsDestFile = new File(generatedResourcesDir, "default-imports.txt")
@@ -300,107 +121,6 @@ task defaultImports(type: GenerateDefaultImportsTask, dependsOn: dslMetaData) {
excludePackage 'org.gradle.platform.base.test'
}
-task dslStandaloneDocbook(type: UserGuideTransformTask, dependsOn: [dslDocbook]) {
- sourceFile = dslDocbook.destFile
- destFile = new File(docbookSrc, 'dsl-standalone.xml')
- dsldocUrl = '.'
-}
-
-task dslHtml(type: Docbook2Xhtml) {
- group = "Documentation"
- source dslStandaloneDocbook
- destDir = new File(docsDir, 'dsl')
- stylesheetName = 'dslHtml.xsl'
- resources = cssFiles + fileTree(dslSrcDir) {
- include '*.js'
- }
- ext.entryPoint = "$destDir/index.html"
-}
-
-task checkSectionIds(type: UserGuideSectionVerifier) {
- dependsOn userguideAsciidoc
- docbookFiles = files(
- fileTree(userguideSrcDir) { include "**/*.xml" },
- userguideAsciidoc.outputs.files
- )
-}
-
-[configureCss, samples, samplesDocbook]*.mustRunAfter(checkSectionIds)
-
-task extractSamples(type: ExtractSamplesTask) {
- // We need default imports since it is included by userguide.xml
- // We need samplesList.xml (generated by samplesDocbook) since it is included by userguide.xml
- // Both files are not an input since they do not affect the generated samples.xml
- dependsOn defaultImports, samplesDocbook, userguideAsciidoc
- sourceFile = new File(userguideSrcDir, 'userguide.xml')
- destFile = new File(docbookSrc, 'samples.xml')
-}
-
-// This is used in the distribution and for the online version
-task userguideDocbook(type: UserGuideTransformTask) {
- destFile = new File(docbookSrc, 'userguide.xml')
- dependsOn checkSectionIds
-}
-
-// This is used for the PDF, where we need absolute links to the javadoc etc.
-task pdfUserguideDocbook(type: UserGuideTransformTask) {
- destFile = new File(docbookSrc, 'remoteUserguide.xml')
-}
-
-configure([userguideDocbook, pdfUserguideDocbook]) {
- // The master userguide.xml pulls these files in via xi:include, making them input
- includes = files(
- samplesDocbook,
- defaultImports.importsDestFile,
- fileTree(dir: userguideSrcDir, includes: ['*.xml']),
- userguideAsciidoc.outputs.files
- )
-
- dependsOn samples, samplesDocbook, defaultImports
-
- sourceFile new File(userguideSrcDir, 'userguide.xml')
-}
-
-def imageFiles = fileTree(userguideSrcDir) {
- include 'img/*.png'
- include 'img/*.gif'
- include 'img/*.jpg'
-}
-def resourceFiles = imageFiles + cssFiles
-
-task userguideHtml(type: Docbook2Xhtml) {
- group = "Documentation"
- source userguideDocbook
- destDir = userguideDir
- stylesheetName = 'userGuideHtml.xsl'
- resources = resourceFiles
- ext.entryPoint = "$destDir/userguide.html"
-}
-
-task userguideSingleHtml(type: Docbook2Xhtml) {
- group = "Documentation"
- source userguideDocbook
- destFile = new File(userguideDir, 'userguide_single.html')
- stylesheetName = 'userGuideSingleHtml.xsl'
- resources = resourceFiles
- ext.entryPoint = destFile
-}
-
-task pdfUserguideXhtml(type: Docbook2Xhtml) {
- source pdfUserguideDocbook
- destFile = new File(buildDir, 'tmp/userguidePdf/userguidePdf.html')
- stylesheetName = 'userGuidePdf.xsl'
- resources = resourceFiles
- ext.entryPoint = destFile
-}
-
-task userguidePdf(type: Xhtml2Pdf, dependsOn: pdfUserguideXhtml) {
- sourceFile = pdfUserguideXhtml.destFile
- destFile = new File(userguideDir, 'userguide.pdf')
- classpath = configurations.userGuideTask
- resources = resourceFiles
-}
-
def javaApiUrl = "https://docs.oracle.com/javase/7/docs/api"
def groovyApiUrl = "http://docs.groovy-lang.org/docs/groovy-${versions.groovy}/html/gapi"
def mavenApiUrl = "http://maven.apache.org/ref/${versions.maven}/maven-model/apidocs"
@@ -431,84 +151,4 @@ task javadocAll(type: Javadoc) {
ext.entryPoint = "$destinationDir/index.html"
}
-task checkstyleApi(type: Checkstyle) {
- source javadocAll.source
- configFile = new File(checkstyle.configDir, "checkstyle-api.xml")
- classpath = files()
- reports.xml.destination = file("$checkstyle.reportsDir/checkstyle-api.xml")
-}
-
-task distDocs(type: Docbook2Xhtml) {
- dependsOn userguideAsciidoc
- source new File(asciidocOutputDir, 'gettingStarted.xml')
- destFile = new File(distDocsDir, 'getting-started.html')
- stylesheetName = 'standaloneHtml.xsl'
-}
-
-task userguide {
- dependsOn userguideHtml, userguideSingleHtml, userguidePdf
- description = 'Generates the userguide'
- group = 'documentation'
-}
-
-task editReleaseNotes() {
- group = "release notes"
- doLast {
- Class.forName("java.awt.Desktop").newInstance().edit(file("src/docs/release/notes.md"))
- }
-}
-
-task releaseNotesMarkdown(type: PegDown) {
- group = "release notes"
- markdownFile = file("src/docs/release/notes.md")
- destination = new File(buildDir, "release-notes-raw/release-notes.html")
-}
-
-task releaseNotes(type: Copy) {
- group = "release notes"
- ext.fileName = "release-notes.html"
- into "$docsDir"
- from releaseNotesMarkdown
- jsoup.plugins "src/transforms/release-notes.gradle"
- filter(ReplaceTokens, tokens: [version: project.version.toString(), baseVersion: rootProject.baseVersion])
- ext.entryPoint = file("$docsDir/$fileName")
-}
-
-tasks.addRule("view«Doc Task Name» - Opens entry point") { String taskName ->
- if (taskName.startsWith("view")) {
- def realTaskName = (taskName - "view")
- realTaskName = realTaskName[0].toLowerCase() + realTaskName[1..-1]
- def task = tasks.findByName(realTaskName)
- if (task && task.hasProperty("entryPoint")) {
- tasks.create(taskName) {
- dependsOn task
- doLast {
- Class.forName("java.awt.Desktop").newInstance().browse(file(task.entryPoint).toURI())
- }
- }
- }
- }
-}
-
sourceSets.main.output.dir generatedResourcesDir, builtBy: defaultImports
-
-['test', 'java9Test'].each {
- tasks[it].configure {
- dependsOn releaseNotes
- inputs.files releaseNotesMarkdown.markdownFile withPropertyName "releaseNotesSource" withPathSensitivity PathSensitivity.NONE
- inputs.dir releaseNotes.destinationDir withPropertyName "releaseNotesRendered" withPathSensitivity PathSensitivity.NONE
- inputs.property "systemProperties", [:]
- systemProperty "org.gradle.docs.releasenotes.source", releaseNotesMarkdown.markdownFile
- systemProperty "org.gradle.docs.releasenotes.rendered", new File(releaseNotes.destinationDir, releaseNotes.fileName)
- }
-}
-
-task docs {
- dependsOn javadocAll, userguide, distDocs, samplesDocs, dslHtml, releaseNotes
- description = 'Generates all documentation'
- group = 'documentation'
-}
-
-task docsZip(type: Zip) {
- from project.outputs.docs
-}
--
2.17.2
++++++ 0016-Port-to-guava-20.0.patch ++++++
>From 24a404aaa3955528385398f15a32440f68670e89 Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Sun, 12 Nov 2017 19:08:40 +0200
Subject: [PATCH 16/17] Port to guava 20.0
---
gradle/dependencies.gradle | 2 +-
.../org/gradle/api/internal/CompositeDomainObjectSet.java | 5 +++--
.../gradle/api/internal/DefaultDomainObjectCollection.java | 3 ++-
.../rules/PreviousSuccessTaskStateChanges.java | 3 ++-
.../changedetection/state/DefaultFileCollectionSnapshot.java | 3 ++-
.../OrderInsensitiveTaskFilePropertyCompareStrategy.java | 3 +--
.../state/TaskFilePropertyCompareStrategy.java | 2 +-
.../api/internal/tasks/CompositeTaskOutputPropertySpec.java | 4 ++--
.../org/gradle/api/internal/tasks/DefaultTaskOutputs.java | 3 ++-
.../plugin/management/internal/DefaultPluginRequests.java | 3 ++-
10 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index bbf10217798..a6148dfa088 100755
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -94,7 +94,7 @@ libraries.commons_httpclient = dependencies.module('org.apache.httpcomponents:ht
libraries += [
jatl: 'com.googlecode.jatl:jatl:0.2.2',
dom4j: 'dom4j:dom4j:1.6.1@jar',
- guava: 'com.google.guava:guava-jdk5:17.0@jar',
+ guava: 'com.google.guava:guava:20.0@jar',
kryo: 'com.esotericsoftware.kryo:kryo:2.20',
jsr305: 'com.google.code.findbugs:jsr305:1.3.9@jar',
groovy: "org.codehaus.groovy:groovy-all:${versions.groovy}",
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java b/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java
index ee7c1244b51..4619c7d5cd1 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/CompositeDomainObjectSet.java
@@ -24,6 +24,7 @@ import org.gradle.api.specs.Spec;
import org.gradle.internal.Actions;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -109,7 +110,7 @@ public class CompositeDomainObjectSet<T> extends DelegatingDomainObjectSet<T> im
public Iterator<T> iterator() {
DomainObjectCompositeCollection store = getStore();
if (store.isEmpty()) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
return SetIterator.of(store);
@@ -190,7 +191,7 @@ public class CompositeDomainObjectSet<T> extends DelegatingDomainObjectSet<T> im
@SuppressWarnings("unchecked")
public Iterator<T> iterator() {
if (store.isEmpty()) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
if (store.size() == 1) {
return (Iterator<T>) store.get(0).iterator();
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java b/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java
index 90d89d50866..5bd7f0abd9f 100755
--- a/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/DefaultDomainObjectCollection.java
@@ -32,6 +32,7 @@ import org.gradle.util.ConfigureUtil;
import java.util.AbstractCollection;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
public class DefaultDomainObjectCollection<T> extends AbstractCollection<T> implements DomainObjectCollection<T>, WithEstimatedSize {
@@ -107,7 +108,7 @@ public class DefaultDomainObjectCollection<T> extends AbstractCollection<T> impl
public Iterator<T> iterator() {
if (constantTimeIsEmpty()) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
return new IteratorImpl(getStore().iterator());
}
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java
index c432c33664d..82e3a878a18 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/rules/PreviousSuccessTaskStateChanges.java
@@ -21,6 +21,7 @@ import org.gradle.api.internal.TaskInternal;
import org.gradle.api.internal.changedetection.state.TaskExecution;
import javax.annotation.Nullable;
+import java.util.Collections;
import java.util.Iterator;
public class PreviousSuccessTaskStateChanges implements TaskStateChanges {
@@ -38,7 +39,7 @@ public class PreviousSuccessTaskStateChanges implements TaskStateChanges {
@Override
public Iterator<TaskStateChange> iterator() {
if (previousExecution == null || previousExecution.isSuccessful()) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
} else {
return Iterators.singletonIterator(PREVIOUS_FAILURE);
}
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java
index e8705de8f06..a0f0af32ca3 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/DefaultFileCollectionSnapshot.java
@@ -36,6 +36,7 @@ import org.gradle.internal.serialize.HashCodeSerializer;
import javax.annotation.Nullable;
import java.io.File;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -91,7 +92,7 @@ public class DefaultFileCollectionSnapshot implements FileCollectionSnapshot {
@Override
public Iterator<TaskStateChange> iterateContentChangesSince(FileCollectionSnapshot oldSnapshot, String fileType, boolean includeAdded) {
if (includeAdded && hashCode != null && getHash().equals(oldSnapshot.getHash())) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
return compareStrategy.iterateContentChangesSince(snapshots, oldSnapshot.getSnapshots(), fileType, pathIsAbsolute, includeAdded);
}
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java
index c885de8df78..3fdf6e3cf34 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/OrderInsensitiveTaskFilePropertyCompareStrategy.java
@@ -17,7 +17,6 @@
package org.gradle.api.internal.changedetection.state;
import com.google.common.collect.AbstractIterator;
-import com.google.common.collect.Iterators;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.MultimapBuilder;
@@ -143,7 +142,7 @@ class OrderInsensitiveTaskFilePropertyCompareStrategy implements TaskFilePropert
// Create a single iterator to use for all of the still unaccounted files
if (unaccountedForPreviousSnapshotsIterator == null) {
if (unaccountedForPreviousSnapshots.isEmpty()) {
- unaccountedForPreviousSnapshotsIterator = Iterators.emptyIterator();
+ unaccountedForPreviousSnapshotsIterator = Collections.emptyIterator();
} else {
List<Entry<NormalizedFileSnapshot, IncrementalFileSnapshotWithAbsolutePath>> entries = Lists.newArrayList(unaccountedForPreviousSnapshots.entries());
Collections.sort(entries, ENTRY_COMPARATOR);
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java
index fc58acae02a..3f3fda9cf3e 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/changedetection/state/TaskFilePropertyCompareStrategy.java
@@ -27,7 +27,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
-import static com.google.common.collect.Iterators.emptyIterator;
+import static java.util.Collections.emptyIterator;
import static com.google.common.collect.Iterators.singletonIterator;
public enum TaskFilePropertyCompareStrategy {
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java
index 36b6a56916e..bc6a47cf7ae 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/CompositeTaskOutputPropertySpec.java
@@ -17,7 +17,6 @@
package org.gradle.api.internal.tasks;
import com.google.common.collect.AbstractIterator;
-import com.google.common.collect.Iterators;
import com.google.common.collect.Lists;
import org.gradle.api.NonNullApi;
import org.gradle.api.internal.file.FileCollectionInternal;
@@ -28,6 +27,7 @@ import org.gradle.api.internal.file.collections.DirectoryFileTree;
import org.gradle.util.DeferredUtil;
import java.io.File;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -56,7 +56,7 @@ public class CompositeTaskOutputPropertySpec extends AbstractTaskOutputPropertyS
public Iterator<TaskOutputFilePropertySpec> resolveToOutputProperties() {
Object unpackedPaths = DeferredUtil.unpack(paths);
if (unpackedPaths == null) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
} else if (unpackedPaths instanceof Map) {
final Iterator<? extends Map.Entry<?, ?>> iterator = ((Map<?, ?>) unpackedPaths).entrySet().iterator();
return new AbstractIterator<TaskOutputFilePropertySpec>() {
diff --git a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java
index 8920be58787..fb9cfa9a363 100644
--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/DefaultTaskOutputs.java
@@ -41,6 +41,7 @@ import org.gradle.api.tasks.TaskOutputFilePropertyBuilder;
import javax.annotation.Nullable;
import java.io.File;
+import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -203,7 +204,7 @@ public class DefaultTaskOutputs implements TaskOutputsInternal {
if (propertySpec instanceof CacheableTaskOutputFilePropertySpec) {
File outputFile = ((CacheableTaskOutputFilePropertySpec) propertySpec).getOutputFile();
if (outputFile == null) {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
}
return Iterators.singletonIterator((TaskOutputFilePropertySpec) propertySpec);
diff --git a/subprojects/core/src/main/java/org/gradle/plugin/management/internal/DefaultPluginRequests.java b/subprojects/core/src/main/java/org/gradle/plugin/management/internal/DefaultPluginRequests.java
index 6e7cf364a0a..c43282a1e72 100644
--- a/subprojects/core/src/main/java/org/gradle/plugin/management/internal/DefaultPluginRequests.java
+++ b/subprojects/core/src/main/java/org/gradle/plugin/management/internal/DefaultPluginRequests.java
@@ -18,6 +18,7 @@ package org.gradle.plugin.management.internal;
import com.google.common.collect.Iterators;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -60,7 +61,7 @@ public class DefaultPluginRequests implements PluginRequests {
@Override
public Iterator<PluginRequestInternal> iterator() {
- return Iterators.emptyIterator();
+ return Collections.emptyIterator();
}
}
}
--
2.17.2
++++++ 0017-Set-core-api-source-level-to-8.patch ++++++
>From 3f55c106c3ba0c138c1eaa7bb2054e4aa549302e Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek(a)redhat.com>
Date: Mon, 26 Mar 2018 14:07:20 +0200
Subject: [PATCH 17/17] Set core-api source level to 8
---
subprojects/core-api/core-api.gradle | 2 +-
subprojects/core/core.gradle | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/subprojects/core-api/core-api.gradle b/subprojects/core-api/core-api.gradle
index c90a0b48eec..587729f5da2 100644
--- a/subprojects/core-api/core-api.gradle
+++ b/subprojects/core-api/core-api.gradle
@@ -15,7 +15,7 @@
*/
apply plugin: 'java-library'
-sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5
+sourceCompatibility = 8
dependencies {
api project(":baseServices")
diff --git a/subprojects/core/core.gradle b/subprojects/core/core.gradle
index 9ca47b639c5..691ec477805 100755
--- a/subprojects/core/core.gradle
+++ b/subprojects/core/core.gradle
@@ -16,7 +16,7 @@
apply plugin: 'java-library'
apply from: "$rootDir/gradle/taskProperties.gradle"
-sourceCompatibility = javaVersion.java9Compatible ? 1.6 : 1.5
+sourceCompatibility = 8
configurations {
reports
--
2.17.2
++++++ _constraints ++++++
<constraints>
<hardware>
<physicalmemory>
<size unit="M">4096</size>
</physicalmemory>
<disk>
<size unit="G">3</size>
</disk>
</hardware>
</constraints>
++++++ cast-estimated-runtime-to-long.patch ++++++
--- a/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy
+++ b/buildSrc/src/main/groovy/org/gradle/testing/DistributedPerformanceTest.groovy
@@ -130,7 +130,7 @@
def scenarios = scenarioList.readLines()
.collect { line ->
def parts = Splitter.on(';').split(line).toList()
- new Scenario(id : parts[0], estimatedRuntime: new BigDecimal(parts[1]), templates: parts.subList(2, parts.size()))
+ new Scenario(id : parts[0], estimatedRuntime: new BigDecimal(parts[1]) as long, templates: parts.subList(2, parts.size()))
}
.sort{ -it.estimatedRuntime }
++++++ gradle-4.4.1-asm7.patch ++++++
--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/ApiMemberSelector.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/ApiMemberSelector.java
@@ -48,7 +48,7 @@
private boolean thisClassIsPrivateInnerClass;
public ApiMemberSelector(String className, ClassVisitor apiMemberAdapter, boolean apiIncludesPackagePrivateMembers) {
- super(ASM6);
+ super(ASM7);
this.className = className;
this.apiMemberAdapter = apiMemberAdapter;
this.apiIncludesPackagePrivateMembers = apiIncludesPackagePrivateMembers;
@@ -166,7 +166,7 @@
if (isCandidateApiMember(access, apiIncludesPackagePrivateMembers) || ("<init>".equals(name) && isInnerClass)) {
final MethodMember methodMember = new MethodMember(access, name, desc, signature, exceptions);
methods.add(methodMember);
- return new MethodVisitor(ASM6) {
+ return new MethodVisitor(ASM7) {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
AnnotationMember ann = new AnnotationMember(desc, visible);
@@ -191,7 +191,7 @@
Object keepValue = (access & ACC_STATIC) == ACC_STATIC && ((access & ACC_FINAL) == ACC_FINAL) ? value : null;
final FieldMember fieldMember = new FieldMember(access, name, signature, desc, keepValue);
fields.add(fieldMember);
- return new FieldVisitor(ASM6) {
+ return new FieldVisitor(ASM7) {
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
AnnotationMember ann = new AnnotationMember(desc, visible);
--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/MethodStubbingApiMemberAdapter.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/MethodStubbingApiMemberAdapter.java
@@ -37,7 +37,7 @@
private String internalClassName;
public MethodStubbingApiMemberAdapter(ClassWriter cv) {
- super(ASM6, cv);
+ super(ASM7, cv);
}
@Override
--- a/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/SortingAnnotationVisitor.java
+++ b/subprojects/core/src/main/java/org/gradle/api/internal/tasks/compile/SortingAnnotationVisitor.java
@@ -21,7 +21,7 @@
import java.util.List;
-import static org.objectweb.asm.Opcodes.ASM6;
+import static org.objectweb.asm.Opcodes.ASM7;
public class SortingAnnotationVisitor extends AnnotationVisitor {
@@ -33,7 +33,7 @@
private String arrayValueName;
public SortingAnnotationVisitor(AnnotationMember parentAnnotation, AnnotationVisitor av) {
- super(ASM6, av);
+ super(ASM7, av);
this.annotation = parentAnnotation;
}
--- a/subprojects/core/src/main/java/org/gradle/groovy/scripts/internal/FileCacheBackedScriptClassCompiler.java
+++ b/subprojects/core/src/main/java/org/gradle/groovy/scripts/internal/FileCacheBackedScriptClassCompiler.java
@@ -215,7 +215,7 @@
private final String contentHash;
public BuildScriptRemapper(ClassVisitor cv, ScriptSource source, String originalClassName, String contentHash) {
- super(ASM6, cv);
+ super(ASM7, cv);
this.scriptSource = source;
this.originalClassName = originalClassName;
this.contentHash = contentHash;
@@ -338,7 +338,7 @@
class MethodRenamer extends MethodVisitor {
public MethodRenamer(final MethodVisitor mv) {
- super(ASM6, mv);
+ super(ASM7, mv);
}
public void visitTypeInsn(int i, String name) {
--- a/subprojects/core/src/main/java/org/gradle/initialization/MixInLegacyTypesClassLoader.java
+++ b/subprojects/core/src/main/java/org/gradle/initialization/MixInLegacyTypesClassLoader.java
@@ -122,7 +122,7 @@
private Set<String> booleanIsGetters = new HashSet<String>();
TransformingAdapter(ClassVisitor cv) {
- super(Opcodes.ASM6, cv);
+ super(Opcodes.ASM7, cv);
}
@Override
--- a/subprojects/core/src/main/java/org/gradle/process/internal/worker/child/WorkerProcessClassPathProvider.java
+++ b/subprojects/core/src/main/java/org/gradle/process/internal/worker/child/WorkerProcessClassPathProvider.java
@@ -44,8 +44,8 @@
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Type;
+import org.objectweb.asm.commons.ClassRemapper;
import org.objectweb.asm.commons.Remapper;
-import org.objectweb.asm.commons.RemappingClassAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -167,7 +167,7 @@
inputStream.close();
}
ClassWriter classWriter = new ClassWriter(0);
- ClassVisitor remappingVisitor = new RemappingClassAdapter(classWriter, remapper);
+ ClassVisitor remappingVisitor = new ClassRemapper(classWriter, remapper);
classReader.accept(remappingVisitor, ClassReader.EXPAND_FRAMES);
byte[] remappedClass = classWriter.toByteArray();
String remappedClassName = remapper.map(internalName).concat(".class");
--- a/subprojects/dependency-management/src/main/java/org/gradle/api/internal/runtimeshaded/RuntimeShadedJarCreator.java
+++ b/subprojects/dependency-management/src/main/java/org/gradle/api/internal/runtimeshaded/RuntimeShadedJarCreator.java
@@ -412,7 +412,7 @@
@Override
public MethodVisitor visitMethod(int access, final String name, final String desc, String signature, String[] exceptions) {
- return new MethodVisitor(Opcodes.ASM6, super.visitMethod(access, name, desc, signature, exceptions)) {
+ return new MethodVisitor(Opcodes.ASM7, super.visitMethod(access, name, desc, signature, exceptions)) {
@Override
public void visitLdcInsn(Object cst) {
if (cst instanceof String) {
--- a/subprojects/internal-testing/src/main/groovy/org/gradle/test/fixtures/file/ClassFile.groovy
+++ b/subprojects/internal-testing/src/main/groovy/org/gradle/test/fixtures/file/ClassFile.groovy
@@ -34,7 +34,7 @@
}
ClassFile(InputStream inputStream) {
- def methodVisitor = new MethodVisitor(Opcodes.ASM6) {
+ def methodVisitor = new MethodVisitor(Opcodes.ASM7) {
@Override
void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) {
hasLocalVars = true
@@ -45,7 +45,7 @@
hasLineNumbers = true
}
}
- def visitor = new ClassVisitor(Opcodes.ASM6) {
+ def visitor = new ClassVisitor(Opcodes.ASM7) {
@Override
void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
classFileVersion = version
--- a/subprojects/language-groovy/src/main/java/org/gradle/api/internal/tasks/compile/GroovyCompileTransformingClassLoader.java
+++ b/subprojects/language-groovy/src/main/java/org/gradle/api/internal/tasks/compile/GroovyCompileTransformingClassLoader.java
@@ -65,7 +65,7 @@
private boolean found;
private AnnotationDetector() {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
}
@Override
@@ -79,7 +79,7 @@
private static class TransformingAdapter extends ClassVisitor {
public TransformingAdapter(ClassWriter classWriter) {
- super(Opcodes.ASM6, classWriter);
+ super(Opcodes.ASM7, classWriter);
}
@Override
@@ -94,13 +94,13 @@
private final List<String> names = new ArrayList<String>();
public AnnotationTransformingVisitor(AnnotationVisitor annotationVisitor) {
- super(Opcodes.ASM6, annotationVisitor);
+ super(Opcodes.ASM7, annotationVisitor);
}
@Override
public AnnotationVisitor visitArray(String name) {
if (name.equals("classes")) {
- return new AnnotationVisitor(Opcodes.ASM6){
+ return new AnnotationVisitor(Opcodes.ASM7){
@Override
public void visit(String name, Object value) {
Type type = (Type) value;
@@ -108,7 +108,7 @@
}
};
} else if (name.equals("value")) {
- return new AnnotationVisitor(Opcodes.ASM6) {
+ return new AnnotationVisitor(Opcodes.ASM7) {
@Override
public void visit(String name, Object value) {
String type = (String) value;
--- a/subprojects/language-java/src/main/java/org/gradle/api/internal/tasks/compile/incremental/asm/ClassDependenciesVisitor.java
+++ b/subprojects/language-java/src/main/java/org/gradle/api/internal/tasks/compile/incremental/asm/ClassDependenciesVisitor.java
@@ -35,7 +35,7 @@
public class ClassDependenciesVisitor extends ClassVisitor {
- private final static int API = Opcodes.ASM6;
+ private final static int API = Opcodes.ASM7;
private static final MethodVisitor EMPTY_VISITOR = new MethodVisitor(API, null) {
};
--- a/subprojects/launcher/src/main/java/org/gradle/tooling/internal/provider/serialization/ClientSidePayloadClassLoaderFactory.java
+++ b/subprojects/launcher/src/main/java/org/gradle/tooling/internal/provider/serialization/ClientSidePayloadClassLoaderFactory.java
@@ -97,14 +97,14 @@
private boolean found;
private AnnotationDetector() {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
}
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
if (desc.equals(ANNOTATION_DESCRIPTOR)) {
found = true;
}
- return new AnnotationVisitor(Opcodes.ASM6) {
+ return new AnnotationVisitor(Opcodes.ASM7) {
@Override
public void visit(String name, Object value) {
@@ -120,7 +120,7 @@
private final String mixInInterface;
public TransformingAdapter(ClassWriter classWriter, String mixInInterface) {
- super(Opcodes.ASM6, classWriter);
+ super(Opcodes.ASM7, classWriter);
this.mixInInterface = mixInInterface;
}
--- a/subprojects/platform-jvm/src/test/groovy/org/gradle/jvm/tasks/api/internal/ApiClassExtractorTest.groovy
+++ b/subprojects/platform-jvm/src/test/groovy/org/gradle/jvm/tasks/api/internal/ApiClassExtractorTest.groovy
@@ -286,7 +286,7 @@
when:
def cr = new ClassReader(api.extractApiClassFrom(api.classes.A))
def stubVersion = 0
- cr.accept(new ClassVisitor(Opcodes.ASM6) {
+ cr.accept(new ClassVisitor(Opcodes.ASM7) {
@Override
void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
stubVersion = version
@@ -455,7 +455,7 @@
when:
def apiClassBytes = api.extractApiClassFrom(api.classes['com.acme.A'])
def cr = new ClassReader(apiClassBytes)
- cr.accept(new ClassVisitor(Opcodes.ASM6) {
+ cr.accept(new ClassVisitor(Opcodes.ASM7) {
@Override
void visitSource(String source, String debug) {
super.visitSource(source, debug)
@@ -469,7 +469,7 @@
@Override
MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- new MethodVisitor(Opcodes.ASM6) {
+ new MethodVisitor(Opcodes.ASM7) {
@Override
void visitLineNumber(int line, Label start) {
throw new AssertionError("Should not produce any line number information but " +
--- a/subprojects/plugin-development/src/main/java/org/gradle/plugin/devel/tasks/ValidateTaskProperties.java
+++ b/subprojects/plugin-development/src/main/java/org/gradle/plugin/devel/tasks/ValidateTaskProperties.java
@@ -353,7 +353,7 @@
private final Collection<String> classNames;
public TaskNameCollectorVisitor(Collection<String> classNames) {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
this.classNames = classNames;
}
--- a/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/detection/TestClassVisitor.java
+++ b/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/detection/TestClassVisitor.java
@@ -27,7 +27,7 @@
protected final TestFrameworkDetector detector;
protected TestClassVisitor(TestFrameworkDetector detector) {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
if (detector == null) {
throw new IllegalArgumentException("detector == null!");
}
--- a/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/junit/JUnitTestMethodDetecter.java
+++ b/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/junit/JUnitTestMethodDetecter.java
@@ -24,7 +24,7 @@
private final JUnitTestClassDetecter testClassDetecter;
JUnitTestMethodDetecter(JUnitTestClassDetecter testClassDetecter) {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
this.testClassDetecter = testClassDetecter;
}
--- a/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/testng/TestNGTestMethodDetecter.java
+++ b/subprojects/testing-jvm/src/main/java/org/gradle/api/internal/tasks/testing/testng/TestNGTestMethodDetecter.java
@@ -27,7 +27,7 @@
private final Set<String> testMethodAnnotations = new HashSet<String>();
public TestNGTestMethodDetecter(TestNGTestClassDetecter testClassDetecter) {
- super(Opcodes.ASM6);
+ super(Opcodes.ASM7);
this.testClassDetecter = testClassDetecter;
testMethodAnnotations.add("Lorg/testng/annotations/Test;");
testMethodAnnotations.add("Lorg/testng/annotations/BeforeSuite;");
++++++ gradle-CVE-2019-16370.patch ++++++
>From f50bb2513f8880f75db2c2b3f1badbae856f6f85 Mon Sep 17 00:00:00 2001
From: Vladimir Sitnikov <sitnikov.vladimir(a)gmail.com>
Date: Tue, 10 Sep 2019 14:37:35 +0300
Subject: [PATCH] signing plugin: use SHA512 instead of SHA1 when signing
artifacts
PGP signs a digest, so MITM is still possible provided an attacker can update
the artifact in such a way that its SHA1 is intact.
Relevant article is https://medium.com/@jonathan.leitschuh/many-of-these-gpg-signatures-are-sig…
Signed-off-by: Vladimir Sitnikov <sitnikov.vladimir(a)gmail.com>
---
.../org/gradle/plugins/signing/signatory/pgp/PgpSignatory.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/subprojects/signing/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpSignatory.java b/subprojects/signing/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpSignatory.java
index 5e022b5b5d07..3e212fe4a93d 100644
--- a/subprojects/signing/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpSignatory.java
+++ b/subprojects/signing/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpSignatory.java
@@ -104,7 +104,7 @@ private void writeSignatureTo(OutputStream signatureDestination, PGPSignature pg
public PGPSignatureGenerator createSignatureGenerator() {
try {
- PGPSignatureGenerator generator = new PGPSignatureGenerator(new BcPGPContentSignerBuilder(secretKey.getPublicKey().getAlgorithm(), PGPUtil.SHA1));
+ PGPSignatureGenerator generator = new PGPSignatureGenerator(new BcPGPContentSignerBuilder(secretKey.getPublicKey().getAlgorithm(), PGPUtil.SHA512));
generator.init(PGPSignature.BINARY_DOCUMENT, privateKey);
return generator;
} catch (PGPException e) {
++++++ gradle-font-metadata.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
<artifacts>
<artifact>
<groupId>lato</groupId>
<artifactId>bold</artifactId>
<extension>ttf</extension>
<classifier>DvlFBScY1r-FMtZSYIYoYw</classifier>
<version>6</version>
<path>/usr/share/fonts/truetype/Lato-Bold.ttf</path>
</artifact>
<artifact>
<groupId>lato</groupId>
<artifactId>bold-italic</artifactId>
<extension>ttf</extension>
<classifier>HkF_qI1x_noxlxhrhMQYEKCWcynf_cDxXwCLxiixG1c</classifier>
<version>6</version>
<path>/usr/share/fonts/truetype/Lato-BoldItalic.ttf</path>
</artifact>
<artifact>
<groupId>lato</groupId>
<artifactId>regular</artifactId>
<extension>ttf</extension>
<classifier>v0SdcGFAl2aezM9Vq_aFTQ</classifier>
<version>6</version>
<path>/usr/share/fonts/truetype/Lato-Regular.ttf</path>
</artifact>
<artifact>
<groupId>lato</groupId>
<artifactId>regular-italic</artifactId>
<extension>ttf</extension>
<classifier>LqowQDslGv4DmUBAfWa2Vw</classifier>
<version>6</version>
<path>/usr/share/fonts/truetype/Lato-Italic.ttf</path>
</artifact>
<artifact>
<groupId>ubuntumono</groupId>
<artifactId>bold</artifactId>
<extension>ttf</extension>
<classifier>ceqTZGKHipo8pJj4molytp_TkvowlIOtbR7ePgFOpF4</classifier>
<version>3</version>
<path>/usr/share/fonts/truetype/LiberationMono-Bold.ttf</path>
</artifact>
<artifact>
<groupId>ubuntumono</groupId>
<artifactId>bold-italic</artifactId>
<extension>ttf</extension>
<classifier>n_d8tv_JOIiYyMXR4eaV9WsGzsqhEorxQDpu60nfWEc</classifier>
<version>3</version>
<path>/usr/share/fonts/truetype/LiberationMono-BoldItalic.ttf</path>
</artifact>
<artifact>
<groupId>ubuntumono</groupId>
<artifactId>regular</artifactId>
<extension>ttf</extension>
<classifier>ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E</classifier>
<version>3</version>
<path>/usr/share/fonts/truetype/LiberationMono-Regular.ttf</path>
</artifact>
<artifact>
<groupId>ubuntumono</groupId>
<artifactId>regular-italic</artifactId>
<extension>ttf</extension>
<classifier>KAKuHXAHZOeECOWAHsRKA-LrC4Du4e_yfTJ8Ol60xk0</classifier>
<version>3</version>
<path>/usr/share/fonts/truetype/LiberationMono-Italic.ttf</path>
</artifact>
</artifacts>
</metadata>
++++++ gradle-jquery-metadata.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://fedorahosted.org/xmvn/METADATA/2.0.0">
<artifacts>
<artifact>
<groupId>jquery</groupId>
<artifactId>jquery.min</artifactId>
<extension>js</extension>
<version>2.1.1</version>
<!-- Current build bundles jquery. For now point it to /dev/null to avoid bundling. -->
<!-- <path>/usr/share/javascript/jquery/2/jquery.min.js</path> -->
<path>/dev/null</path>
</artifact>
</artifacts>
</metadata>
++++++ gradle-launcher.sh.in ++++++
#!@BASH@
set -e
ulimit -n $(ulimit -H -n)
# Source system prefs
if [ -f /etc/java/gradle.conf ] ; then
. /etc/java/gradle.conf
fi
# Source user prefs
if [ -f $HOME/.gradlerc ] ; then
. $HOME/.gradlerc
fi
. /usr/share/java-utils/java-functions
set_jvm
set_javacmd
set_classpath gradle/gradle-launcher gradle/gradle-core-api gradle/gradle-core gradle/gradle-base-services
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=gradle"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.launcher.GradleMain "$@"
++++++ gradle-man.txt ++++++
gradle(1)
=========
:doctype: manpage
:man source: GRADLE
:man manual: Gradle
NAME
----
gradle - build automation tool
SYNOPSIS
--------
*gradle* [option...] [task...]
DESCRIPTION
-----------
Gradle is build automation evolved. Gradle can automate the building,
testing, publishing, deployment and more of software packages or other
types of projects such as generated static websites, generated
documentation or indeed anything else.
Gradle combines the power and flexibility of Ant with the dependency
management and conventions of Maven into a more effective way to
build. Powered by a Groovy DSL and packed with innovation, Gradle
provides a declarative way to describe all kinds of builds through
sensible defaults. Gradle is quickly becoming the build system of
choice for many open source projects, leading edge enterprises and
legacy automation challenges.
OPTIONS
-------
*-?, -h, --help*::
Shows help message.
*-a, --no-rebuild*::
Do not rebuild project dependencies.
*-b, --build-file*::
Specifies the build file.
*-c, --settings-file*::
Specifies the settings file.
*--configure-on-demand*::
Only relevant projects are configured in this build run. This means faster build for large multi-project builds. [incubating]
*--console*::
Specifies which type of console output to generate. Values are *plain*, *auto* (default) or *rich*.
*--continue*::
Continues task execution after a task failure.
*-D, --system-prop*::
Set system property of the JVM (e.g. *-Dmyprop=myvalue*).
*-d, --debug*::
Log in debug mode (includes normal stacktrace).
*--daemon*::
Uses the Gradle daemon to run the build. Starts the daemon if not running.
*--foreground*::
Starts the Gradle daemon in the foreground. [incubating]
*-g, --gradle-user-home*::
Specifies the gradle user home directory.
*--gui*::
Launches the Gradle GUI.
*-I, --init-script*::
Specifies an initialization script.
*-i, --info*::
Set log level to info.
*-m, --dry-run*::
Runs the builds with all task actions disabled.
*--max-workers*::
Configure the number of concurrent workers Gradle is allowed to use. [incubating]
*--no-color*::
Do not use color in the console output. [deprecated - use
*--console=plain* instead]
*--no-daemon*::
Do not use the Gradle daemon to run the build.
*--offline*::
The build should operate without accessing network resources.
*-P, --project-prop*::
Set project property for the build script (e.g. *-Pmyprop=myvalue*).
*-p, --project-dir*::
Specifies the start directory for Gradle. Defaults to current directory.
*--parallel*::
Build projects in parallel. Gradle will attempt to determine the optimal number of executor threads to use. [incubating]
*--parallel-threads*::
Build projects in parallel, using the specified number of executor
threads. [deprecated - Please use *--parallel*, optionally in
conjunction with *--max-workers*.] [incubating]
*--profile*::
Profiles build execution time and generates a report in the
*<build_dir>/reports/profile* directory.
*--project-cache-dir*::
Specifies the project-specific cache directory. Defaults to
*.gradle* in the root project directory.
*-q, --quiet*::
Log errors only.
*--recompile-scripts*::
Force build script recompiling.
*--refresh-dependencies*::
Refresh the state of dependencies.
*--rerun-tasks*::
Ignore previously cached task results.
*-S, --full-stacktrace*::
Print out the full (very verbose) stacktrace for all exceptions.
*-s, --stacktrace*::
Print out the stacktrace for all exceptions.
*--stop*::
Stops the Gradle daemon if it is running.
*-t, --continuous*::
Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change. [incubating]
*-u, --no-search-upward*::
Don't search in parent folders for a *settings.gradle* file.
*-v, --version*::
Print version info.
*-x, --exclude-task*::
Specify a task to be excluded from execution.
SEE ALSO
--------
Official documentation: http://gradle.org/documentation/
++++++ gradle.desktop ++++++
[Desktop Entry]
Name=Gradle
GenericName=Build automation tool
Exec=gradle --gui
Icon=gradle
Terminal=false
Type=Application
Categories=Development;Building;
++++++ java11-compatibility.patch ++++++
--- a/subprojects/base-services/src/main/java/org/gradle/internal/classloader/ClassLoaderUtils.java
+++ b/subprojects/base-services/src/main/java/org/gradle/internal/classloader/ClassLoaderUtils.java
@@ -15,51 +15,41 @@
*/
package org.gradle.internal.classloader;
+import org.gradle.api.JavaVersion;
import org.gradle.internal.Cast;
import org.gradle.internal.UncheckedException;
import org.gradle.internal.concurrent.CompositeStoppable;
import org.gradle.internal.reflect.JavaMethod;
-import org.gradle.internal.reflect.JavaReflectionUtil;
-import sun.misc.Unsafe;
import javax.annotation.Nullable;
import java.io.IOException;
-import java.lang.reflect.Field;
-import java.net.MalformedURLException;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
import java.net.URL;
import java.net.URLConnection;
-public abstract class ClassLoaderUtils {
-
- private static final Unsafe UNSAFE;
-
- static {
- try {
- Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe");
- theUnsafe.setAccessible(true);
- UNSAFE = (Unsafe) theUnsafe.get(null);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- }
- }
+import static org.gradle.internal.reflect.JavaReflectionUtil.method;
+import static org.gradle.internal.reflect.JavaReflectionUtil.staticMethod;
+public abstract class ClassLoaderUtils {
+ private static final ClassDefiner CLASS_DEFINER;
private static final JavaMethod<ClassLoader, Package[]> GET_PACKAGES_METHOD;
private static final JavaMethod<ClassLoader, Package> GET_PACKAGE_METHOD;
static {
+ CLASS_DEFINER = JavaVersion.current().isJava9Compatible() ? new LookupClassDefiner() : new ReflectionClassDefiner();
GET_PACKAGES_METHOD = getMethodWithFallback(Package[].class, new Class[0], "getDefinedPackages", "getPackages");
- GET_PACKAGE_METHOD = getMethodWithFallback(Package.class, new Class[] {String.class}, "getDefinedPackage", "getPackage");
+ GET_PACKAGE_METHOD = getMethodWithFallback(Package.class, new Class[]{String.class}, "getDefinedPackage", "getPackage");
}
private static <T> JavaMethod<ClassLoader, T> getMethodWithFallback(Class<T> clazz, Class<?>[] params, String firstChoice, String fallback) {
JavaMethod<ClassLoader, T> method;
try {
- method = JavaReflectionUtil.method(ClassLoader.class, clazz, firstChoice, params);
+ method = method(ClassLoader.class, clazz, firstChoice, params);
} catch (Throwable e) {
// We must not be on Java 9 where the getDefinedPackages() method exists. Fall back to getPackages()
- method = JavaReflectionUtil.method(ClassLoader.class, clazz, fallback, params);
+ method = method(ClassLoader.class, clazz, fallback, params);
}
return method;
}
@@ -85,8 +75,6 @@ public static void disableUrlConnectionCaching() {
URL url = new URL("jar:file://valid_jar_url_syntax.jar!/");
URLConnection urlConnection = url.openConnection();
urlConnection.setDefaultUseCaches(false);
- } catch (MalformedURLException e) {
- throw UncheckedException.throwAsUncheckedException(e);
} catch (IOException e) {
throw UncheckedException.throwAsUncheckedException(e);
}
@@ -101,6 +89,63 @@ public static void disableUrlConnectionCaching() {
}
public static <T> Class<T> define(ClassLoader targetClassLoader, String className, byte[] clazzBytes) {
- return Cast.uncheckedCast(UNSAFE.defineClass(className, clazzBytes, 0, clazzBytes.length, targetClassLoader, null));
+ return CLASS_DEFINER.defineClass(targetClassLoader, className, clazzBytes);
+ }
+
+ private interface ClassDefiner {
+ <T> Class<T> defineClass(ClassLoader classLoader, String className, byte[] classBytes);
+ }
+
+ private static class ReflectionClassDefiner implements ClassDefiner {
+ private final JavaMethod<ClassLoader, Class> defineClassMethod;
+
+ private ReflectionClassDefiner() {
+ defineClassMethod = method(ClassLoader.class, Class.class, "defineClass", String.class, byte[].class, int.class, int.class);
+ }
+
+ @Override
+ public <T> Class<T> defineClass(ClassLoader classLoader, String className, byte[] classBytes) {
+ return Cast.uncheckedCast(defineClassMethod.invoke(classLoader, className, classBytes, 0, classBytes.length));
+ }
+ }
+
+ private static class LookupClassDefiner implements ClassDefiner {
+ private final Class methodHandlesLookupClass;
+ private final JavaMethod methodHandlesLookup;
+ private final JavaMethod methodHandlesPrivateLookupIn;
+ private final JavaMethod lookupFindVirtual;
+ private final MethodType defineClassMethodType;
+
+ private LookupClassDefiner() {
+ try {
+ methodHandlesLookupClass = Class.forName("java.lang.invoke.MethodHandles$Lookup");
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ methodHandlesLookup = staticMethod(MethodHandles.class, methodHandlesLookupClass, "lookup");
+ methodHandlesPrivateLookupIn = staticMethod(MethodHandles.class, methodHandlesLookupClass, "privateLookupIn", Class.class, methodHandlesLookupClass);
+ lookupFindVirtual = method(methodHandlesLookupClass, MethodHandle.class, "findVirtual", Class.class, String.class, MethodType.class);
+ defineClassMethodType = MethodType.methodType(Class.class, new Class[]{String.class, byte[].class, int.class, int.class});
+ }
+
+ /*
+ This method is equivalent to the following code but use reflection to compile on Java 7:
+
+ MethodHandles.Lookup baseLookup = MethodHandles.lookup();
+ MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(ClassLoader.class, baseLookup);
+ MethodHandle defineClassMethodHandle = lookup.findVirtual(ClassLoader.class, "defineClass", defineClassMethodType);
+ handle.bindTo(classLoader).invokeWithArguments(className, classBytes, 0, classBytes.length));
+ */
+ @Override
+ public <T> Class<T> defineClass(ClassLoader classLoader, String className, byte[] classBytes) {
+ Object baseLookup = methodHandlesLookup.invoke(null);
+ Object lookup = methodHandlesPrivateLookupIn.invoke(null, ClassLoader.class, baseLookup);
+ MethodHandle defineClassMethodHandle = (MethodHandle) lookupFindVirtual.invoke(lookup, ClassLoader.class, "defineClass", defineClassMethodType);
+ try {
+ return Cast.uncheckedCast(defineClassMethodHandle.bindTo(classLoader).invokeWithArguments(className, classBytes, 0, classBytes.length));
+ } catch (Throwable throwable) {
+ throw new RuntimeException(throwable);
+ }
+ }
}
}
--- a/subprojects/core/src/main/java/org/gradle/process/internal/worker/child/WorkerProcessClassPathProvider.java
+++ b/subprojects/core/src/main/java/org/gradle/process/internal/worker/child/WorkerProcessClassPathProvider.java
@@ -18,6 +18,7 @@
import org.gradle.api.Action;
import org.gradle.api.GradleException;
+import org.gradle.api.JavaVersion;
import org.gradle.api.internal.ClassPathProvider;
import org.gradle.api.specs.Spec;
import org.gradle.cache.CacheRepository;
@@ -57,7 +58,9 @@
import java.io.InputStream;
import java.net.URL;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -116,32 +119,9 @@ public void execute(PersistentCache cache) {
try {
File jarFile = jarFile(cache);
LOGGER.debug("Generating worker process classes to {}.", jarFile);
-
- // TODO - calculate this list of classes dynamically
- List<Class<?>> classes = Arrays.asList(
- GradleWorkerMain.class,
- BootstrapSecurityManager.class,
- EncodedStream.EncodedInput.class,
- ClassLoaderUtils.class,
- FilteringClassLoader.class,
- FilteringClassLoader.Spec.class,
- ClassLoaderHierarchy.class,
- ClassLoaderVisitor.class,
- ClassLoaderSpec.class,
- SystemClassLoaderSpec.class,
- JavaReflectionUtil.class,
- JavaMethod.class,
- GradleException.class,
- NoSuchPropertyException.class,
- NoSuchMethodException.class,
- UncheckedException.class,
- PropertyAccessor.class,
- PropertyMutator.class,
- Factory.class,
- Spec.class);
ZipOutputStream outputStream = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(jarFile)));
try {
- for (Class<?> classToMap : classes) {
+ for (Class<?> classToMap : getClassesForWorkerJar()) {
remapClass(classToMap, outputStream);
}
} finally {
@@ -152,6 +132,37 @@ public void execute(PersistentCache cache) {
}
}
+ private Set<Class<?>> getClassesForWorkerJar() {
+ // TODO - calculate this list of classes dynamically
+ List<Class<?>> classes = Arrays.asList(
+ GradleWorkerMain.class,
+ BootstrapSecurityManager.class,
+ EncodedStream.EncodedInput.class,
+ ClassLoaderUtils.class,
+ FilteringClassLoader.class,
+ ClassLoaderHierarchy.class,
+ ClassLoaderVisitor.class,
+ ClassLoaderSpec.class,
+ SystemClassLoaderSpec.class,
+ JavaReflectionUtil.class,
+ JavaMethod.class,
+ GradleException.class,
+ NoSuchPropertyException.class,
+ NoSuchMethodException.class,
+ UncheckedException.class,
+ PropertyAccessor.class,
+ PropertyMutator.class,
+ Factory.class,
+ Spec.class,
+ JavaVersion.class);
+ Set<Class<?>> result = new HashSet<Class<?>>(classes);
+ for (Class<?> klass : classes) {
+ result.addAll(Arrays.asList(klass.getDeclaredClasses()));
+ }
+
+ return result;
+ }
+
private void remapClass(Class<?> classToMap, ZipOutputStream jar) throws IOException {
String internalName = Type.getInternalName(classToMap);
String resourceName = internalName.concat(".class");
--- a/subprojects/base-services/src/main/java/org/gradle/api/JavaVersion.java
+++ b/subprojects/base-services/src/main/java/org/gradle/api/JavaVersion.java
@@ -17,25 +17,26 @@
import com.google.common.annotations.VisibleForTesting;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.ArrayList;
+import java.util.List;
/**
* An enumeration of Java versions.
+ * Before 9: http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html
+ * 9+: http://openjdk.java.net/jeps/223
*/
public enum JavaVersion {
- VERSION_1_1(false), VERSION_1_2(false), VERSION_1_3(false), VERSION_1_4(false),
- // starting from here versions are 1_ but their official name is "Java 6", "Java 7", ...
- VERSION_1_5(true), VERSION_1_6(true), VERSION_1_7(true), VERSION_1_8(true), VERSION_1_9(true), VERSION_1_10(true);
+ VERSION_1_1, VERSION_1_2, VERSION_1_3, VERSION_1_4,
+ VERSION_1_5, VERSION_1_6, VERSION_1_7, VERSION_1_8,
+ VERSION_1_9, VERSION_1_10, VERSION_11, VERSION_HIGHER;
+ // Since Java 9, version should be X instead of 1.X
+ // However, to keep backward compatibility, we change from 11
+ private static final int FIRST_MAJOR_VERSION_ORDINAL = 10;
private static JavaVersion currentJavaVersion;
- private final boolean hasMajorVersion;
private final String versionName;
- private final String majorVersion;
- JavaVersion(boolean hasMajorVersion) {
- this.hasMajorVersion = hasMajorVersion;
- this.versionName = name().substring("VERSION_".length()).replace('_', '.');
- this.majorVersion = name().substring(10);
+ JavaVersion() {
+ this.versionName = ordinal() >= FIRST_MAJOR_VERSION_ORDINAL ? getMajorVersion() : "1." + getMajorVersion();
}
/**
@@ -54,22 +55,18 @@
}
String name = value.toString();
- Matcher matcher = Pattern.compile("(\\d{1,2})(\\D.+)?").matcher(name);
- if (matcher.matches()) {
- int index = Integer.parseInt(matcher.group(1)) - 1;
- if (index > 0 && index < values().length && values()[index].hasMajorVersion) {
- return values()[index];
- }
- }
- matcher = Pattern.compile("1\\.(\\d{1,2})(\\D.+)?").matcher(name);
- if (matcher.matches()) {
- int versionIdx = Integer.parseInt(matcher.group(1)) - 1;
- if (versionIdx >= 0 && versionIdx < values().length) {
- return values()[versionIdx];
- }
+ int firstNonVersionCharIndex = findFirstNonVersionCharIndex(name);
+
+ String[] versionStrings = name.substring(0, firstNonVersionCharIndex).split("\\.");
+ List<Integer> versions = convertToNumber(name, versionStrings);
+
+ if (isLegacyVersion(versions)) {
+ assertTrue(name, versions.get(1) > 0);
+ return getVersionForMajor(versions.get(1));
+ } else {
+ return getVersionForMajor(versions.get(0));
}
- throw new IllegalArgumentException(String.format("Could not determine java version from '%s'.", name));
}
/**
@@ -90,11 +87,7 @@
}
public static JavaVersion forClassVersion(int classVersion) {
- int index = classVersion - 45; //class file versions: 1.1 == 45, 1.2 == 46...
- if (index >= 0 && index < values().length) {
- return values()[index];
- }
- throw new IllegalArgumentException(String.format("Could not determine java version from '%d'.", classVersion));
+ return getVersionForMajor(classVersion - 44); //class file versions: 1.1 == 45, 1.2 == 46...
}
public static JavaVersion forClass(byte[] classData) {
@@ -116,18 +109,22 @@
return this == VERSION_1_7;
}
- private boolean isJava8() {
+ public boolean isJava8() {
return this == VERSION_1_8;
}
- private boolean isJava9() {
+ public boolean isJava9() {
return this == VERSION_1_9;
}
- private boolean isJava10() {
+ public boolean isJava10() {
return this == VERSION_1_10;
}
+ public boolean isJava11() {
+ return this == VERSION_11;
+ }
+
public boolean isJava5Compatible() {
return this.compareTo(VERSION_1_5) >= 0;
}
@@ -148,21 +145,69 @@
return this.compareTo(VERSION_1_9) >= 0;
}
- @Incubating
public boolean isJava10Compatible() {
return this.compareTo(VERSION_1_10) >= 0;
}
- @Override
- public String toString() {
- return getName();
+ public boolean isJava11Compatible() {
+ return this.compareTo(VERSION_11) >= 0;
}
- private String getName() {
+ @Override
+ public String toString() {
return versionName;
}
public String getMajorVersion() {
- return majorVersion;
+ return String.valueOf(ordinal() + 1);
+ }
+
+ private static JavaVersion getVersionForMajor(int major) {
+ return major >= values().length ? JavaVersion.VERSION_HIGHER : values()[major - 1];
+ }
+
+ private static void assertTrue(String value, boolean condition) {
+ if (!condition) {
+ throw new IllegalArgumentException("Could not determine java version from '" + value + "'.");
+ }
+ }
+
+ private static boolean isLegacyVersion(List<Integer> versions) {
+ return 1 == versions.get(0) && versions.size() > 1;
+ }
+
+ private static List<Integer> convertToNumber(String value, String[] versionStrs) {
+ List<Integer> result = new ArrayList<Integer>();
+ for (String s : versionStrs) {
+ assertTrue(value, !isNumberStartingWithZero(s));
+ try {
+ result.add(Integer.parseInt(s));
+ } catch (NumberFormatException e) {
+ assertTrue(value, false);
+ }
+ }
+ assertTrue(value, !result.isEmpty() && result.get(0) > 0);
+ return result;
+ }
+
+ private static boolean isNumberStartingWithZero(String number) {
+ return number.length() > 1 && number.startsWith("0");
+ }
+
+ private static int findFirstNonVersionCharIndex(String s) {
+ assertTrue(s, s.length() != 0);
+
+ for (int i = 0; i < s.length(); ++i) {
+ if (!isDigitOrPeriod(s.charAt(i))) {
+ assertTrue(s, i != 0);
+ return i;
+ }
+ }
+
+ return s.length();
+ }
+
+ private static boolean isDigitOrPeriod(char c) {
+ return (c >= '0' && c <= '9') || c == '.';
}
}
--- a/subprojects/jvm-services/src/main/java/org/gradle/internal/jvm/inspection/DefaultJvmVersionDetector.java
+++ b/subprojects/jvm-services/src/main/java/org/gradle/internal/jvm/inspection/DefaultJvmVersionDetector.java
@@ -62,7 +62,7 @@ public class DefaultJvmVersionDetector i
try {
String versionStr = reader.readLine();
while (versionStr != null) {
- Matcher matcher = Pattern.compile("(?:java|openjdk) version \"(.+?)\"").matcher(versionStr);
+ Matcher matcher = Pattern.compile("(?:java|openjdk) version \"(.+?)\"( \\d{4}-\\d{2}-\\d{2}( LTS)?)?").matcher(versionStr);
if (matcher.matches()) {
return JavaVersion.toVersion(matcher.group(1));
}
++++++ java8-compatibility.patch ++++++
--- a/subprojects/messaging/src/main/java/org/gradle/internal/remote/internal/inet/SocketConnection.java
+++ b/subprojects/messaging/src/main/java/org/gradle/internal/remote/internal/inet/SocketConnection.java
@@ -32,6 +32,7 @@
import java.io.*;
import java.net.InetSocketAddress;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.channels.ClosedSelectorException;
import java.nio.channels.SelectionKey;
@@ -155,7 +156,7 @@
selector = Selector.open();
socket.register(selector, SelectionKey.OP_READ);
buffer = ByteBuffer.allocateDirect(4096);
- buffer.limit(0);
+ ((Buffer) buffer).limit(0);
}
@Override
@@ -183,19 +184,19 @@
return -1;
}
- buffer.clear();
+ ((Buffer) buffer).clear();
int nread;
try {
nread = socket.read(buffer);
} catch (IOException e) {
if (isEndOfStream(e)) {
- buffer.position(0);
- buffer.limit(0);
+ ((Buffer) buffer).position(0);
+ ((Buffer) buffer).limit(0);
return -1;
}
throw e;
}
- buffer.flip();
+ ((Buffer) buffer).flip();
if (nread < 0) {
return -1;
@@ -256,7 +257,7 @@
}
private void writeBufferToChannel() throws IOException {
- buffer.flip();
+ ((Buffer) buffer).flip();
int count = writeWithNonBlockingRetry();
if (count == 0) {
// buffer was still full after non-blocking retries, now block
--- a/subprojects/base-services/src/main/java/org/gradle/internal/io/StreamByteBuffer.java
+++ b/subprojects/base-services/src/main/java/org/gradle/internal/io/StreamByteBuffer.java
@@ -191,7 +191,7 @@
// copy one by one until the underflow has been resolved
buf = ByteBuffer.allocate(buf.remaining() + 1).put(buf);
buf.put(nextBuf.get());
- buf.flip();
+ ((java.nio.Buffer) buf).flip();
} else {
if (hasRemaining(nextBuf)) {
buf = nextBuf;
@@ -234,7 +234,7 @@
throw UncheckedException.throwAsUncheckedException(e);
}
}
- charbuffer.flip();
+ ((java.nio.Buffer) charbuffer).flip();
return charbuffer;
}
--- a/subprojects/base-services/src/main/java/org/gradle/internal/hash/Hashing.java
+++ b/subprojects/base-services/src/main/java/org/gradle/internal/hash/Hashing.java
@@ -158,7 +158,7 @@ public class Hashing {
private void update(int length) {
checkNotDone();
digest.update(buffer.array(), 0, length);
- buffer.clear();
+ ((java.nio.Buffer) buffer).clear();
}
@Override
++++++ remove-timestamps.patch ++++++
--- a/gradle/versioning.gradle
+++ b/gradle/versioning.gradle
@@ -115,13 +115,12 @@
}
task configureBuildReceipt {
- dependsOn determineCommitId
doLast {
createBuildReceipt.versionNumber = rootProject.version
createBuildReceipt.baseVersion = rootProject.baseVersion
createBuildReceipt.snapshot = rootProject.isSnapshot
- createBuildReceipt.buildTimestamp = rootProject.buildTimestamp
- createBuildReceipt.commitId = determineCommitId.commitId
+ createBuildReceipt.buildTimestamp = '20121221000000+0000'
+ createBuildReceipt.commitId = 'none'
}
}
1
0
Hello community,
here is the log from the commit of package python-WTForms for openSUSE:Leap:15.2 checked in at 2020-05-28 20:11:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-WTForms (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-WTForms.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-WTForms"
Thu May 28 20:11:59 2020 rev:11 rq:808623 version:2.2.1
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-WTForms/python-WTForms.changes 2020-01-15 15:46:27.851358340 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.python-WTForms.new.3606/python-WTForms.changes 2020-05-28 20:12:03.351338272 +0200
@@ -1,0 +2,46 @@
+Mon Jul 29 12:02:19 UTC 2019 - pgajdos(a)suse.com
+
+- version update to 2.2.1
+ * :class:`~fields.StringField` only sets ``data = ''` when form data
+ is empty and an initial value was not provided. This fixes an issue
+ where the default value wasn't rendered with the initial form.
+ (`#291`_, `#355`_, `#401`_)
+ * Merged new and updated translations from the community.
+ * Passing ``data_`` args to render a field converts all the
+ underscores to hyphens when rendering the HTML attribute, not just
+ the first one. ``data_foo_bar`` becomes ``data-foo-bar``. (`#248`_)
+ * The :class:`~validators.UUID` validator uses the :class:`uuid.UUID`
+ class instead of a regex. (`#251`_)
+ * :class:`~fields.SelectField` copies the list of ``choices`` passed
+ to it so modifying an instance's choices will not modify the global
+ form definition. (`#286`_)
+ * Fields call :meth:`~fields.Field.process_formdata` even if the raw
+ data is empty. (`#280`_)
+ * Added a :class:`~fields.MultipleFileField` to handle a multi-file
+ input. :class:`~fields.FileField` continues to handle only one
+ value. The underlying :class:`~widgets.FileInput` widget gained a
+ ``multiple`` argument. (`#281`_)
+ * :class:`~fields.SelectField` choices can contain HTML (MarkupSafe
+ ``Markup`` object or equivalent API) and will be rendered properly.
+ (`#302`_)
+ * :class:`~fields.TimeField` and
+ :class:`html5.TimeField <fields.html5.TimeField>` were added.
+ (`#254`_)
+ * Improved :class:`~validators.Email`. Note that it is still
+ unreasonable to validate all emails with a regex and you should
+ prefer validating by actually sending an email. (`#294`_)
+ * Widgets render the ``required`` attribute when using a validator
+ that provides the ``'required'`` flag, such as
+ :class:`~validators.DataRequired`. (`#361`_)
+ * Fix a compatibility issue with SQLAlchemy 2.1 that caused
+ :class:`~ext.sqlalchemy.fields.QuerySelectField` to fail with
+ ``ValueError: too many values to unpack``. (`#391`_)
+- drop lang packages
+- test package
+
+-------------------------------------------------------------------
+Tue Dec 4 12:56:14 UTC 2018 - Matej Cepl <mcepl(a)suse.com>
+
+- Remove superfluous devel dependency for noarch package
+
+-------------------------------------------------------------------
Old:
----
WTForms-2.1.zip
New:
----
WTForms-2.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-WTForms.spec ++++++
--- /var/tmp/diff_new_pack.cljYoZ/_old 2020-05-28 20:12:03.659339189 +0200
+++ /var/tmp/diff_new_pack.cljYoZ/_new 2020-05-28 20:12:03.663339201 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-WTForms
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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
@@ -12,36 +12,35 @@
# 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-%{**}}
-%bcond_with test
Name: python-WTForms
-Version: 2.1
+Version: 2.2.1
Release: 0
Summary: A flexible forms validation and rendering library for Python web development
License: BSD-3-Clause
Group: Development/Languages/Python
-Url: http://wtforms.simplecodes.com/
-Source: https://files.pythonhosted.org/packages/source/W/WTForms/WTForms-%{version}…
-BuildRequires: %{python_module devel}
+URL: http://wtforms.simplecodes.com/
+Source: https://files.pythonhosted.org/packages/source/W/WTForms/WTForms-%{version}…
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-BuildRequires: unzip
-%if %{with test}
-BuildRequires: python3-Babel
-BuildRequires: python3-Django
-BuildRequires: python3-SQLAlchemy
-BuildRequires: python3-python-dateutil
-%endif
Recommends: python-Babel
Recommends: python-Django
Recommends: python-SQLAlchemy
Recommends: python-python-dateutil
BuildArch: noarch
+# SECTION test requirements
+BuildRequires: %{python_module Babel}
+BuildRequires: %{python_module SQLAlchemy}
+BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module python-dateutil}
+# /SECTION
+Provides: python-WTForms-lang
+Obsoletes: python-WTForms-lang
%python_subpackages
%description
@@ -58,55 +57,31 @@
%description -n %{name}-doc
Documentation for WTForms, which is a forms validation and rendering library for Python web development.
-%package lang
-Summary: Languages for package %{name}
-Group: System/Localization
-Requires: %{name} = %{version}
-Supplements: packageand(bundle-lang-other:%{name})
-Provides: %{name}-lang-all = %{version}
-
-%description lang
-Provides translations to the package %{name}
-
%prep
%setup -q -n WTForms-%{version}
-sed -i "s/\r//" CHANGES.rst docs/html/_static/jquery.js # Fix wrong EOL-encoding
-rm -rf docs/html/.buildinfo # Remove junk
%build
%python_build
+# Fix wrong EOL-encoding
+sed -i "s/\r//" CHANGES.rst
+# remove reference to ../CHANGES.rst
+rm docs/changes.rst
%install
%python_install
-%find_lang wtforms
-%python_expand grep -F "%{$python_sitelib}" wtforms.lang > wtforms_%{$python_bin_suffix}.lang
%python_expand %fdupes %{buildroot}%{$python_sitelib}
-%if %{with test}
%check
-%python_exec setup.py test
-%endif
+pushd tests
+%python_expand $python runtests.py
+popd
%files %{python_files}
-%defattr(-,root,root,-)
-%doc AUTHORS.txt CHANGES.rst LICENSE.txt README.md
+%license LICENSE.rst
+%doc AUTHORS.rst CHANGES.rst README.rst
%{python_sitelib}/*
-%exclude %{python_sitelib}/wtforms/locale
%files -n %{name}-doc
-%defattr(-,root,root,-)
-%doc docs/html
-
-%if %have_python2 && ! 0%{?skip_python2}
-%files -n %{python2_prefix}-WTForms-lang -f wtforms_%{python2_bin_suffix}.lang
-%defattr(-,root,root,-)
-%{python2_sitelib}/wtforms/locale
-%endif
-
-%if %have_python2 && ! 0%{?skip_python3}
-%files -n %{python3_prefix}-WTForms-lang -f wtforms_%{python3_bin_suffix}.lang
-%defattr(-,root,root,-)
-%{python3_sitelib}/wtforms/locale
-%endif
+%doc docs/*.rst
%changelog
1
0
Hello community,
here is the log from the commit of package neomutt for openSUSE:Leap:15.2 checked in at 2020-05-28 20:11:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/neomutt (Old)
and /work/SRC/openSUSE:Leap:15.2/.neomutt.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neomutt"
Thu May 28 20:11:54 2020 rev:24 rq:809982 version:20200501
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/neomutt/neomutt.changes 2020-01-15 15:33:08.670848113 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.neomutt.new.3606/neomutt.changes 2020-05-28 20:11:57.271320174 +0200
@@ -1,0 +2,277 @@
+Fri May 22 07:00:32 UTC 2020 - Kai Liu <kai.liu(a)suse.com>
+
+- Update to 20200501:
+ * Bug Fixes
+ - Make sure buffers are initialized on error
+ - fix(sidebar): use abbreviated path if possible
+ * Translations
+ - 100% Lithuanian
+ * Docs
+ - make header cache config more explicit
+
+- Changes from 20200424:
+ * Bug Fixes
+ - Fix history corruption
+ - Handle pretty much anything in a URL query part
+ - Correctly parse escaped characters in header phrases
+ - Fix crash reading received header
+ - Fix sidebar indentation
+ - Avoid crashing on failure to parse an IMAP mailbox
+ - Maildir: handle deleted emails correctly
+ - Ensure OP_NULL is always first
+ * Translations
+ - 100% Czech
+ * Build
+ - cirrus: enable pcre2, make pkgconf a special case
+ - Fix finding pcre2 w/o pkgconf
+ - build: tdb.h needs size_t, bring it in with stddef.h
+
+- Changes from 20200417:
+ * Features
+ - Fluid layout for Compose Screen, see: vimeo.com/407231157
+ - Trivial Database (TDB) header cache backend
+ - RocksDB header cache backend
+ - Add <sidebar-first> and <sidebar-last> functions
+ * Bug Fixes
+ - add error for CLI empty emails
+ - Allow spaces and square brackets in paths
+ - browser: fix hidden mailboxes
+ - fix initial email display
+ - notmuch: fix time window search.
+ - fix resize bugs
+ - notmuch: fix entire-thread: update current email pointer
+ - sidebar: support indenting and shortening of names
+ - Handle variables inside backticks in sidebar_whitelist
+ - browser: fix mask regex error reporting
+ * Translations
+ - 100% Lithuanian
+ - 99% Chinese (simplified)
+ * Build
+ - Use regexes for common parsing tasks: urls, dates
+ - Add configure option --pcre2 -- Enable PCRE2 regular expressions
+ - Add configure option --tdb -- Use TDB for the header cache
+ - Add configure option --rocksdb -- Use RocksDB for the header cache
+ - Create libstore (key/value backends)
+ - Update to latest autosetup
+ - Update to latest acutest.h
+ - Rename doc/ directory to docs/
+ - make: fix location of .Po dependency files
+ - Change libcompress to be more universal
+ - Fix test fails on х32
+ - fix uidvalidity to unsigned 32-bit int
+ * Code
+ - Increase test coverage
+ - Fix memory leaks
+ - Fix null checks
+ * Upstream
+ - Buffer refactoring
+ - Fix use-after-free in mutt_str_replace()
+ - Clarify PGP Pseudo-header S<id> duration
+ - Try to respect MUTT_QUIET for IMAP contexts too
+ - Limit recurse depth when parsing mime messages
+
+-------------------------------------------------------------------
+Fri Mar 20 13:56:02 UTC 2020 - Martin Rey <mrey(a)suse.com>
+
+- Update to 20200320:
+ * Bug Fixes
+ - Fix COLUMNS env var
+ - Fix sync after delete
+ - Fix crash in notmuch
+ - Fix sidebar indent
+ - Fix emptying trash
+ - Fix command line sending
+ - Fix reading large address lists
+ - Resolve symlinks only when necessary
+ * Translations
+ - lithuania 100% Lithuanian
+ - es 96% Spanish
+ * Docs
+ - Include OpenSSL/LibreSSL/GnuTLS version in neomutt -v output
+ - Fix case of GPGME and SQLite
+ * Build
+ - Create libcompress (lz4, zlib, zstd)
+ - Create libhistory
+ - Create libbcache
+ - Move zstrm to libconn
+ * Code
+ - Add more test coverage
+ - Rename magic to type
+ - Use mutt_file_fopen() on config variables
+ - Change commands to use intptr_t for data
+
+-------------------------------------------------------------------
+Fri Mar 13 19:01:50 UTC 2020 - Martin Rey <mrey(a)suse.com>
+
+- Update to 20200313:
+ * Window layout
+ - Sidebar is only visible when it's usable.
+ * Features
+ - UI: add number of old messages to sidebar_format
+ - UI: support ISO 8601 calendar date
+ - UI: fix commands that don’t need to have a non-empty mailbox
+ to be valid
+ - PGP: inform about successful decryption of inline PGP
+ messages
+ - PGP: try to infer the signing key from the From address
+ - PGP: enable GPGMe by default
+ - Notmuch: use query as name for vfolder-from-query
+ - IMAP: add network traffic compression
+ (COMPRESS=DEFLATE, RFC4978)
+ - Header cache: add support for generic header cache
+ compression
+ * Bug Fixes
+ - Fix uncollapse_jump
+ - Only try to perform entire-thread on maildir/mh mailboxes
+ - Fix crash in pager
+ - Avoid logging single new lines at the end of header fields
+ - Fix listing mailboxes
+ - Do not recurse a non-threaded message
+ - Fix initial window order
+ - Fix leaks on IMAP error paths
+ - Notmuch: compose(attach-message): support notmuch backend
+ - Fix IMAP flag comparison code
+ - Fix $move for IMAP mailboxes
+ - Maildir: maildir_mbox_check_stats should only update mailbox
+ stats if requested
+ - Fix unmailboxes for virtual mailboxes
+ - Maildir: sanitize filename before hashing
+ - OAuth: if 'login' name isn't available use 'user'
+ - Add error message on failed encryption
+ - Fix a bunch of crashes
+ - Force C locale for email date
+ - Abort if run without a terminal
+ * Changed Config
+ - $crypt_use_gpgme - Now defaults to 'yes' (enabled)
+ - $abort_backspace - Hitting backspace against an empty prompt
+ aborts the prompt
+ - $abort_key - String representation of key to abort prompts
+ - $arrow_string - Use an custom string for arrow_cursor
+ - $crypt_opportunistic_encrypt_strong_keys - Enable encryption
+ only when strong a key is available
+ - $header_cache_compress_dictionary - Filepath to dictionary
+ for zstd compression
+ - $header_cache_compress_level - Level of compression for
+ method
+ - $header_cache_compress_method - Enable generic hcache
+ database compression
+ - $imap_deflate - Compress network traffic
+ - $smtp_user - Username for the SMTP server
+ * Translations
+ - 100% Lithuanian
+ - 81% Spanish
+ - 78% Russian
+ * Build
+ - Add libdebug
+ - Rename public headers to lib.h
+ - Create libcompress for compressed folders code
+ * Code
+ - Refactor Windows and Dialogs
+ - Lots of code tidying
+ - Refactor: mutt_addrlist_{search,write}
+ - Lots of improvements to the Config code
+ - Use Buffers more pervasively
+ - Unify API function naming
+ - Rename library shared headers
+ - Refactor libconn gui dependencies
+ - Refactor: init.[ch]
+ - Refactor config to use subsets
+ - Config: add path type
+ - Remove backend deps from the connection code
+ * Upstream
+ - Allow ~b ~B ~h patterns in send2-hook
+ - Rename smime oppenc mode parameter to get_keys_by_addr()
+ - Add $crypt_opportunistic_encrypt_strong_keys config var
+ - Fix crash when polling a closed ssl connection
+ - Turn off auto-clear outside of autocrypt initialization
+ - Add protected-headers="v1" to Content-Type when protecting
+ headers
+ - Fix segv in IMAP postponed menu caused by reopen_allow
+ - Adding ISO 8601 calendar date
+ - Fix $fcc_attach to not prompt in batch mode
+ - Convert remaining mutt_encode_path() call to use struct
+ Buffer
+ - Fix rendering of replacement_char when Charset_is_utf8
+ - Update to latest acutest.h
+
+-------------------------------------------------------------------
++++ 80 more lines (skipped)
++++ between /work/SRC/openSUSE:Leap:15.2/neomutt/neomutt.changes
++++ and /work/SRC/openSUSE:Leap:15.2/.neomutt.new.3606/neomutt.changes
Old:
----
neomutt-20180716.tar.gz
New:
----
20200501.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ neomutt.spec ++++++
--- /var/tmp/diff_new_pack.qBMtKC/_old 2020-05-28 20:11:57.583321103 +0200
+++ /var/tmp/diff_new_pack.qBMtKC/_new 2020-05-28 20:11:57.587321115 +0200
@@ -1,7 +1,7 @@
#
# spec file for package neomutt
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# 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/
#
Name: neomutt
-Version: 20180716
+Version: 20200501
Release: 0
Summary: A command line mail reader (or MUA), a fork of Mutt with added features
License: GPL-2.0-or-later
Group: Productivity/Networking/Email/Clients
-Url: https://neomutt.org
-Source: https://github.com/neomutt/neomutt/archive/%{name}-%{version}.tar.gz
+URL: https://neomutt.org
+Source: https://github.com/neomutt/neomutt/archive/%{version}.tar.gz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: cyrus-sasl-devel
@@ -68,7 +68,7 @@
%lang_package macro
%prep
-%setup -q -n neomutt-%{name}-%{version}
+%setup -q
%build
export CFLAGS="%{optflags}"
@@ -95,7 +95,6 @@
%files
%config(noreplace) %{_sysconfdir}/neomuttrc
-%license %{_docdir}/neomutt/COPYRIGHT.md
%license %{_docdir}/neomutt/LICENSE.md
%{_bindir}/neomutt
%{_mandir}/man1/neomutt.1%{?ext_man}
@@ -129,6 +128,7 @@
%dir %doc %{_docdir}/%{name}/logo/
%doc %{_docdir}/%{name}/logo/neomutt*
%dir %doc %{_docdir}/%{name}/samples/
+%doc %{_docdir}/%{name}/samples/*.pl
%doc %{_docdir}/%{name}/samples/*.rc
%doc %{_docdir}/%{name}/samples/colors.*
%doc %{_docdir}/%{name}/samples/sample.*
++++++ neomutt-20180716.tar.gz -> 20200501.tar.gz ++++++
++++ 631574 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package fossil for openSUSE:Leap:15.2 checked in at 2020-05-28 20:11:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/fossil (Old)
and /work/SRC/openSUSE:Leap:15.2/.fossil.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fossil"
Thu May 28 20:11:51 2020 rev:19 rq:809907 version:2.11
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/fossil/fossil.changes 2020-03-29 14:56:45.567207550 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.fossil.new.3606/fossil.changes 2020-05-28 20:11:55.323314376 +0200
@@ -1,0 +2,23 @@
+Wed May 27 07:31:42 UTC 2020 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- fossil 2.11:
+ * Support Markdown in the default ticket configuration
+ * Timestamp strings in object names can now omit punctation
+ * Enhance backlink processing so that it works with Markdown-
+ formatted tickets and so that it works for wiki pages
+ fossil rebuild is needed to take full advantage of this fix
+ * Many improvements to the forum and especially email notification
+ of forum posts
+ * Minimum length of a self-registered user ID increased from 3 to 6
+ characters
+ * Rework the fossil grep command to be more useful
+ * Expose the redirect-to-https setting to the settings command
+ * Most commands now support the Unix-conventional "--" flag to
+ treat all following arguments as filenames instead of flags
+ * Add the mimetypes config setting
+ * security harening against possibly tampered database schemas
+ * Now sends the Content-Security-Policy header
+ * Stop using the IP address as part of the login cookie
+ * many web UI and CLI improvements, documentation updates
+
+-------------------------------------------------------------------
Old:
----
fossil-src-2.10.tar.gz
New:
----
fossil-src-2.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fossil.spec ++++++
--- /var/tmp/diff_new_pack.nARhXw/_old 2020-05-28 20:11:56.039316508 +0200
+++ /var/tmp/diff_new_pack.nARhXw/_new 2020-05-28 20:11:56.043316520 +0200
@@ -1,7 +1,7 @@
#
# spec file for package fossil
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -22,7 +22,7 @@
%bcond_with system_sqlite
%endif
Name: fossil
-Version: 2.10
+Version: 2.11
Release: 0
Summary: Distributed software configuration management
License: BSD-2-Clause
++++++ fossil-src-2.10.tar.gz -> fossil-src-2.11.tar.gz ++++++
++++ 57441 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package libp11 for openSUSE:Leap:15.2 checked in at 2020-05-28 20:11:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/libp11 (Old)
and /work/SRC/openSUSE:Leap:15.2/.libp11.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libp11"
Thu May 28 20:11:35 2020 rev:17 rq:809891 version:0.4.10
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/libp11/libp11.changes 2020-01-15 15:22:38.554483420 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.libp11.new.3606/libp11.changes 2020-05-28 20:11:38.939265608 +0200
@@ -1,0 +2,44 @@
+Tue Oct 22 04:23:31 UTC 2019 - Jason Sikes <jsikes(a)suse.com>
+
+- Update to version 0.4.10:
+
+ * Added EC signing through EVP API
+ * Added an empty EC private key required by OpenSSL 1.1.1
+ * Stored additional certificate attributes
+ * Engine allowed to use private keys without a PIN
+ * Lazy binding used as a workaround for buggy modules
+ * MinGW build fixes and documentation
+ * LibreSSL 2.8.3 build fixes
+ * Error handling fixes
+
+-------------------------------------------------------------------
+Tue Mar 12 16:15:22 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- Add p11-kit-devel to BuildRequires (boo#1122413)
+
+-------------------------------------------------------------------
+Tue Jan 29 22:44:39 UTC 2019 - Stanislav Brabec <sbrabec(a)suse.com>
+
+- Update to version 0.4.9:
+ * Fix EVP_PKEY ENGINE reference count with the EC
+ EVP_PKEY_METHOD.
+ * Fix a leak of RSA object in pkcs11_store_key()
+ * Add atfork checks for RSA and EC_KEY method
+ * RSA key generation on the token
+ * PSS signature support
+ * RSA-OAEP and RSA-PKCS encryption support
+ * Engine no longer set as default for all methods
+ * Add PKCS11_remove_key and PKCS11_remove_certificate
+ * Add PKCS11_find_next_token interface
+ * Add support for OpenSSL 1.1.1 beta
+ * Remove support for OpenSSL 0.9.8
+ * Case insensitive PKCS#11 URI scheme
+ * Testing framework improvements
+ * Coverity scanning and defect fixes
+ * Backward compatibility for new error handling introduced
+ in libp11 0.4.7
+ * Memory leak fixes
+ * Add an integer overflow protection
+ * Several bugfixes
+
+-------------------------------------------------------------------
Old:
----
libp11-0.4.7.tar.gz
libp11-0.4.7.tar.gz.asc
New:
----
libp11-0.4.10.tar.gz
libp11-0.4.10.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libp11.spec ++++++
--- /var/tmp/diff_new_pack.gLi1Ec/_old 2020-05-28 20:11:39.259266560 +0200
+++ /var/tmp/diff_new_pack.gLi1Ec/_new 2020-05-28 20:11:39.263266572 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libp11
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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
@@ -12,7 +12,7 @@
# 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/
#
@@ -25,20 +25,24 @@
%define libname libp11-3
%endif
Name: libp11
-Version: 0.4.7
+Version: 0.4.10
Release: 0
Summary: Library Implementing a Small Layer on Top of PKCS#11 API
-License: LGPL-2.1+
+License: LGPL-2.1-or-later
Group: Productivity/Security
-Url: https://github.com/OpenSC/libp11
+URL: https://github.com/OpenSC/libp11
Source0: https://github.com/OpenSC/libp11/releases/download/%{name}-%{version}/%{nam…
Source1: https://github.com/OpenSC/libp11/releases/download/%{name}-%{version}/%{nam…
Source2: %{name}.keyring
Source3: %{name}-rpmlintrc
BuildRequires: fdupes
+BuildRequires: p11-kit-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(zlib)
+# The engine_pkcs11 library has been merged into version 0.4.0 and later.
+# (It existed only in security:chipcard OBS repository.
+Obsoletes: engine_pkcs11 <= 0.2.2
%description
Libp11 is a library implementing a small layer on top of PKCS#11 API to
++++++ libp11-0.4.7.tar.gz -> libp11-0.4.10.tar.gz ++++++
++++ 12747 lines of diff (skipped)
1
0