openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2024
- 1 participants
- 1521 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rapidcsv for openSUSE:Factory checked in at 2024-07-01 11:21:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rapidcsv (Old)
and /work/SRC/openSUSE:Factory/.rapidcsv.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rapidcsv"
Mon Jul 1 11:21:04 2024 rev:3 rq:1184078 version:8.83
Changes:
--------
--- /work/SRC/openSUSE:Factory/rapidcsv/rapidcsv.changes 2024-03-26 19:29:46.242476556 +0100
+++ /work/SRC/openSUSE:Factory/.rapidcsv.new.18349/rapidcsv.changes 2024-07-01 11:21:43.518022151 +0200
@@ -1,0 +2,7 @@
+Sat Jun 22 16:47:30 UTC 2024 - Matwey Kornilov <matwey.kornilov(a)gmail.com>
+
+- Update to version 8.83:
+ * fixes #161 - writing CSV with autoquote enabled should quote strings
+ containing linebreak
+
+-------------------------------------------------------------------
Old:
----
rapidcsv-8.82.tar.gz
New:
----
rapidcsv-8.83.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rapidcsv.spec ++++++
--- /var/tmp/diff_new_pack.rMrBjR/_old 2024-07-01 11:21:44.050041531 +0200
+++ /var/tmp/diff_new_pack.rMrBjR/_new 2024-07-01 11:21:44.054041677 +0200
@@ -17,7 +17,7 @@
Name: rapidcsv
-Version: 8.82
+Version: 8.83
Release: 0
Summary: C++ header-only library for CSV parsing
License: BSD-3-Clause
++++++ rapidcsv-8.82.tar.gz -> rapidcsv-8.83.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rapidcsv-8.82/src/rapidcsv.h new/rapidcsv-8.83/src/rapidcsv.h
--- old/rapidcsv-8.82/src/rapidcsv.h 2024-02-10 12:23:55.000000000 +0100
+++ new/rapidcsv-8.83/src/rapidcsv.h 2024-03-31 03:56:19.000000000 +0200
@@ -2,7 +2,7 @@
* rapidcsv.h
*
* URL: https://github.com/d99kris/rapidcsv
- * Version: 8.82
+ * Version: 8.83
*
* Copyright (C) 2017-2024 Kristofer Berggren
* All rights reserved.
@@ -1748,7 +1748,8 @@
{
if (mSeparatorParams.mAutoQuote &&
((itc->find(mSeparatorParams.mSeparator) != std::string::npos) ||
- (itc->find(' ') != std::string::npos)))
+ (itc->find(' ') != std::string::npos) ||
+ (itc->find('\n') != std::string::npos)))
{
// escape quotes in string
std::string str = *itc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rapidcsv-8.82/tests/test067.cpp new/rapidcsv-8.83/tests/test067.cpp
--- old/rapidcsv-8.82/tests/test067.cpp 2024-02-10 12:23:55.000000000 +0100
+++ new/rapidcsv-8.83/tests/test067.cpp 2024-03-31 03:56:19.000000000 +0200
@@ -14,6 +14,7 @@
"\"a b\"\n"
"\"\"\"a b\"\"\"\n"
"\" \"\"a\"\" \"\n"
+ "\"a\nb\"\n"
;
std::string csvreadref =
@@ -22,6 +23,7 @@
"\"a b\"\n"
"\"\"\"a b\"\"\"\n"
"\" \"\"a\"\" \"\n"
+ "\"a\nb\"\n"
;
std::string path = unittest::TempPath();
@@ -33,12 +35,13 @@
{
rapidcsv::Document doc(path, rapidcsv::LabelParams(0 /* pColumnNameIdx */, -1 /* pRowNameIdx */),
rapidcsv::SeparatorParams(',', false /* pTrim */, rapidcsv::sPlatformHasCR /* pHasCR */,
- false /* pQuotedLinebreaks */, true /* pAutoQuote */));
+ true /* pQuotedLinebreaks */, true /* pAutoQuote */));
unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 0), "");
unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 1), " ");
unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 2), "a b");
unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 3), "\"a b\"");
unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 4), " \"a\" ");
+ unittest::ExpectEqual(std::string, doc.GetCell<std::string>("col 1", 5), "a\nb");
}
// write
@@ -46,7 +49,7 @@
unittest::WriteFile(path, csvreadref);
rapidcsv::Document doc(path, rapidcsv::LabelParams(0 /* pColumnNameIdx */, -1 /* pRowNameIdx */),
rapidcsv::SeparatorParams(',', false /* pTrim */, rapidcsv::sPlatformHasCR /* pHasCR */,
- false /* pQuotedLinebreaks */, true /* pAutoQuote */));
+ true /* pQuotedLinebreaks */, true /* pAutoQuote */));
doc.Save();
const std::string& csvread = unittest::ReadFile(path);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-weasyprint for openSUSE:Factory checked in at 2024-07-01 11:21:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-weasyprint (Old)
and /work/SRC/openSUSE:Factory/.python-weasyprint.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-weasyprint"
Mon Jul 1 11:21:02 2024 rev:14 rq:1184080 version:62.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-weasyprint/python-weasyprint.changes 2024-06-10 17:38:42.921354784 +0200
+++ /work/SRC/openSUSE:Factory/.python-weasyprint.new.18349/python-weasyprint.changes 2024-07-01 11:21:41.109934422 +0200
@@ -1,0 +2,20 @@
+Sun Jun 30 08:16:19 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 62.3:
+ * #2174: Fix extra width distribution for auto table layout
+ * #2175: Don’t compress PDF metadata for PDF/A-1
+ * Set default PDF variant values in options before
+ generating PDF
+ * Avoid PDF artifacts when drawing 0-width borders
+ * Don’t duplicate column when container is split on
+ multiple pages
+ * Don’t set default Fontconfig values for unset
+ properties
+ * Fix layout when all footnotes are removed from the
+ footnote area
+ * Make items overflowing grid wrap to the next
+ row/column
+ * Don’t append useless tracks when grid elements are
+ positioned
+
+-------------------------------------------------------------------
Old:
----
weasyprint-62.2.tar.gz
New:
----
weasyprint-62.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-weasyprint.spec ++++++
--- /var/tmp/diff_new_pack.UHuHBa/_old 2024-07-01 11:21:41.985966336 +0200
+++ /var/tmp/diff_new_pack.UHuHBa/_new 2024-07-01 11:21:41.989966482 +0200
@@ -29,7 +29,7 @@
%{?sle15_python_module_pythons}
Name: python-weasyprint
-Version: 62.2
+Version: 62.3
Release: 0
Summary: Python module to convert web documents to PDF
License: BSD-3-Clause
++++++ weasyprint-62.2.tar.gz -> weasyprint-62.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/PKG-INFO new/weasyprint-62.3/PKG-INFO
--- old/weasyprint-62.2/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
+++ new/weasyprint-62.3/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: weasyprint
-Version: 62.2
+Version: 62.3
Summary: The Awesome Document Factory
Keywords: html,css,pdf,converter
Author-email: Simon Sapin <simon.sapin(a)exyr.org>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/docs/changelog.rst new/weasyprint-62.3/docs/changelog.rst
--- old/weasyprint-62.2/docs/changelog.rst 2024-06-04 16:15:52.039573200 +0200
+++ new/weasyprint-62.3/docs/changelog.rst 2024-06-21 17:45:25.688718300 +0200
@@ -2,6 +2,57 @@
=========
+Version 62.3
+------------
+
+Released on 2024-06-21.
+
+Bug fixes:
+
+* `#2174 <https://github.com/Kozea/WeasyPrint/issues/2174>`_:
+ Fix extra width distribution for auto table layout
+* `#2175 <https://github.com/Kozea/WeasyPrint/issues/2175>`_:
+ Don’t compress PDF metadata for PDF/A-1
+* `61f8bb3 <https://github.com/Kozea/WeasyPrint/commit/61f8bb3>`_:
+ Set default PDF variant values in options before generating PDF
+* `2c4351e <https://github.com/Kozea/WeasyPrint/commit/2c4351e>`_:
+ Avoid PDF artifacts when drawing 0-width borders
+* `d9d7f62 <https://github.com/Kozea/WeasyPrint/commit/d9d7f62>`_:
+ Don’t duplicate column when container is split on multiple pages
+* `4617b94 <https://github.com/Kozea/WeasyPrint/commit/4617b94>`_:
+ Don’t set default Fontconfig values for unset properties
+* `4c81663 <https://github.com/Kozea/WeasyPrint/commit/4c81663>`_:
+ Fix layout when all footnotes are removed from the footnote area
+* `#2184 <https://github.com/Kozea/WeasyPrint/issues/2184>`_:
+ Make items overflowing grid wrap to the next row/column
+* `#2187 <https://github.com/Kozea/WeasyPrint/issues/2187>`_:
+ Don’t append useless tracks when grid elements are positioned
+
+Contributors:
+
+* Guillaume Ayoub
+
+Backers and sponsors:
+
+* Spacinov
+* Kobalt
+* Grip Angebotssoftware
+* Manuel Barkhau
+* SimonSoft
+* Menutech
+* KontextWork
+* Simon Sapin
+* René Fritz
+* TrainingSparkle
+* Healthchecks.io
+* Hammerbacher
+* Docraptor
+* Yanal-Yvez Fargialla
+* Douwe van Loenen
+* Morntag
+* Xavid
+
+
Version 62.2
------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/tests/draw/test_footnote.py new/weasyprint-62.3/tests/draw/test_footnote.py
--- old/weasyprint-62.2/tests/draw/test_footnote.py 2024-02-18 21:57:44.177647400 +0100
+++ new/weasyprint-62.3/tests/draw/test_footnote.py 2024-06-21 17:37:15.485403300 +0200
@@ -124,6 +124,57 @@
@assert_no_logs
+def test_footnote_multiple_margin(assert_pixels):
+ assert_pixels('''
+ RRRR___
+ RRRR___
+ RRRR___
+ RRRR___
+ RRRR___
+ RRRR___
+ RRRRRR_
+ RRRRRR_
+ _______
+ _______
+
+ RRRR___
+ RRRR___
+ _______
+ _______
+ _______
+ _______
+ RRRRRR_
+ RRRRRR_
+ RRRRRR_
+ RRRRRR_
+ ''', '''
+ <style>
+ @font-face {src: url(weasyprint.otf); font-family: weasyprint}
+ @page {
+ size: 7px 10px;
+
+ @footnote {
+ margin-top: 1px;
+ }
+ }
+ div {
+ color: red;
+ font-family: weasyprint;
+ font-size: 2px;
+ line-height: 1;
+ }
+ span {
+ float: footnote;
+ }
+ </style>
+ <div>ab</div>
+ <div>ab</div>
+ <div>ab</div>
+ <div>a<span>d</span><span>e</span></div>
+ <div>ab</div>''')
+
+
+@assert_no_logs
def test_footnote_with_absolute(assert_pixels):
assert_pixels('''
_RRRR____
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/tests/layout/test_column.py new/weasyprint-62.3/tests/layout/test_column.py
--- old/weasyprint-62.2/tests/layout/test_column.py 2024-05-27 10:15:26.140362500 +0200
+++ new/weasyprint-62.3/tests/layout/test_column.py 2024-06-21 17:37:15.486403200 +0200
@@ -1057,3 +1057,29 @@
</style>
<div style="columns: 2; column-width: 100px; width: 10px">abc def</div>
''')
+
+
+@assert_no_logs
+def test_columns_regression_7():
+ page1, page2 = render_pages('''
+ <style>
+ @page { size: 50px 10px }
+ body { font-size: 2px; line-height: 1 }
+ </style>
+ <div style="height: 8px"></div>
+ <div style="column-count: 2">
+ <div>a</div>
+ <div style="break-inside: avoid">b<br>c<br>d</div>
+ </div>
+ ''')
+ html, = page1.children
+ body, = html.children
+ div, = body.children
+ assert div.position_y == 0
+ assert not div.children
+ html, = page2.children
+ body, = html.children
+ div, = body.children
+ column1, column2 = div.children
+ assert column1.position_y == 0
+ assert column2.position_y == 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/tests/layout/test_grid.py new/weasyprint-62.3/tests/layout/test_grid.py
--- old/weasyprint-62.2/tests/layout/test_grid.py 2024-06-03 16:31:53.664926500 +0200
+++ new/weasyprint-62.3/tests/layout/test_grid.py 2024-06-21 17:37:15.486403200 +0200
@@ -281,6 +281,40 @@
@assert_no_logs
+def test_grid_template_areas_span_overflow():
+ page, = render_pages('''
+ <style>
+ @font-face { src: url(weasyprint.otf); font-family: weasyprint }
+ article {
+ display: grid;
+ font-family: weasyprint;
+ font-size: 2px;
+ grid-template-columns: 50% 50%;
+ line-height: 1;
+ width: 10px;
+ }
+ </style>
+ <article>
+ <div style="">a</div>
+ <div style="grid-column: span 2">a</div>
+ <div style="">a</div>
+ </article>
+ ''')
+ html, = page.children
+ body, = html.children
+ article, = body.children
+ div_a1, div_a2, div_a3 = article.children
+ assert div_a1.position_x == div_a2.position_x == div_a3.position_x == 0
+ assert div_a1.position_y == 0
+ assert div_a2.position_y == 2
+ assert div_a3.position_y == 4
+ assert div_a1.width == div_a3.width == 5
+ assert div_a2.width == 10
+ assert div_a1.height == div_a2.height == div_a3.height == 2
+ assert article.width == 10
+
+
+@assert_no_logs
def test_grid_template_areas_extra_span():
page, = render_pages('''
<style>
@@ -954,3 +988,35 @@
assert div_e.height == 4
assert article.height == 4
assert article.width == 12
+
+
+@assert_no_logs
+def test_grid_gap_explicit_grid_column():
+ # Regression test for https://github.com/Kozea/WeasyPrint/issues/2187
+ page, = render_pages('''
+ <style>
+ @font-face { src: url(weasyprint.otf); font-family: weasyprint }
+ article {
+ display: grid;
+ font-family: weasyprint;
+ font-size: 2px;
+ gap: 2px;
+ grid-template-columns: 1fr;
+ line-height: 1;
+ width: 12px;
+ }
+ </style>
+ <article>
+ <div>a</div>
+ <div style="grid-column: 1">b</div>
+ </article>
+ ''')
+ html, = page.children
+ body, = html.children
+ article, = body.children
+ div_a, div_b = article.children
+ assert div_a.position_x == div_b.position_x == 0
+ assert div_a.position_y == 0
+ assert div_b.position_y == 4
+ assert article.height == 6
+ assert article.width == 12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/tests/layout/test_table.py new/weasyprint-62.3/tests/layout/test_table.py
--- old/weasyprint-62.2/tests/layout/test_table.py 2024-05-27 10:15:26.141362700 +0200
+++ new/weasyprint-62.3/tests/layout/test_table.py 2024-06-21 17:37:15.487403400 +0200
@@ -1298,11 +1298,14 @@
def test_layout_table_auto_42():
# Cell width as percentage in auto-width table
page, = render_pages('''
- <table>
+ <style>
+ @font-face { src: url(weasyprint.otf); font-family: weasyprint }
+ </style>
+ <table style="font-family: weasyprint">
<tbody>
<tr>
- <td style="width: 70px">a a a a a a a a</td>
- <td style="width: 30%">a a a a a a a a</td>
+ <td style="width: 70px">aaa</td>
+ <td style="width: 25%">aaa</td>
</tr>
</tbody>
</table>
@@ -1314,9 +1317,9 @@
row_group, = table.children
row, = row_group.children
td_1, td_2 = row.children
- assert td_1.width == 70
- assert td_2.width == 30
- assert table.width == 100
+ assert td_2.width == 16 * 3 # Percentage column is set to max-width
+ assert td_1.width == (16 * 3) * 3 # Pixel column constraint is ignored
+ assert table.width == (16 * 3) * 4
@assert_no_logs
@@ -1555,6 +1558,32 @@
@assert_no_logs
+def test_layout_table_auto_51():
+ # Test regression:
+ # https://github.com/Kozea/WeasyPrint/issues/2174
+ page, = render_pages('''
+ <style>
+ @font-face { src: url(weasyprint.otf); font-family: weasyprint }
+ </style>
+ <table style="font-family: weasyprint; width: 100px">
+ <tr>
+ <td style="width: 29.9999%">a</td>
+ <td style="width: 70%">a</td>
+ </tr>
+ </table>
+ ''')
+ html, = page.children
+ body, = html.children
+ table_wrapper, = body.children
+ table, = table_wrapper.children
+ row_group, = table.children
+ row_1, = row_group.children
+ td_1, td_2 = row_1.children
+ assert abs(td_1.width - 30) < 0.1
+ assert abs(td_2.width - 70) < 0.1
+
+
+@assert_no_logs
@pytest.mark.parametrize(
'body_width, table_width, check_width, positions, widths', (
('500px', '230px', 220, [170, 5], [45, 155]),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/tests/test_api.py new/weasyprint-62.3/tests/test_api.py
--- old/weasyprint-62.2/tests/test_api.py 2024-06-04 16:04:34.852718000 +0200
+++ new/weasyprint-62.3/tests/test_api.py 2024-06-21 17:37:15.488403300 +0200
@@ -464,6 +464,12 @@
_run(f'--pdf-variant=pdf/a-{version}b - -', b'test')
+def test_pdfa1b_cidset():
+ stdout = _run('--pdf-variant=pdf/a-1b --uncompressed-pdf - -', b'test')
+ assert b'PDF-1.4' in stdout
+ assert b'CIDSet' in stdout
+
+
def test_pdfua():
stdout = _run('--pdf-variant=pdf/ua-1 --uncompressed-pdf - -', b'test')
assert b'part="1"' in stdout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/__init__.py new/weasyprint-62.3/weasyprint/__init__.py
--- old/weasyprint-62.2/weasyprint/__init__.py 2024-06-04 16:04:46.491948600 +0200
+++ new/weasyprint-62.3/weasyprint/__init__.py 2024-06-21 17:37:27.972615000 +0200
@@ -15,7 +15,7 @@
import html5lib
import tinycss2
-VERSION = __version__ = '62.2'
+VERSION = __version__ = '62.3'
#: Default values for command-line and Python API options. See
#: :func:`__main__.main` to learn more about specific options for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/document.py new/weasyprint-62.3/weasyprint/document.py
--- old/weasyprint-62.2/weasyprint/document.py 2024-06-04 16:04:34.854718200 +0200
+++ new/weasyprint-62.3/weasyprint/document.py 2024-06-21 17:37:15.489403200 +0200
@@ -388,24 +388,24 @@
new_options = DEFAULT_OPTIONS.copy()
new_options.update(options)
options = new_options
- pdf = generate_pdf(self, target, zoom, **options)
-
- identifier = options['pdf_identifier']
- compress = not options['uncompressed_pdf']
- version = options['pdf_version']
- variant = options['pdf_variant']
# Set default PDF version for PDF variants.
- if version is None and variant:
+ if variant := options['pdf_variant']:
_, properties = VARIANTS[variant]
- if 'version' in properties:
- version = properties['version']
- if 'identifier' in properties and not identifier:
- identifier = properties['identifier']
+ if 'version' in properties and not options['pdf_version']:
+ options['pdf_version'] = properties['version']
+ if 'identifier' in properties and not options['pdf_identifier']:
+ options['pdf_identifier'] = properties['identifier']
+
+ pdf = generate_pdf(self, target, zoom, **options)
if finisher:
finisher(self, pdf)
+ identifier = options['pdf_identifier']
+ compress = not options['uncompressed_pdf']
+ version = options['pdf_version']
+
if target is None:
output = io.BytesIO()
pdf.write(output, version, identifier, compress)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/draw.py new/weasyprint-62.3/weasyprint/draw.py
--- old/weasyprint-62.2/weasyprint/draw.py 2024-05-27 11:51:46.653930200 +0200
+++ new/weasyprint-62.3/weasyprint/draw.py 2024-06-21 17:37:15.490403400 +0200
@@ -401,63 +401,53 @@
def draw_border(stream, box):
- """Draw the box border to a ``document.Stream``."""
- # We need a plan to draw beautiful borders, and that's difficult, no need
- # to lie. Let's try to find the cases that we can handle in a smart way.
+ """Draw the box borders and column rules to a ``document.Stream``."""
- def get_columns_with_rule():
- """Yield columns that have a rule drawn on the left."""
+ # The box is hidden, easy.
+ if box.style['visibility'] != 'visible':
+ return
+
+ # Draw column borders.
+ columns = (
+ isinstance(box, boxes.BlockContainerBox) and (
+ box.style['column_width'] != 'auto' or
+ box.style['column_count'] != 'auto'))
+ if columns and box.style['column_rule_width']:
+ border_widths = (0, 0, 0, box.style['column_rule_width'])
skip_next = True
for child in box.children:
if child.style['column_span'] == 'all':
skip_next = True
+ continue
elif skip_next:
skip_next = False
- else:
- yield child
-
- def draw_column_border():
- """Draw column borders."""
- columns = (
- isinstance(box, boxes.BlockContainerBox) and (
- box.style['column_width'] != 'auto' or
- box.style['column_count'] != 'auto'))
- if columns and box.style['column_rule_width']:
- border_widths = (0, 0, 0, box.style['column_rule_width'])
- for child in get_columns_with_rule():
- with stacked(stream):
- gap = percentage(box.style['column_gap'], box.width)
- position_x = (child.position_x - (
- box.style['column_rule_width'] + gap) / 2)
- border_box = (
- position_x, child.position_y,
- box.style['column_rule_width'], child.height)
- clip_border_segment(
- stream, box.style['column_rule_style'],
- box.style['column_rule_width'], 'left', border_box,
- border_widths)
- draw_rect_border(
- stream, border_box, border_widths,
- box.style['column_rule_style'], styled_color(
- box.style['column_rule_style'],
- get_color(box.style, 'column_rule_color'), 'left'))
-
- # The box is hidden, easy.
- if box.style['visibility'] != 'visible':
- draw_column_border()
- return
+ continue
+ with stacked(stream):
+ gap = percentage(box.style['column_gap'], box.width)
+ position_x = (child.position_x - (
+ box.style['column_rule_width'] + gap) / 2)
+ border_box = (
+ position_x, child.position_y,
+ box.style['column_rule_width'], child.height)
+ clip_border_segment(
+ stream, box.style['column_rule_style'],
+ box.style['column_rule_width'], 'left', border_box,
+ border_widths)
+ draw_rect_border(
+ stream, border_box, border_widths,
+ box.style['column_rule_style'], styled_color(
+ box.style['column_rule_style'],
+ get_color(box.style, 'column_rule_color'), 'left'))
# If there's a border image, that takes precedence.
if box.style['border_image_source'][0] != 'none' and box.border_image is not None:
draw_border_image(box, stream)
- draw_column_border()
return
widths = [getattr(box, f'border_{side}_width') for side in SIDES]
- # No border, return early.
- if all(width == 0 for width in widths):
- draw_column_border()
+ if set(widths) == {0}:
+ # No border, return early.
return
colors = [get_color(box.style, f'border_{side}_color') for side in SIDES]
@@ -465,14 +455,15 @@
colors[i].alpha and box.style[f'border_{side}_style']
for (i, side) in enumerate(SIDES)]
- # The 4 sides are solid or double, and they have the same color. Oh yeah!
- # We can draw them so easily!
- if set(styles) in (set(('solid',)), set(('double',))) and (len(set(colors)) == 1):
+ simple_style = set(styles) in ({'solid'}, {'double'}) # one style, simple lines
+ single_color = len(set(colors)) == 1 # one color
+ four_sides = 0 not in widths # no 0-width border, to avoid PDF artifacts
+ if simple_style and single_color and four_sides:
+ # Simple case, we only draw rounded rectangles.
draw_rounded_border(stream, box, styles[0], colors[0])
- draw_column_border()
return
- # We're not smart enough to find a good way to draw the borders :/. We must
+ # We're not smart enough to find a good way to draw the borders, we must
# draw them side by side. Order is not specified, but this one seems to be
# close to what other browsers do.
values = tuple(zip(SIDES, widths, colors, styles))
@@ -487,8 +478,6 @@
draw_rounded_border(
stream, box, style, styled_color(style, color, side))
- draw_column_border()
-
def draw_border_image(box, stream):
"""Draw ``box`` border image on ``stream``."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/layout/__init__.py new/weasyprint-62.3/weasyprint/layout/__init__.py
--- old/weasyprint-62.2/weasyprint/layout/__init__.py 2024-04-29 21:13:11.555732300 +0200
+++ new/weasyprint-62.3/weasyprint/layout/__init__.py 2024-06-18 11:56:18.353362800 +0200
@@ -379,4 +379,6 @@
return overflow
else:
self.current_footnote_area.height = 0
+ if not self.in_column:
+ self.page_bottom -= self.current_footnote_area.margin_height()
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/layout/column.py new/weasyprint-62.3/weasyprint/layout/column.py
--- old/weasyprint-62.2/weasyprint/layout/column.py 2024-05-27 10:15:26.147362700 +0200
+++ new/weasyprint-62.3/weasyprint/layout/column.py 2024-06-18 11:56:18.354363000 +0200
@@ -306,6 +306,7 @@
containing_block, original_page_is_empty, absolute_boxes,
fixed_boxes, None, discard=False, max_lines=None))
if new_child is None:
+ columns = []
break_page = True
break
next_page = column_next_page
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/layout/grid.py new/weasyprint-62.3/weasyprint/layout/grid.py
--- old/weasyprint-62.2/weasyprint/layout/grid.py 2024-06-03 16:31:53.664926500 +0200
+++ new/weasyprint-62.3/weasyprint/layout/grid.py 2024-06-21 11:06:07.022056600 +0200
@@ -658,7 +658,6 @@
second_flow = 'row' if 'column' in flow else 'column' # other axis
first_tracks = rows if first_flow == 'row' else columns
second_tracks = rows if second_flow == 'row' else columns
- auto_tracks = auto_rows if first_flow == 'row' else auto_columns
# 1.1 Position anything that’s not auto-positioned.
children_positions = {}
@@ -797,10 +796,7 @@
break
first_diff = first_i + first_size - implicit_first_2
if first_diff > 0:
- for _ in range(first_diff):
- first_tracks.append(next(auto_tracks))
- first_tracks.append([])
- implicit_first_2 = first_i + first_size
+ implicit_first_2 += first_diff
# 3. Set the item’s row-start line.
if first_flow == 'row':
x, y = second_i, first_i
@@ -842,8 +838,9 @@
width, height = first_size, second_size
intersect = _intersect_with_children(
x, y, width, height, children_positions.values())
- if intersect:
- # Child intersects with a positioned child.
+ overflow = second_i + second_size > implicit_second_2
+ if intersect or overflow:
+ # Child intersects with a positioned child or overflows.
continue
else:
# Free place found.
@@ -911,10 +908,7 @@
break
first_diff = first_i + first_size - implicit_first_2
if first_diff > 0:
- for _ in range(first_diff):
- first_tracks.append(next(auto_tracks))
- first_tracks.append([])
- implicit_first_2 = y + height
+ implicit_first_2 += first_diff
# 3. Set the item’s row-start line.
children_positions[child] = (x, y, width, height)
else:
@@ -947,8 +941,9 @@
width, height = first_size, second_size
intersect = _intersect_with_children(
x, y, width, height, children_positions.values())
- if intersect:
- # Child intersects with a positioned child.
+ overflow = second_i + second_size > implicit_second_2
+ if intersect or overflow:
+ # Child intersects with a positioned child or overflows.
continue
else:
# Free place found.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/layout/table.py new/weasyprint-62.3/weasyprint/layout/table.py
--- old/weasyprint-62.2/weasyprint/layout/table.py 2024-06-04 16:04:12.746271600 +0200
+++ new/weasyprint-62.3/weasyprint/layout/table.py 2024-06-21 17:37:15.491403300 +0200
@@ -7,7 +7,7 @@
from ..formatting_structure import boxes
from ..logger import LOGGER
from .percent import resolve_one_percentage, resolve_percentages
-from .preferred import max_content_width, table_and_columns_preferred_widths
+from .preferred import table_and_columns_preferred_widths
def table_layout(context, table, bottom_space, skip_stack, containing_block,
@@ -797,19 +797,9 @@
else:
table.column_widths = max_content_guess
excess_width = assignable_width - sum(max_content_guess)
- excess_width = distribute_excess_width(
+ distribute_excess_width(
context, grid, excess_width, table.column_widths, constrainedness,
column_intrinsic_percentages, column_max_content_widths)
- if excess_width:
- if table_min_content_width < table.width - excess_width:
- # Reduce the width of the size from the excess width that has
- # not been distributed.
- table.width -= excess_width
- else:
- # Break rules
- columns = [i for i, column in enumerate(grid) if any(column)]
- for i in columns:
- table.column_widths[i] += excess_width / len(columns)
def table_wrapper_width(context, wrapper, containing_block):
@@ -866,38 +856,26 @@
column_slice=slice(0, None)):
"""Distribute available width to columns.
- Return excess width left when it's impossible without breaking rules.
-
- See https://dbaron.org/css/intrinsic/#distributetocols
+ See https://www.w3.org/TR/css-tables-3/#distributing-width-to-columns
"""
# First group
columns = [
- (i + column_slice.start, column)
- for i, column in enumerate(grid[column_slice])
- if not constrainedness[i + column_slice.start] and
- column_intrinsic_percentages[i + column_slice.start] == 0 and
- column_max_content_widths[i + column_slice.start] > 0]
+ i for i, _ in enumerate(grid[column_slice], start=column_slice.start)
+ if not constrainedness[i] and
+ column_intrinsic_percentages[i] == 0 and
+ column_max_content_widths[i] > 0]
if columns:
- current_widths = [column_widths[i] for i, column in columns]
- differences = [
- max(0, width[0] - width[1])
- for width in zip(column_max_content_widths, current_widths)]
- if sum(differences) > excess_width:
- differences = [
- difference / sum(differences) * excess_width
- for difference in differences]
- excess_width -= sum(differences)
- for i, difference in enumerate(differences):
- column_widths[columns[i][0]] += difference
- if excess_width <= 0:
+ sum_max_content_widths = sum(column_max_content_widths[i] for i in columns)
+ ratio = excess_width / sum_max_content_widths
+ for i in columns:
+ column_widths[i] += column_max_content_widths[i] * ratio
return
# Second group
columns = [
- i + column_slice.start for i, column in enumerate(grid[column_slice])
- if not constrainedness[i + column_slice.start] and
- column_intrinsic_percentages[i + column_slice.start] == 0]
+ i for i, _ in enumerate(grid[column_slice], start=column_slice.start)
+ if not constrainedness[i] and column_intrinsic_percentages[i] == 0]
if columns:
for i in columns:
column_widths[i] += excess_width / len(columns)
@@ -905,85 +883,42 @@
# Third group
columns = [
- (i + column_slice.start, column)
- for i, column in enumerate(grid[column_slice])
- if constrainedness[i + column_slice.start] and
- column_intrinsic_percentages[i + column_slice.start] == 0 and
- column_max_content_widths[i + column_slice.start] > 0]
+ i for i, _ in enumerate(grid[column_slice], start=column_slice.start)
+ if constrainedness[i] and
+ column_intrinsic_percentages[i] == 0 and
+ column_max_content_widths[i] > 0]
if columns:
- current_widths = [column_widths[i] for i, column in columns]
- differences = [
- max(0, width[0] - width[1])
- for width in zip(column_max_content_widths, current_widths)]
- if sum(differences) > excess_width:
- differences = [
- difference / sum(differences) * excess_width
- for difference in differences]
- excess_width -= sum(differences)
- for i, difference in enumerate(differences):
- column_widths[columns[i][0]] += difference
- if excess_width <= 0:
+ sum_max_content_widths = sum(column_max_content_widths[i] for i in columns)
+ ratio = excess_width / sum_max_content_widths
+ for i in columns:
+ column_widths[i] += column_max_content_widths[i] * ratio
return
# Fourth group
columns = [
- (i + column_slice.start, column)
- for i, column in enumerate(grid[column_slice])
- if column_intrinsic_percentages[i + column_slice.start] > 0]
+ i for i, _ in enumerate(grid[column_slice], start=column_slice.start)
+ if column_intrinsic_percentages[i] > 0 and column_max_content_widths[i] > 0]
if columns:
- fixed_width = sum(
- column_widths[j] for j in range(len(grid))
- if j not in [i for i, column in columns])
- percentage_width = sum(
- column_intrinsic_percentages[i]
- for i, column in columns)
- if fixed_width and percentage_width >= 100:
- # Sum of the percentages are greater than 100%
- ratio = excess_width
- elif fixed_width == 0:
- # No fixed width, let's take the whole excess width
- ratio = excess_width
- else:
- ratio = fixed_width / (100 - percentage_width)
-
- widths = [
- column_intrinsic_percentages[i] * ratio for i, column in columns]
- current_widths = [column_widths[i] for i, column in columns]
- # Allow to reduce the size of the columns to respect the percentage
- differences = [
- width[0] - width[1]
- for width in zip(widths, current_widths)]
- if sum(differences) > excess_width:
- differences = [
- difference / sum(differences) * excess_width
- for difference in differences]
- excess_width -= sum(differences)
- for i, difference in enumerate(differences):
- column_widths[columns[i][0]] += difference
- if excess_width <= 0:
+ sum_intrinsic_percentages = sum(
+ column_intrinsic_percentages[i] for i in columns)
+ ratio = excess_width / sum_intrinsic_percentages
+ for i in columns:
+ column_widths[i] += column_intrinsic_percentages[i] * ratio
return
- # Bonus: we've tried our best to distribute the extra size, but we
- # failed. Instead of blindly distributing the size among all the colums
- # and breaking all the rules (as said in the draft), let's try to
- # change the columns with no constraint at all, then resize the table,
- # and at least break the rules to make the columns fill the table.
-
- # Fifth group, part 1
+ # Fifth group
columns = [
- i + column_slice.start for i, column in enumerate(grid[column_slice])
- if any(column) and
- column_intrinsic_percentages[i + column_slice.start] == 0 and
- not any(
- max_content_width(context, cell)
- for cell in column if cell)]
+ i for i, column in enumerate(grid[column_slice], start=column_slice.start)
+ if column]
if columns:
for i in columns:
column_widths[i] += excess_width / len(columns)
return
- # Fifth group, part 2, aka abort
- return excess_width
+ # Sixth group
+ columns = [i for i, _ in enumerate(grid[column_slice], start=column_slice.start)]
+ for i in columns:
+ column_widths[i] += excess_width / len(columns)
TRANSPARENT = tinycss2.color3.parse_color('transparent')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/pdf/pdfa.py new/weasyprint-62.3/weasyprint/pdf/pdfa.py
--- old/weasyprint-62.2/weasyprint/pdf/pdfa.py 2024-04-29 21:13:11.558732300 +0200
+++ new/weasyprint-62.3/weasyprint/pdf/pdfa.py 2024-06-18 11:56:18.357363000 +0200
@@ -86,6 +86,9 @@
pdf_object['F'] = 2 ** (3 - 1)
# Common PDF metadata stream.
+ if version == 1:
+ # Metadata compression is forbidden for version 1.
+ compress = False
add_metadata(pdf, metadata, 'a', version, variant, compress)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/weasyprint-62.2/weasyprint/text/fonts.py new/weasyprint-62.3/weasyprint/text/fonts.py
--- old/weasyprint-62.2/weasyprint/text/fonts.py 2024-05-27 10:15:26.150362700 +0200
+++ new/weasyprint-62.3/weasyprint/text/fonts.py 2024-06-21 17:37:15.492403500 +0200
@@ -117,12 +117,13 @@
features_string = ''.join(
f'<string>{key} {value}</string>'
for key, value in font_features(**features).items())
- fontconfig_style = FONTCONFIG_STYLE[
- rule_descriptors.get('font_style', 'normal')]
- fontconfig_weight = FONTCONFIG_WEIGHT[
- rule_descriptors.get('font_weight', 'normal')]
- fontconfig_stretch = FONTCONFIG_STRETCH[
- rule_descriptors.get('font_stretch', 'normal')]
+ fontconfig_style = fontconfig_weight = fontconfig_stretch = None
+ if 'font_style' in rule_descriptors:
+ fontconfig_style = FONTCONFIG_STYLE[rule_descriptors['font_style']]
+ if 'font_weight' in rule_descriptors:
+ fontconfig_weight = FONTCONFIG_WEIGHT[rule_descriptors['font_weight']]
+ if 'font_stretch' in rule_descriptors:
+ fontconfig_stretch = FONTCONFIG_STRETCH[rule_descriptors['font_stretch']]
config_key = (
f'{rule_descriptors["font_family"]}-{fontconfig_style}-'
f'{fontconfig_weight}-{features_string}').encode()
@@ -213,7 +214,7 @@
font_path.write_bytes(font)
xml_path = self._folder / f'{config_digest}.xml'
- xml_path.write_text(f'''<?xml version="1.0"?>
+ xml = ''.join((f'''<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="scan">
@@ -222,16 +223,23 @@
</test>
<edit name="family" mode="assign_replace">
<string>{rule_descriptors['font_family']}</string>
- </edit>
+ </edit>''',
+ f'''
<edit name="slant" mode="assign_replace">
<const>{fontconfig_style}</const>
</edit>
+ ''' if fontconfig_style else '',
+ f'''
<edit name="weight" mode="assign_replace">
<int>{fontconfig_weight}</int>
</edit>
+ ''' if fontconfig_weight else '',
+ f'''
<edit name="width" mode="assign_replace">
<const>{fontconfig_stretch}</const>
</edit>
+ ''' if fontconfig_stretch else '',
+ f'''
</match>
<match target="font">
<test name="file" compare="eq">
@@ -240,7 +248,8 @@
<edit name="fontfeatures"
mode="assign_replace">{features_string}</edit>
</match>
- </fontconfig>''')
+ </fontconfig>'''))
+ xml_path.write_text(xml)
# TODO: We should mask local fonts with the same name
# too as explained in Behdad's blog entry.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package zola for openSUSE:Factory checked in at 2024-07-01 11:20:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zola (Old)
and /work/SRC/openSUSE:Factory/.zola.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zola"
Mon Jul 1 11:20:58 2024 rev:11 rq:1184072 version:0.19.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/zola/zola.changes 2023-12-19 23:16:08.534210347 +0100
+++ /work/SRC/openSUSE:Factory/.zola.new.18349/zola.changes 2024-07-01 11:21:39.341870011 +0200
@@ -1,0 +2,25 @@
+Sat Jun 29 10:38:37 UTC 2024 - Soc Virnyl Estela <obs(a)uncomfyhalomacro.pl>
+
+- Make sure rust version is higher than 1.77
+
+-------------------------------------------------------------------
+Sat Jun 29 10:33:33 UTC 2024 - Soc Virnyl Estela <obs(a)uncomfyhalomacro.pl>
+
+- Update to version 0.19.1:
+ * Fix `config.generate_feeds` being still serialized as `config.generate_feed`. Both are available for now
+ * Fix `zola serve` not reacting to changes on some OSes
+ * Updates the pulldown-cmark dependency to v0.11.0. This improves footnote handling, and may also introduce some minor behavior changes such as reducing the amount of unnecessary HTML-escaping of text content.
+ * Add bottom footnotes with backreference option
+ * Fix link check report inconsistency
+ * Fix resizing for images with EXIF orientation
+ * Add MIME type to get_image_metadata
+ * Fix hot loading for config.toml in some cases
+ * Add `render = false` capability to pages
+ * Handle string dates in YAML front-matter
+ * Add support for fuse.js search format
+ * Added support for generating multiple kinds of feeds at once
+ * Changed config options named `generate_feed` to `generate_feeds` (both in config.toml and in section front-matter)
+ * Changed config option `feed_filename: String` to `feed_filenames: Vec<String>`
+ * The config file no longer allows arbitrary fields outside the `[extra]` section
+
+-------------------------------------------------------------------
Old:
----
zola-0.18.0.tar.gz
New:
----
zola-0.19.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zola.spec ++++++
--- /var/tmp/diff_new_pack.0SkOXu/_old 2024-07-01 11:21:40.185900760 +0200
+++ /var/tmp/diff_new_pack.0SkOXu/_new 2024-07-01 11:21:40.185900760 +0200
@@ -1,7 +1,7 @@
#
# spec file for package zola
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: zola
-Version: 0.18.0
+Version: 0.19.1
Release: 0
Summary: Fast static site generator
License: MIT
@@ -26,6 +26,7 @@
Source1: vendor.tar.zst
BuildRequires: c++_compiler
BuildRequires: c_compiler
+BuildRequires: cargo > 1.77
BuildRequires: cargo-packaging
BuildRequires: libgcc_s1
BuildRequires: pkg-config
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/zola/vendor.tar.zst /work/SRC/openSUSE:Factory/.zola.new.18349/vendor.tar.zst differ: char 7, line 1
++++++ zola-0.18.0.tar.gz -> zola-0.19.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/zola/zola-0.18.0.tar.gz /work/SRC/openSUSE:Factory/.zola.new.18349/zola-0.19.1.tar.gz differ: char 18, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package axel for openSUSE:Factory checked in at 2024-07-01 11:20:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/axel (Old)
and /work/SRC/openSUSE:Factory/.axel.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "axel"
Mon Jul 1 11:20:57 2024 rev:14 rq:1184068 version:2.17.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/axel/axel.changes 2024-03-18 16:46:57.952285520 +0100
+++ /work/SRC/openSUSE:Factory/.axel.new.18349/axel.changes 2024-07-01 11:21:28.589478306 +0200
@@ -1,0 +2,11 @@
+Sun Jun 30 03:26:06 UTC 2024 - jun wang <jgwang(a)suse.com>
+
+- Update to version 2.17.14
+ * Remove inclusion of <stdatomic.h>
+ * configure: Fix handling of --with-ssl=yes
+ * conn: Fix potential buffer overrun
+ * http: Fix filename parsing from Content-Disposition
+ * configure: Force C89-compliant return type of signal handlers
+ * configure: Update to autoconf 2.72
+
+-------------------------------------------------------------------
Old:
----
axel-2.17.13.tar.xz
New:
----
axel-2.17.14.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ axel.spec ++++++
--- /var/tmp/diff_new_pack.7Bh5gC/_old 2024-07-01 11:21:29.053495210 +0200
+++ /var/tmp/diff_new_pack.7Bh5gC/_new 2024-07-01 11:21:29.057495356 +0200
@@ -19,7 +19,7 @@
%{!?license: %global license %doc}
%{!?make_build: %global make_build make %{?_smp_mflags}}
Name: axel
-Version: 2.17.13
+Version: 2.17.14
Release: 0
Summary: Lightweight Download Accelerator
License: GPL-2.0-or-later
++++++ axel-2.17.13.tar.xz -> axel-2.17.14.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/ChangeLog new/axel-2.17.14/ChangeLog
--- old/axel-2.17.13/ChangeLog 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/ChangeLog 2024-04-08 00:55:52.000000000 +0200
@@ -1,3 +1,19 @@
+Version: 2.17.14, 2024-04-07
+
+ [ Ismael Luceno ]
+
+* Remove inclusion of <stdatomic.h>
+* configure: Fix handling of --with-ssl=yes
+* configure: Force C89-compliant return type of signal handlers
+* configure: Update to autoconf 2.72
+* conn: Fix potential buffer overrun
+
+ [ Peng-Yu Chen ]
+
+* http: Fix filename parsing from Content-Disposition
+
+
+
Version: 2.17.13, 2024-02-06
[ Ismael Luceno ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/VERSION new/axel-2.17.14/VERSION
--- old/axel-2.17.13/VERSION 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/VERSION 2024-04-08 00:55:52.000000000 +0200
@@ -1 +1 @@
-2.17.13 2024-02-06T12:30:10Z
+2.17.14 2024-04-07T22:55:52Z
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/aclocal.m4 new/axel-2.17.14/aclocal.m4
--- old/axel-2.17.13/aclocal.m4 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/aclocal.m4 2024-04-08 00:55:52.000000000 +0200
@@ -2234,7 +2234,7 @@
dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
-# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott(a)netsplit.com>.
@@ -2322,7 +2322,7 @@
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-dnl only at the first occurence in configure.ac, so if the first place
+dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
@@ -2391,14 +2391,14 @@
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
- m4_default([$4], [AC_MSG_ERROR(
+ m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@@ -2410,7 +2410,7 @@
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
- m4_default([$4], [AC_MSG_FAILURE(
+ m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -2420,10 +2420,10 @@
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
- $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
- $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
- $3
+ $3
fi[]dnl
])dnl PKG_CHECK_MODULES
@@ -2510,6 +2510,74 @@
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+ [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+ [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+ [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+ [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+ [auto],[PKG_CHECK_MODULES([$1],[$2],
+ [m4_n([def_action_if_found]) $3],
+ [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/build-aux/config.guess new/axel-2.17.14/build-aux/config.guess
--- old/axel-2.17.13/build-aux/config.guess 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/build-aux/config.guess 2024-04-08 00:55:52.000000000 +0200
@@ -1,14 +1,14 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2021 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2021-06-03'
+timestamp='2023-08-22'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -47,7 +47,7 @@
usage="\
Usage: $0 [OPTION]
-Output the configuration name of the system \`$me' is run on.
+Output the configuration name of the system '$me' is run on.
Options:
-h, --help print this help, then exit
@@ -60,13 +60,13 @@
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -102,8 +102,8 @@
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
+# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
+# use 'HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
@@ -155,6 +155,9 @@
set_cc_for_build
cat <<-EOF > "$dummy.c"
+ #if defined(__ANDROID__)
+ LIBC=android
+ #else
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
@@ -169,6 +172,7 @@
LIBC=musl
#endif
#endif
+ #endif
EOF
cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
eval "$cc_set_libc"
@@ -437,7 +441,7 @@
# This test works for both compilers.
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
@@ -459,7 +463,7 @@
UNAME_RELEASE=`uname -v`
;;
esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
+ # Japanese Language versions have a version number like '4.1.3-JL'.
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
GUESS=sparc-sun-sunos$SUN_REL
;;
@@ -904,7 +908,7 @@
fi
;;
*:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
amd64)
UNAME_PROCESSOR=x86_64 ;;
@@ -929,6 +933,9 @@
i*:PW*:*)
GUESS=$UNAME_MACHINE-pc-pw32
;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
*:Interix*:*)
case $UNAME_MACHINE in
x86)
@@ -963,11 +970,37 @@
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
;;
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+ ;;
+ *:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+ ;;
*:Minix:*:*)
GUESS=$UNAME_MACHINE-unknown-minix
;;
aarch64:Linux:*:*)
- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __ARM_EABI__
+ #ifdef __ARM_PCS_VFP
+ ABI=eabihf
+ #else
+ ABI=eabi
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+ esac
+ fi
+ GUESS=$CPU-unknown-linux-$LIBCABI
;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
@@ -1033,7 +1066,16 @@
k1om:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
- loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+ kvx:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:cos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-cos
+ ;;
+ kvx:mbr:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mbr
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
m32r*:Linux:*:*)
@@ -1148,16 +1190,27 @@
;;
x86_64:Linux:*:*)
set_cc_for_build
+ CPU=$UNAME_MACHINE
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
- if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_X32 >/dev/null
- then
- LIBCABI=${LIBC}x32
- fi
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
fi
- GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+ GUESS=$CPU-pc-linux-$LIBCABI
;;
xtensa*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
@@ -1177,7 +1230,7 @@
GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
;;
i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
+ # If we were able to find 'uname', then EMX Unix compatibility
# is probably installed.
GUESS=$UNAME_MACHINE-pc-os2-emx
;;
@@ -1318,7 +1371,7 @@
GUESS=ns32k-sni-sysv
fi
;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel(a)ccMail.Census.GOV>
GUESS=i586-unisys-sysv4
;;
@@ -1364,8 +1417,11 @@
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
GUESS=i586-pc-haiku
;;
- x86_64:Haiku:*:*)
- GUESS=x86_64-unknown-haiku
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
;;
SX-4:SUPER-UX:*:*)
GUESS=sx4-nec-superux$UNAME_RELEASE
@@ -1522,6 +1578,9 @@
i*86:rdos:*:*)
GUESS=$UNAME_MACHINE-pc-rdos
;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
*:AROS:*:*)
GUESS=$UNAME_MACHINE-unknown-aros
;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/build-aux/config.sub new/axel-2.17.14/build-aux/config.sub
--- old/axel-2.17.13/build-aux/config.sub 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/build-aux/config.sub 2024-04-08 00:55:52.000000000 +0200
@@ -1,14 +1,14 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2021 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2021-07-03'
+timestamp='2023-09-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -76,13 +76,13 @@
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2021 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -121,14 +121,16 @@
# Split fields of configuration type
# shellcheck disable=SC2162
+saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
+IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
*-*-*-*-*)
- echo Invalid configuration \`"$1"\': more than four components >&2
+ echo "Invalid configuration '$1': more than four components" >&2
exit 1
;;
*-*-*-*)
@@ -139,11 +141,12 @@
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os=$field2-$field3
- case $maybe_os in
+ case $maybe_os in linux-musl*|\
nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
- | storm-chaos* | os2-emx* | rtmk-nova*)
+ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+ | windows-* )
basic_machine=$field1
basic_os=$maybe_os
;;
@@ -172,6 +175,10 @@
basic_machine=$field1
basic_os=$field2
;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -931,11 +938,13 @@
*-*)
# shellcheck disable=SC2162
+ saved_IFS=$IFS
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
+ IFS=$saved_IFS
;;
- # We use `pc' rather than `unknown'
+ # We use 'pc' rather than 'unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
@@ -1012,6 +1021,11 @@
;;
# Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
@@ -1062,7 +1076,7 @@
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
;;
- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
cpu=i686
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1113,7 +1127,7 @@
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- arm64-*)
+ arm64-* | aarch64le-*)
cpu=aarch64
;;
@@ -1167,7 +1181,7 @@
case $cpu in
1750a | 580 \
| a29k \
- | aarch64 | aarch64_be \
+ | aarch64 | aarch64_be | aarch64c | arm64ec \
| abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
@@ -1186,45 +1200,23 @@
| d10v | d30v | dlx | dsp16xx \
| e2k | elxsi | epiphany \
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | javascript \
| h8300 | h8500 \
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
+ | kvx \
| le32 | le64 \
| lm32 \
- | loongarch32 | loongarch64 | loongarchx32 \
+ | loongarch32 | loongarch64 \
| m32c | m32r | m32rle \
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64eb | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r3 | mipsisa32r3el \
- | mipsisa32r5 | mipsisa32r5el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r3 | mipsisa64r3el \
- | mipsisa64r5 | mipsisa64r5el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
+ | mips* \
| mmix \
| mn10200 | mn10300 \
| moxie \
@@ -1272,7 +1264,7 @@
;;
*)
- echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
exit 1
;;
esac
@@ -1293,11 +1285,12 @@
# Decode manufacturer-specific aliases for certain operating systems.
-if test x$basic_os != x
+if test x"$basic_os" != x
then
-# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# set os.
+obj=
case $basic_os in
gnu/linux*)
kernel=linux
@@ -1313,9 +1306,11 @@
;;
*-*)
# shellcheck disable=SC2162
+ saved_IFS=$IFS
IFS="-" read kernel os <<EOF
$basic_os
EOF
+ IFS=$saved_IFS
;;
# Default OS when just kernel was specified
nto*)
@@ -1326,6 +1321,10 @@
kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;;
+ managarm*)
+ kernel=managarm
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
*)
kernel=
os=$basic_os
@@ -1491,10 +1490,16 @@
os=eabi
;;
*)
- os=elf
+ os=
+ obj=elf
;;
esac
;;
+ aout* | coff* | elf* | pe*)
+ # These are machine code file formats, not OSes
+ obj=$os
+ os=
+ ;;
*)
# No normalization, but not necessarily accepted, that comes below.
;;
@@ -1513,12 +1518,15 @@
# system, and we'll never get to this point.
kernel=
+obj=
case $cpu-$vendor in
score-*)
- os=elf
+ os=
+ obj=elf
;;
spu-*)
- os=elf
+ os=
+ obj=elf
;;
*-acorn)
os=riscix1.2
@@ -1528,28 +1536,35 @@
os=gnu
;;
arm*-semi)
- os=aout
+ os=
+ obj=aout
;;
c4x-* | tic4x-*)
- os=coff
+ os=
+ obj=coff
;;
c8051-*)
- os=elf
+ os=
+ obj=elf
;;
clipper-intergraph)
os=clix
;;
hexagon-*)
- os=elf
+ os=
+ obj=elf
;;
tic54x-*)
- os=coff
+ os=
+ obj=coff
;;
tic55x-*)
- os=coff
+ os=
+ obj=coff
;;
tic6x-*)
- os=coff
+ os=
+ obj=coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1571,19 +1586,24 @@
os=sunos3
;;
m68*-cisco)
- os=aout
+ os=
+ obj=aout
;;
mep-*)
- os=elf
+ os=
+ obj=elf
;;
mips*-cisco)
- os=elf
+ os=
+ obj=elf
;;
mips*-*)
- os=elf
+ os=
+ obj=elf
;;
or32-*)
- os=coff
+ os=
+ obj=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=sysv3
@@ -1592,7 +1612,8 @@
os=sunos4.1.1
;;
pru-*)
- os=elf
+ os=
+ obj=elf
;;
*-be)
os=beos
@@ -1673,10 +1694,12 @@
os=uxpv
;;
*-rom68k)
- os=coff
+ os=
+ obj=coff
;;
*-*bug)
- os=coff
+ os=
+ obj=coff
;;
*-apple)
os=macos
@@ -1694,10 +1717,11 @@
fi
-# Now, validate our (potentially fixed-up) OS.
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
case $os in
# Sometimes we do "kernel-libc", so those need to count as OSes.
- musl* | newlib* | uclibc*)
+ musl* | newlib* | relibc* | uclibc*)
;;
# Likewise for "kernel-abi"
eabi* | gnueabi*)
@@ -1705,6 +1729,9 @@
# VxWorks passes extra cpu info in the 4th filed.
simlinux | simwindows | spe)
;;
+ # See `case $cpu-$os` validation below
+ ghcjs)
+ ;;
# Now accept the basic system types.
# The portable systems comes first.
# Each alternative MUST end in a * to match a version number.
@@ -1713,7 +1740,7 @@
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
| hiux* | abug | nacl* | netware* | windows* \
- | os9* | macos* | osx* | ios* \
+ | os9* | macos* | osx* | ios* | tvos* | watchos* \
| mpw* | magic* | mmixware* | mon960* | lnews* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
| aos* | aros* | cloudabi* | sortix* | twizzler* \
@@ -1722,11 +1749,11 @@
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
| bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | bosx* | nextstep* | cxux* | oabi* \
+ | ptx* | ecoff* | winnt* | domain* | vsta* \
| udi* | lites* | ieee* | go32* | aux* | hcos* \
| chorusrdb* | cegcc* | glidix* | serenity* \
- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | cygwin* | msys* | moss* | proelf* | rtems* \
| midipix* | mingw32* | mingw64* | mint* \
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
| interix* | uwin* | mks* | rhapsody* | darwin* \
@@ -1738,7 +1765,8 @@
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* | mlibc* | cos* | mbr* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1746,40 +1774,99 @@
;;
none)
;;
+ kernel* | msvc* )
+ # Restricted further below
+ ;;
+ '')
+ if test x"$obj" = x
+ then
+ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+ fi
+ ;;
*)
- echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+case $obj in
+ aout* | coff* | elf* | pe*)
+ ;;
+ '')
+ # empty is fine
+ ;;
+ *)
+ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+ # The "javascript-unknown-ghcjs" triple is used by GHC; we
+ # accept it here in order to tolerate that, but reject any
+ # variations.
+ javascript-ghcjs)
+ ;;
+ javascript-* | *-ghcjs)
+ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
exit 1
;;
esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
-case $kernel-$os in
- linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+case $kernel-$os-$obj in
+ linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \
+ | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- )
+ ;;
+ uclinux-uclibc*- )
+ ;;
+ managarm-mlibc*- | managarm-kernel*- )
;;
- uclinux-uclibc* )
+ windows*-msvc*-)
;;
- -dietlibc* | -newlib* | -musl* | -uclibc* )
+ -dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
- echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
exit 1
;;
- kfreebsd*-gnu* | kopensolaris*-gnu*)
+ -kernel*- )
+ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
+ exit 1
;;
- vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ *-kernel*- )
+ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
+ exit 1
;;
- nto-qnx*)
+ *-msvc*- )
+ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+ exit 1
;;
- os2-emx)
+ kfreebsd*-gnu*- | kopensolaris*-gnu*-)
+ ;;
+ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
+ ;;
+ nto-qnx*-)
+ ;;
+ os2-emx-)
;;
- *-eabi* | *-gnueabi*)
+ *-eabi*- | *-gnueabi*-)
;;
- -*)
+ none--*)
+ # None (no kernel, i.e. freestanding / bare metal),
+ # can be paired with an machine code file format
+ ;;
+ -*-)
# Blank kernel with real OS is always fine.
;;
- *-*)
- echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ --*)
+ # Blank kernel and OS with real machine code file format is always fine.
+ ;;
+ *-*-*)
+ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
exit 1
;;
esac
@@ -1862,7 +1949,7 @@
;;
esac
-echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
exit
# Local variables:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/build-aux/install-sh new/axel-2.17.14/build-aux/install-sh
--- old/axel-2.17.13/build-aux/install-sh 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/build-aux/install-sh 2024-04-08 00:55:52.000000000 +0200
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2020-11-14.01; # UTC
+scriptversion=2023-11-23.18; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -124,9 +124,9 @@
If -S is not specified, no backups are attempted.
-Email bug reports to bug-automake(a)gnu.org.
-Automake home page: https://www.gnu.org/software/automake/
-"
+Report bugs to <bug-automake(a)gnu.org>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
while test $# -ne 0; do
case $1 in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/config.h.in new/axel-2.17.14/config.h.in
--- old/axel-2.17.13/config.h.in 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/config.h.in 2024-04-08 00:55:52.000000000 +0200
@@ -214,9 +214,6 @@
your system. */
#undef PTHREAD_CREATE_JOINABLE
-/* Define as the return type of signal handlers ('int' or 'void'). */
-#undef RETSIGTYPE
-
/* Define to 1 if all of the C89 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/configure new/axel-2.17.14/configure
--- old/axel-2.17.13/configure 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/configure 2024-04-08 00:55:52.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for axel 2.17.13.
+# Generated by GNU Autoconf 2.72 for axel 2.17.14.
#
# Report bugs to <https://github.com/axel-download-accelerator/axel/issues>.
#
@@ -615,8 +615,8 @@
# Identity of this package.
PACKAGE_NAME='axel'
PACKAGE_TARNAME='axel'
-PACKAGE_VERSION='2.17.13'
-PACKAGE_STRING='axel 2.17.13'
+PACKAGE_VERSION='2.17.14'
+PACKAGE_STRING='axel 2.17.14'
PACKAGE_BUGREPORT='https://github.com/axel-download-accelerator/axel/issues'
PACKAGE_URL=''
@@ -1362,7 +1362,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures axel 2.17.13 to adapt to many kinds of systems.
+'configure' configures axel 2.17.14 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1433,7 +1433,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of axel 2.17.13:";;
+ short | recursive ) echo "Configuration of axel 2.17.14:";;
esac
cat <<\_ACEOF
@@ -1554,7 +1554,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-axel configure 2.17.13
+axel configure 2.17.14
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2082,7 +2082,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by axel $as_me 2.17.13, which was
+It was created by axel $as_me 2.17.14, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3400,7 +3400,7 @@
# Define the identity of the package.
PACKAGE='axel'
- VERSION='2.17.13'
+ VERSION='2.17.14'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6209,13 +6209,14 @@
fi
-
-if test "x$ac_cv_prog_cc_c99" = "xno"
-then :
+case $ac_prog_cc_stdc in #(
+ no|c89) :
as_fn_error $? "C99 compiler required" "$LINENO" 5
-
-fi
+ ;; #(
+ *) :
+ ;;
+esac
# Large file support
# Check whether --enable-largefile was given.
@@ -8613,6 +8614,7 @@
esac
fi
+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
printf %s "checking return type of signal handlers... " >&6; }
if test ${ac_cv_type_signal+y}
@@ -8644,10 +8646,12 @@
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
printf "%s\n" "$ac_cv_type_signal" >&6; }
+if test "x$ac_cv_type_signal" = xint
+then :
-printf "%s\n" "#define RETSIGTYPE $ac_cv_type_signal" >>confdefs.h
-
+ as_fn_error $? "return type of signal handlers is not compliant with C89" "$LINENO" 5
+fi
# Custom type checks and replacements
@@ -8858,6 +8862,10 @@
# Optional (but included-by-default) ssl support
+if test "x$with_ssl" = xyes
+then :
+ with_ssl=openssl
+fi
if test "x$with_ssl" != xno; then
WITH_SSL_TRUE=
WITH_SSL_FALSE='#'
@@ -9012,14 +9020,14 @@
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$with_ssl" 2>&1`
+ SSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$with_ssl" 2>&1`
else
- SSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$with_ssl" 2>&1`
+ SSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$with_ssl" 2>&1`
fi
- # Put the nasty error message in config.log where it belongs
- echo "$SSL_PKG_ERRORS" >&5
+ # Put the nasty error message in config.log where it belongs
+ echo "$SSL_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements ($with_ssl) were not met:
+ as_fn_error $? "Package requirements ($with_ssl) were not met:
$SSL_PKG_ERRORS
@@ -9032,7 +9040,7 @@
elif test $pkg_failed = untried; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
@@ -9045,8 +9053,8 @@
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See 'config.log' for more details" "$LINENO" 5; }
else
- SSL_CFLAGS=$pkg_cv_SSL_CFLAGS
- SSL_LIBS=$pkg_cv_SSL_LIBS
+ SSL_CFLAGS=$pkg_cv_SSL_CFLAGS
+ SSL_LIBS=$pkg_cv_SSL_LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
@@ -9055,7 +9063,7 @@
printf "%s\n" "#define HAVE_SSL 1" >>confdefs.h
case "$with_ssl" in #(
- openssl|yes) :
+ openssl) :
save_LIBS="$LIBS"
LIBS="$LIBS $SSL_LIBS"
@@ -11627,7 +11635,7 @@
;;
esac
fi
-RELDATE_PRETTY=$(pdate '2024-02-06T12:30:10Z' '+%B %e, %Y')
+RELDATE_PRETTY=$(pdate '2024-04-07T22:55:52Z' '+%B %e, %Y')
# etc path
@@ -12179,7 +12187,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by axel $as_me 2.17.13, which was
+This file was extended by axel $as_me 2.17.14, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12247,7 +12255,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-axel config.status 2.17.13
+axel config.status 2.17.14
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/configure.ac new/axel-2.17.14/configure.ac
--- old/axel-2.17.13/configure.ac 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/configure.ac 2024-04-08 00:55:52.000000000 +0200
@@ -10,7 +10,7 @@
This file is under the same license as Axel.
])
-AC_PREREQ([2.69])
+AC_PREREQ([2.72])
PKG_PREREQ([0.29])
m4_ifdef([AX_IS_RELEASE],, [
m4_fatal([autoconf-archive is required])
@@ -76,8 +76,7 @@
# Compiler checks
AC_PROG_CC
-AC_PROG_CC_C99
-AS_IF([test "x$ac_cv_prog_cc_c99" = "xno"], [
+AS_CASE([$ac_prog_cc_stdc], [no|c89], [
AC_MSG_ERROR([C99 compiler required])
])
@@ -145,7 +144,16 @@
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_MODE_T
-AC_TYPE_SIGNAL
+
+AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
+[AC_LANG_PROGRAM([#include <sys/types.h>
+#include <signal.h>
+], [return *(signal (0, 0)) (0) == 1;])],
+ [ac_cv_type_signal=int],
+ [ac_cv_type_signal=void])])
+AS_IF([test "x$ac_cv_type_signal" = xint], [
+ AC_MSG_ERROR([return type of signal handlers is not compliant with C89])
+])
# Custom type checks and replacements
AXEL_CHECK_TYPE([off_t], [sizeof(off_t) >= sizeof(int64_t)])
@@ -191,6 +199,7 @@
AXEL_CHECK_MACRO([O_NONBLOCK], [fcntl.h])
# Optional (but included-by-default) ssl support
+AS_IF([test "x$with_ssl" = xyes], [with_ssl=openssl])
AM_CONDITIONAL([WITH_SSL], [test "x$with_ssl" != xno])
AC_ARG_VAR([SSL_PREFIX], [installation prefix of the TLS/SSL library])
AS_IF([test "x$with_ssl" != xno], [
@@ -201,7 +210,7 @@
PKG_CHECK_MODULES([SSL], [$with_ssl])
AC_DEFINE([HAVE_SSL], [1], [SSL])
AS_CASE(["$with_ssl"],
- [openssl|yes], [
+ [openssl], [
save_LIBS="$LIBS"
LIBS="$LIBS $SSL_LIBS"
AC_REPLACE_FUNCS([ \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/doc/axel.1 new/axel-2.17.14/doc/axel.1
--- old/axel-2.17.13/doc/axel.1 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/doc/axel.1 2024-04-08 00:55:52.000000000 +0200
@@ -1,5 +1,5 @@
.\" Text automatically generated by txt2man
-.TH doc/axel 1 "December 20, 2021" "axel-2.17.11+g28169d" "lightweight command line download accelerator"
+.TH doc/axel 1 "April 8, 2024" "axel-2.17.14" "lightweight command line download accelerator"
.SH NAME
\fBaxel \fP- light command line download accelerator
\fB
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/axel.pot new/axel-2.17.14/po/axel.pot
--- old/axel-2.17.13/po/axel.pot 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/axel.pot 2024-04-08 00:55:52.000000000 +0200
@@ -185,7 +185,7 @@
msgid "Redirect loop detected.\n"
msgstr ""
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/de.po new/axel-2.17.14/po/de.po
--- old/axel-2.17.13/po/de.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/de.po 2024-04-08 00:55:52.000000000 +0200
@@ -212,7 +212,7 @@
msgid "Redirect loop detected.\n"
msgstr "Umleitungsschleife erkannt.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "Unbekannter Fehler"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/es.po new/axel-2.17.14/po/es.po
--- old/axel-2.17.13/po/es.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/es.po 2024-04-08 00:55:52.000000000 +0200
@@ -209,7 +209,7 @@
msgid "Redirect loop detected.\n"
msgstr "Bucle de redirección detectado.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "Error desconocido"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/id_ID.po new/axel-2.17.14/po/id_ID.po
--- old/axel-2.17.13/po/id_ID.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/id_ID.po 2024-04-08 00:55:52.000000000 +0200
@@ -208,7 +208,7 @@
msgid "Redirect loop detected.\n"
msgstr "Loop pengalihan terdeteksi.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/it.po new/axel-2.17.14/po/it.po
--- old/axel-2.17.13/po/it.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/it.po 2024-04-08 00:55:52.000000000 +0200
@@ -211,7 +211,7 @@
msgid "Redirect loop detected.\n"
msgstr "Rilevato ciclo di reindirizzamento.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "Errore sconosciuto"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/ja.po new/axel-2.17.14/po/ja.po
--- old/axel-2.17.13/po/ja.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/ja.po 2024-04-08 00:55:52.000000000 +0200
@@ -207,7 +207,7 @@
msgid "Redirect loop detected.\n"
msgstr "リダイレクションループが検出されました。\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/ka.po new/axel-2.17.14/po/ka.po
--- old/axel-2.17.13/po/ka.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/ka.po 2024-04-08 00:55:52.000000000 +0200
@@ -202,7 +202,7 @@
msgid "Redirect loop detected.\n"
msgstr "აღმოჩენილია გადამისამართების ციკლი.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "უცნობი შეცდომა"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/nl.po new/axel-2.17.14/po/nl.po
--- old/axel-2.17.13/po/nl.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/nl.po 2024-04-08 00:55:52.000000000 +0200
@@ -206,7 +206,7 @@
msgid "Redirect loop detected.\n"
msgstr "Omleidingslus gedetecteerd.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/pt_BR.po new/axel-2.17.14/po/pt_BR.po
--- old/axel-2.17.13/po/pt_BR.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/pt_BR.po 2024-04-08 00:55:52.000000000 +0200
@@ -211,7 +211,7 @@
msgid "Redirect loop detected.\n"
msgstr "Ciclo de redirecionamento detectado.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "Erro desconhecido"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/ru.po new/axel-2.17.14/po/ru.po
--- old/axel-2.17.13/po/ru.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/ru.po 2024-04-08 00:55:52.000000000 +0200
@@ -203,7 +203,7 @@
msgid "Redirect loop detected.\n"
msgstr "Обнаружена петля перенаправления.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/tr.po new/axel-2.17.14/po/tr.po
--- old/axel-2.17.13/po/tr.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/tr.po 2024-04-08 00:55:52.000000000 +0200
@@ -206,7 +206,7 @@
msgid "Redirect loop detected.\n"
msgstr "Yönlendirme döngüsü algılandı.\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/po/zh_CN.po new/axel-2.17.14/po/zh_CN.po
--- old/axel-2.17.13/po/zh_CN.po 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/po/zh_CN.po 2024-04-08 00:55:52.000000000 +0200
@@ -205,7 +205,7 @@
msgid "Redirect loop detected.\n"
msgstr "检测到重定向循环。\n"
-#: src/conn.c:538
+#: src/conn.c:539
msgid "Unknown Error"
msgstr "未知错误"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/src/conn.c new/axel-2.17.14/src/conn.c
--- old/axel-2.17.13/src/conn.c 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/src/conn.c 2024-04-08 00:55:52.000000000 +0200
@@ -521,17 +521,18 @@
return 1;
}
+/**
+ * Parse HTTP response status code, e.g. "HTTP/1.1 200 OK".
+ */
int
conn_info_status_get(char *msg, size_t size, conn_t *conn)
{
if (is_proto_http(conn->proto)) {
char *p = conn->http->headers->p;
- /* Skip protocol and code */
- while (*p++ != ' ');
- while (*p++ != ' ');
size_t len = strcspn(p, "\r\n");
- if (len) {
- strlcpy(msg, p, min(len + 1, size));
+ if (len > 13) {
+ /* Copy human-readable status only */
+ strlcpy(msg, p + 13, min(len - 12, size));
return conn->http->status;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/src/http.c new/axel-2.17.14/src/http.c
--- old/axel-2.17.13/src/http.c 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/src/http.c 2024-04-08 00:55:52.000000000 +0200
@@ -359,7 +359,7 @@
{
const char *h;
if ((h = http_header(conn, "Content-Disposition:")) != NULL) {
- sscanf(h, "%*s%*[ \t]filename%*[ \t=\"\'-]%254[^\n\"\']",
+ sscanf(h, "%*s%*[ \t]filename%*[ \t=\"\'-]%254[^;\n\"\']",
filename);
/* Trim spaces at the end of string */
const char space[] = "\t ";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/src/random.c new/axel-2.17.14/src/random.c
--- old/axel-2.17.13/src/random.c 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/src/random.c 2024-04-08 00:55:52.000000000 +0200
@@ -1,4 +1,3 @@
-#include <stdatomic.h>
#include <unistd.h>
#include "config.h"
#include "axel.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/axel-2.17.13/src/text.c new/axel-2.17.14/src/text.c
--- old/axel-2.17.13/src/text.c 2024-02-06 13:30:10.000000000 +0100
+++ new/axel-2.17.14/src/text.c 2024-04-08 00:55:52.000000000 +0200
@@ -472,7 +472,7 @@
}
/* SIGINT/SIGTERM handler */
-RETSIGTYPE
+void
stop(int signal)
{
(void)signal;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gajim for openSUSE:Factory checked in at 2024-07-01 11:20:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gajim (Old)
and /work/SRC/openSUSE:Factory/.gajim.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gajim"
Mon Jul 1 11:20:55 2024 rev:66 rq:1184195 version:1.9.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gajim/gajim.changes 2024-06-11 18:32:13.779308200 +0200
+++ /work/SRC/openSUSE:Factory/.gajim.new.18349/gajim.changes 2024-07-01 11:21:24.885343365 +0200
@@ -1,0 +2,24 @@
+Sun Jun 30 07:11:39 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.9.1:
+ * Menu: Add main menu button (#11811)
+ * ChatFunctionPage: Show MUC address when displaying error
+ * SecurityLabels: Allow correction of labels
+ * Use different icon for context menu on contact list page
+ * Unify wording for 'Toggle Menu Bar'
+ * ConversationView: Use better method for scrolling to row
+ * Raise nbxmpp version
+ * Reactions: Show timestamp in correct timezone (#11875)
+ * Search: Don’t search messages of disabled accounts (#11876)
+ * DebugConsole: Fix filtering stanzas when combining accounts
+ and types
+ * VoiceMessageRecorderButton: Honor visibility setting on
+ startup (#11872)
+ * SecurityLabels: Fix merging messages with same security label
+ * ChatActionProcessor: Make handling selected action more
+ robust (#11871)
+ * Settings: Store account jid in dedicated setting (#11864)
+ * Migration: Don’t fail on invalid JIDs (#11862)
+ * HistorySync: Make full sync option work again
+
+-------------------------------------------------------------------
Old:
----
gajim-1.9.0.tar.gz
New:
----
gajim-1.9.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gajim.spec ++++++
--- /var/tmp/diff_new_pack.JcNJkD/_old 2024-07-01 11:21:26.233392474 +0200
+++ /var/tmp/diff_new_pack.JcNJkD/_new 2024-07-01 11:21:26.261393494 +0200
@@ -25,14 +25,14 @@
%{?sle15_python_module_pythons}
%endif
Name: gajim
-Version: 1.9.0
+Version: 1.9.1
Release: 0
Summary: XMPP client written in Python and GTK
License: GPL-3.0-only
Group: Productivity/Networking/Talk/Clients
URL: https://gajim.org/
Source: https://gajim.org/downloads/1.9/gajim-%{version}.tar.gz
-BuildRequires: %{python_module nbxmpp >= 5.0.0}
+BuildRequires: %{python_module nbxmpp >= 5.0.1}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module precis-i18n >= 1.0.0}
BuildRequires: %{python_module wheel}
@@ -50,6 +50,7 @@
Requires: %{python_flavor}-gobject-Gdk
Requires: %{python_flavor}-gobject-cairo
Requires: %{python_flavor}-gssapi
+Requires: %{python_flavor}-nbxmpp >= 5.0.1
Requires: %{python_flavor}-omemo-dr
Requires: %{python_flavor}-qrcode
Requires: ca-certificates-mozilla
++++++ gajim-1.9.0.tar.gz -> gajim-1.9.1.tar.gz ++++++
++++ 8044 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-nbxmpp for openSUSE:Factory checked in at 2024-07-01 11:20:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nbxmpp (Old)
and /work/SRC/openSUSE:Factory/.python-nbxmpp.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbxmpp"
Mon Jul 1 11:20:54 2024 rev:50 rq:1184069 version:5.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nbxmpp/python-nbxmpp.changes 2024-06-11 18:32:15.179359396 +0200
+++ /work/SRC/openSUSE:Factory/.python-nbxmpp.new.18349/python-nbxmpp.changes 2024-07-01 11:21:22.581259427 +0200
@@ -1,0 +2,6 @@
+Sun Jun 30 07:15:22 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 5.0.1:
+ * SecurityLabels: Add restrict attribute
+
+-------------------------------------------------------------------
Old:
----
python-nbxmpp-5.0.0.tar.bz2
New:
----
python-nbxmpp-5.0.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nbxmpp.spec ++++++
--- /var/tmp/diff_new_pack.71I4A5/_old 2024-07-01 11:21:23.053276622 +0200
+++ /var/tmp/diff_new_pack.71I4A5/_new 2024-07-01 11:21:23.053276622 +0200
@@ -16,20 +16,20 @@
#
-# Requires at least python 3.10
-%define skip_python38 1
-%define skip_python39 1
%{?sle15_python_module_pythons}
%define _name nbxmpp
Name: python-nbxmpp
-Version: 5.0.0
+Version: 5.0.1
Release: 0
Summary: XMPP library by Gajim team
License: GPL-3.0-or-later
Group: Development/Languages/Python
URL: https://dev.gajim.org/gajim/python-nbxmpp
Source: %{url}/-/archive/%{version}/python-nbxmpp-%{version}.tar.bz2
+BuildRequires: %{python_module base >= 3.10}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 65.0}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-generators >= 20220912
BuildRequires: python-rpm-macros >= 20220912
@@ -73,6 +73,6 @@
%files %{python_files}
%license COPYING
%doc ChangeLog README.md
-%{python_sitelib}/%{_name}/
-%{python_sitelib}/%{_name}-*
+%{python_sitelib}/%{_name}
+%{python_sitelib}/%{_name}-%{version}.dist-info
++++++ python-nbxmpp-5.0.0.tar.bz2 -> python-nbxmpp-5.0.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-5.0.0/ChangeLog new/python-nbxmpp-5.0.1/ChangeLog
--- old/python-nbxmpp-5.0.0/ChangeLog 2024-06-07 23:42:52.000000000 +0200
+++ new/python-nbxmpp-5.0.1/ChangeLog 2024-06-22 09:17:59.000000000 +0200
@@ -1,3 +1,9 @@
+nbxmpp 5.0.1 (20 Jun 2024)
+
+ Improvements
+
+ * SecurityLabels: Add restrict attribute
+
nbxmpp 5.0.0 (04 Jun 2024)
New
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-5.0.0/nbxmpp/__init__.py new/python-nbxmpp-5.0.1/nbxmpp/__init__.py
--- old/python-nbxmpp-5.0.0/nbxmpp/__init__.py 2024-06-07 23:42:52.000000000 +0200
+++ new/python-nbxmpp-5.0.1/nbxmpp/__init__.py 2024-06-22 09:17:59.000000000 +0200
@@ -4,4 +4,4 @@
from .protocol import * # noqa: F403, E402
-__version__: str = '5.0.0'
+__version__: str = '5.0.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-5.0.0/nbxmpp/modules/security_labels.py new/python-nbxmpp-5.0.1/nbxmpp/modules/security_labels.py
--- old/python-nbxmpp-5.0.0/nbxmpp/modules/security_labels.py 2024-06-07 23:42:52.000000000 +0200
+++ new/python-nbxmpp-5.0.1/nbxmpp/modules/security_labels.py 2024-06-22 09:17:59.000000000 +0200
@@ -25,6 +25,7 @@
from nbxmpp.simplexml import Node
from nbxmpp.structs import StanzaHandler
from nbxmpp.task import iq_request_task
+from nbxmpp.util import from_xs_boolean
class SecurityLabels(BaseModule):
@@ -63,18 +64,27 @@
catalog_node = response.getTag('catalog',
namespace=Namespace.SECLABEL_CATALOG)
+ try:
+ restrict = from_xs_boolean(catalog_node.getAttr('restrict'))
+ except Exception:
+ restrict = False
+
items = catalog_node.getTags('item')
labels = {}
default = None
for item in items:
- label = item.getAttr('selector')
- if label is None:
+ selector = item.getAttr('selector')
+ if selector is None:
continue
+ if item.getAttr('default') == 'true':
+ default = selector
+
security = item.getTag('securitylabel',
namespace=Namespace.SECLABEL)
if security is None:
+ labels[selector] = None
continue
try:
@@ -82,12 +92,9 @@
except ValueError:
continue
- labels[label] = security_label
-
- if item.getAttr('default') == 'true':
- default = label
+ labels[selector] = security_label
- yield Catalog(labels=labels, default=default)
+ yield Catalog(labels=labels, default=default, restrict=restrict)
def _make_catalog_request(domain, jid):
@@ -156,8 +163,9 @@
@dataclass
class Catalog:
- labels: dict[str, SecurityLabel]
+ labels: dict[str, SecurityLabel | None]
default: str
+ restrict: bool
- def get_label_names(self):
+ def get_label_names(self) -> list[str]:
return list(self.labels.keys())
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gcompris-qt-voices for openSUSE:Factory checked in at 2024-07-01 11:20:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcompris-qt-voices (Old)
and /work/SRC/openSUSE:Factory/.gcompris-qt-voices.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcompris-qt-voices"
Mon Jul 1 11:20:45 2024 rev:22 rq:1184066 version:4.1~20240524
Changes:
--------
--- /work/SRC/openSUSE:Factory/gcompris-qt-voices/gcompris-qt-voices.changes 2024-02-23 16:45:27.735626045 +0100
+++ /work/SRC/openSUSE:Factory/.gcompris-qt-voices.new.18349/gcompris-qt-voices.changes 2024-07-01 11:21:12.384887973 +0200
@@ -1,0 +2,5 @@
+Fri May 31 12:41:35 UTC 2024 - Bruno Friedmann <bruno(a)ioda-net.ch>
+
+- Update to version 4.1~20240521 for gcompris-qt 4.1
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcompris-qt-voices.spec ++++++
--- /var/tmp/diff_new_pack.gnY1AH/_old 2024-07-01 11:21:21.897234508 +0200
+++ /var/tmp/diff_new_pack.gnY1AH/_new 2024-07-01 11:21:21.901234654 +0200
@@ -17,7 +17,7 @@
Name: gcompris-qt-voices
-Version: 4.0~20240221
+Version: 4.1~20240524
Release: 0
Summary: Voice files for gcompris-qt
License: GPL-2.0-or-later AND GPL-3.0-or-later AND CC-BY-SA-1.0+ AND GFDL-1.1-or-later AND SUSE-Public-Domain AND SUSE-Free-Art-1.3
@@ -26,8 +26,8 @@
Source: gcompris-qt-voices.tar.xz
Source2: fetch_voices.sh
Source3: LICENSE
-Requires: gcompris-qt = 4.0
-Provides: gcompris-voices = 4.0
+Requires: gcompris-qt = 4.1
+Provides: gcompris-voices = 4.1
Provides: locale(gcompris:en)
BuildArch: noarch
++++++ gcompris-qt-voices.tar.xz ++++++
/work/SRC/openSUSE:Factory/gcompris-qt-voices/gcompris-qt-voices.tar.xz /work/SRC/openSUSE:Factory/.gcompris-qt-voices.new.18349/gcompris-qt-voices.tar.xz differ: char 27, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gcompris-qt for openSUSE:Factory checked in at 2024-07-01 11:20:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcompris-qt (Old)
and /work/SRC/openSUSE:Factory/.gcompris-qt.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcompris-qt"
Mon Jul 1 11:20:43 2024 rev:31 rq:1184065 version:4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gcompris-qt/gcompris-qt.changes 2024-02-23 16:45:26.363576308 +0100
+++ /work/SRC/openSUSE:Factory/.gcompris-qt.new.18349/gcompris-qt.changes 2024-07-01 11:21:11.380851396 +0200
@@ -1,0 +2,7 @@
+Thu May 23 19:12:23 UTC 2024 - Bruno Friedmann <bruno(a)ioda-net.ch>
+
+- Update to version 4.1
+ + contains bug fixes and graphics improvements on multiple
+ activities
+
+-------------------------------------------------------------------
Old:
----
gcompris-qt-4.0.tar.xz
gcompris-qt-4.0.tar.xz.sig
New:
----
gcompris-qt-4.1.tar.xz
gcompris-qt-4.1.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcompris-qt.spec ++++++
--- /var/tmp/diff_new_pack.MGk91K/_old 2024-07-01 11:21:12.208881561 +0200
+++ /var/tmp/diff_new_pack.MGk91K/_new 2024-07-01 11:21:12.212881707 +0200
@@ -18,7 +18,7 @@
Name: gcompris-qt
-Version: 4.0
+Version: 4.1
Release: 0
Summary: Multiactivity educational software for children aged 2–10 (Qt version)
License: AGPL-3.0-or-later AND CC-BY-4.0 AND Apache-2.0 AND MPL-2.0 AND OFL-1.1 AND GFDL-1.2-or-later AND MIT AND CC0-1.0 AND BSD-2-Clause AND BSD-3-Clause
++++++ gcompris-qt-4.0.tar.xz -> gcompris-qt-4.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/gcompris-qt/gcompris-qt-4.0.tar.xz /work/SRC/openSUSE:Factory/.gcompris-qt.new.18349/gcompris-qt-4.1.tar.xz differ: char 25, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rng-tools for openSUSE:Factory checked in at 2024-07-01 11:20:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rng-tools (Old)
and /work/SRC/openSUSE:Factory/.rng-tools.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rng-tools"
Mon Jul 1 11:20:41 2024 rev:52 rq:1184075 version:6.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/rng-tools/rng-tools.changes 2023-04-16 16:08:01.621146128 +0200
+++ /work/SRC/openSUSE:Factory/.rng-tools.new.18349/rng-tools.changes 2024-07-01 11:21:09.684789610 +0200
@@ -1,0 +2,14 @@
+Sun Jun 30 07:56:27 UTC 2024 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 6.17:
+ * mix data fed to the kernel byte-wise from multiple sources
+ * added option to attempt more persistent use of slow entropy
+ sources
+ * fix some missing m4 quotes
+ * improved debug output to show FIPS failures more clearly
+ * added a named pipe entropy source
+ * adjusted linux poolsize
+ * fixed some pkcs11 error messages
+ * fixed ignorefail and random_step options
+
+-------------------------------------------------------------------
Old:
----
v6.16.tar.gz
New:
----
v6.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rng-tools.spec ++++++
--- /var/tmp/diff_new_pack.0hu7Uw/_old 2024-07-01 11:21:10.320812779 +0200
+++ /var/tmp/diff_new_pack.0hu7Uw/_new 2024-07-01 11:21:10.320812779 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rng-tools
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{!?_udevrulesdir: %global _udevrulesdir %(pkg-config --variable=udevdir udev)/rules.d }
Name: rng-tools
-Version: 6.16
+Version: 6.17
Release: 0
Summary: Support daemon for hardware random device
License: GPL-3.0-or-later
++++++ v6.16.tar.gz -> v6.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/Makefile.am new/rng-tools-6.17/Makefile.am
--- old/rng-tools-6.16/Makefile.am 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/Makefile.am 2024-05-23 20:16:00.000000000 +0200
@@ -9,7 +9,8 @@
noinst_LIBRARIES = librngd.a
rngd_SOURCES = rngd.h rngd.c rngd_entsource.h rngd_entsource.c \
- rngd_linux.h rngd_linux.c util.c ossl_helpers.c
+ rngd_linux.h rngd_linux.c util.c ossl_helpers.c \
+ rngd_namedpipe.c
if NISTBEACON
rngd_SOURCES += rngd_nistbeacon.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/configure.ac new/rng-tools-6.17/configure.ac
--- old/rng-tools-6.16/configure.ac 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/configure.ac 2024-05-23 20:16:00.000000000 +0200
@@ -17,7 +17,7 @@
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
-AC_INIT(rng-tools, 6.16, [Neil Horman <nhorman(a)tuxdriver.com>])
+AC_INIT(rng-tools, 6.17, [Neil Horman <nhorman(a)tuxdriver.com>])
AC_PREREQ(2.52)
AC_CONFIG_SRCDIR([rngd.c])
AC_CANONICAL_HOST
@@ -196,7 +196,7 @@
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[#include <argp.h>],
- [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]
+ [[int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;]]
)],
[need_libargp=no],
[need_libargp=yes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd.8.in new/rng-tools-6.17/rngd.8.in
--- old/rng-tools-6.16/rngd.8.in 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd.8.in 2024-05-23 20:16:00.000000000 +0200
@@ -22,6 +22,7 @@
[\fB\-t\fR, \fB\-\-test\fR]
[\fB\-W\fR, \fB\-\-fill-watermark=\fInnn\fR]
[\fB\-R\fR, \fB\-\-force-reseed=\fInnn\fR]
+[\fB\-u\fR, \fB\-\-use-slow-sources\fR]
[\fB\-D\fR, \fB\-\-drop-privileges=\fIuser:group\fR]
[\fB\-q\fR, \fB\-\-quiet\fR]
[\fB\-?\fR, \fB\-\-help\fR]
@@ -108,7 +109,7 @@
Setting this too high will cause \fIrngd\fR to dominate the contents of the
entropy pool. Low values will hurt system performance during entropy
starves. Do not set \fIfill-watermark\fR above the size of the
-entropy pool (usually 4096 bits). A value of 0 to this option will cause no
+entropy pool (usually 256 bits). A value of 0 to this option will cause no
watermark to be set.
.TP
\fB\-R\fI n\fR, \fB\-\-force-reseed=\fInnn\fR
@@ -117,6 +118,11 @@
--force-reseed defines the number of seconds between which fresh entropy is
added to the kernel entropy pool. Defaults to 5 minutes.
.TP
+\fB\-u\fR, \fB\-\-use-slow-sources\fR
+The entropy sources nist, jitter and pkcs11 are considered to be slow in providing entropy.
+By default their data is only used after all other sources failed to provide valid entropy
+a 100 times over. With this option rngd always tries to gather entropy from these sources too.
+.TP
\fB\-D\fR, \fB\-\-drop-privileges=\fIuser:group\fR
Drop privileges to a user and a group specified after initialization. A user
and a group can be specified as a name or as a numerical id and must be separated
@@ -134,7 +140,7 @@
.SH
ENTROPY SOURCES
.P
- Rngd is made up of multiple entropy sources, the data from which is
+Rngd is made up of multiple entropy sources, the data from which is
aggregated and fed into the kernels entropy pool. Note that not all entropy
sources are available on all systems, and if an entropy source is enabled for a
system on which it is not appropriate (or possible) to use, it may fail
@@ -235,7 +241,10 @@
.B
PKCS11 (pkcs11)
Entropy gathered via the opensc openssl engine, which can extract entropy from
-various smart card readers
+various smart card readers. Install a package for your distribution containing
+pkcs11 endpoint library to gather smartcard entropy. This is \fBopensc\fR for
+Fedora, \fBopensc-pkcs11\fR for Debian/Ubuntu or another package containing
+opensc-pkcs11.so.
.TP
Options
\fBengine_path - \fR Set the patch for the pkcs11 engine DSO to load
@@ -263,6 +272,20 @@
\fBsample_max - \fR The maximum sample rate of the radio
+.TP
+.B
+Named pipe (namedpipe)
+Reads entropy from a named pipe (aka FIFO). Another program, for example a
+driver reading and preparing data from an external hardware RNG, is expected
+to feed entropy into this named pipe. Should the named pipe be closed,
+rngd will try to reopen it.
+.TP
+Options
+\fBpath - \fR Path of the named pipe. Required.
+
+\fBtimeout - \fR Maximum time in seconds rngd waits until a full FIPS test buffer
+of entropy can be read. Defaults to 5.
+
.SH AUTHORS
Philipp Rumpf
.br
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd.c new/rng-tools-6.17/rngd.c
--- old/rng-tools-6.16/rngd.c 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd.c 2024-05-23 20:16:00.000000000 +0200
@@ -120,7 +120,7 @@
"Number of bytes written to random-device at a time (default: 64)" },
{ "fill-watermark", 'W', "n", 0,
- "Do not stop feeding entropy to random-device until at least n bits of entropy are available in the pool (default: 3/4 of poolsize), 0 <= n <= 4096" },
+ "Do not stop feeding entropy to random-device until at least n bits of entropy are available in the pool (default: 3/4 of poolsize), 0 <= n <= 256" },
{ "quiet", 'q', 0, 0, "Suppress all messages" },
@@ -130,6 +130,8 @@
{ "force-reseed", 'R', "n", 0, "Time in seconds to force adding entropy to the random device" },
+ { "use-slow-sources", 'u', 0, 0, "Always gather entropy from sources considered as \"slow\" too" },
+
{ "drop-privileges", 'D', "user:group", 0, "Drop privileges to a user and group specified" },
{ 0 },
@@ -146,6 +148,7 @@
.ignorefail = false,
.entropy_count = 8,
.force_reseed = 60 * 5,
+ .use_slow_sources = false,
.drop_privs = false,
};
struct arguments *arguments = &default_arguments;
@@ -167,6 +170,7 @@
ENT_PKCS11,
ENT_RTLSDR,
ENT_QRYPT,
+ ENT_NAMEDPIPE,
ENT_MAX
} entropy_indexes __attribute__((used));
@@ -317,6 +321,22 @@
}
};
+static struct rng_option namedpipe_options[] = {
+ [NAMEDPIPE_OPT_PATH] = {
+ .key = "path",
+ .type = VAL_STRING,
+ .str_val = "",
+ },
+ [NAMEDPIPE_OPT_TIMEOUT] {
+ .key = "timeout",
+ .type = VAL_INT,
+ .int_val = 5, /* 5 seconds */
+ },
+ {
+ .key = NULL,
+ }
+};
+
static struct rng entropy_sources[ENT_MAX] = {
/* Note, the special char dev must be the first entry */
{
@@ -455,6 +475,15 @@
#endif
.disabled = true,
.rng_options = qrypt_options,
+ },
+ {
+ .rng_name = "Named pipe entropy input",
+ .rng_sname = "namedpipe",
+ .rng_fd = -1,
+ .flags = { 0 },
+ .xread = xread_namedpipe,
+ .init = init_namedpipe_entropy_source,
+ .rng_options = namedpipe_options,
}
};
@@ -623,10 +652,12 @@
case 's':
if (sscanf(arg, "%i", &arguments->random_step) == 0)
argp_usage(state);
+ if (arguments->random_step > FIPS_RNG_BUFFER_SIZE || arguments->random_step < 0)
+ arguments->random_step = FIPS_RNG_BUFFER_SIZE;
break;
case 'W': {
int n;
- if ((sscanf(arg, "%i", &n) == 0) || (n < 0) || (n > 4096))
+ if ((sscanf(arg, "%i", &n) == 0) || (n < 0) || (n > 256))
argp_usage(state);
else
arguments->fill_watermark = n;
@@ -655,6 +686,10 @@
arguments->force_reseed = R;
break;
}
+ case 'u': {
+ arguments->use_slow_sources = true;
+ break;
+ }
case 'D': {
struct passwd *usrent;
struct group *grpent;
@@ -724,45 +759,77 @@
static struct argp argp = { options, parse_opt, NULL, doc };
-static int update_kernel_random(struct rng *rng, int random_step,
- unsigned char *buf, fips_ctx_t *fipsctx_in)
+static int update_kernel_random(int random_step)
{
- unsigned char *p;
- int fips;
+ unsigned char buf[FIPS_RNG_BUFFER_SIZE]; /* random_step was checked to be <= FIPS_RNG_BUFFER_SIZE */
int rc;
+ struct rng *iter;
- fips = fips_run_rng_test(fipsctx_in, buf);
- if (fips && !arguments->ignorefail)
- return 1;
+ message(LOG_DAEMON|LOG_DEBUG, "entropy successfully gathered, preparing it for the kernel\n");
- for (p = buf; p + random_step <= &buf[FIPS_RNG_BUFFER_SIZE];
- p += random_step) {
+ while(true) {
if (!server_running)
return 0;
if (do_reseed) {
do_reseed = false;
alarm(arguments->force_reseed);
}
- rc = random_add_entropy(p, random_step);
- if (rc == -1)
- return 1;
+
+ /* mix the sources on byte-level: ensure we always feed data from all available sources to the kernel
+ * helps to mitigate problems should a source not be as random as expected */
+ int p = 0;
+ while(p < random_step) {
+ int progress = p;
+ for (int i = 0; i < ENT_MAX; ++i) {
+ iter = &entropy_sources[i];
+ if (!iter->entropy_buf.valid)
+ continue;
+
+ buf[p++] = iter->entropy_buf.entropy[iter->entropy_buf.used_pos++];
+
+ if (iter->entropy_buf.used_pos == FIPS_RNG_BUFFER_SIZE)
+ iter->entropy_buf.valid = false;
+
+ if(p >= random_step)
+ break;
+ }
+
+ /* abort data preparation when no data was added to the buffer in one loop = no valid sources left
+ * this wastes a few bytes when FIPS_RNG_BUFFER_SIZE is not a multiple of random_step
+ * but it makes the logic easier to implement and read */
+ if (p == progress)
+ return 0;
+ }
+
+ rc = random_add_entropy(buf, random_step);
+ if (rc == -1) {
+ /* feeding the entropy to the kernel failed, not much we can do, wait and try again later */
+ random_sleep();
+ continue;
+ }
message(LOG_DAEMON|LOG_DEBUG, "Added %d/%d bits entropy\n", rc, kent_pool_size);
+
if (rc >= kent_pool_size-64) {
message(LOG_DAEMON|LOG_DEBUG, "Pool full at %d, sleeping!\n",
kent_pool_size);
random_sleep();
}
}
-
- return 0;
}
-static int random_test_sink(struct rng *rng, int random_step,
- unsigned char *buf, fips_ctx_t *fipsctx_in)
+static int random_test_sink(int random_step)
{
+ struct rng *iter;
+
if (!ent_gathered)
alarm(1);
- ent_gathered += FIPS_RNG_BUFFER_SIZE;
+
+ for (int i = 0; i < ENT_MAX; ++i) {
+ iter = &entropy_sources[i];
+ if (iter->entropy_buf.valid)
+ ent_gathered += FIPS_RNG_BUFFER_SIZE;
+ }
+
return 0;
}
@@ -873,7 +940,7 @@
static void do_loop(int random_step)
{
- unsigned char buf[FIPS_RNG_BUFFER_SIZE];
+ int buffers_filled;
int no_work;
bool work_done;
int sources_left;
@@ -882,8 +949,7 @@
struct rng *iter;
bool try_slow_sources = false;
- int (*random_add_fn)(struct rng *rng, int random_step,
- unsigned char *buf, fips_ctx_t *fipsctx_in);
+ int (*random_add_fn)(int random_step);
random_add_fn = arguments->test ? random_test_sink : update_kernel_random;
@@ -891,6 +957,7 @@
for (no_work = 0; no_work < 100; no_work = (work_done ? 0 : no_work+1)) {
work_done = false;
+ buffers_filled = 0;
/*
* Exclude slow sources when faster sources are working well
@@ -901,17 +968,22 @@
* entropy from the fast sources, then iff that fails, start including the slower
* sources as well. Once we get some entropy, return to only using fast sources
*/
- if (no_work)
+ if (no_work) {
+ message(LOG_DAEMON|LOG_DEBUG, "Couldn't get entropy in last loop, enabling slow sources\n");
try_slow_sources = true;
- else
+ } else {
try_slow_sources = false;
+ }
- for (i = 0; i < ENT_MAX; ++i)
- {
- int rc;
+ for (i = 0; i < ENT_MAX; ++i) {
/*message(LOG_CONS|LOG_INFO, "I is %d\n", i);*/
iter = &entropy_sources[i];
- if (!try_slow_sources && iter->flags.slow_source)
+
+ /* empty the buffer for each source before gathering new entropy, even when some bytes are left */
+ iter->entropy_buf.valid = false;
+ iter->entropy_buf.used_pos = 0;
+
+ if (!try_slow_sources && !arguments->use_slow_sources && iter->flags.slow_source)
continue;
retry_same:
@@ -923,16 +995,26 @@
message(LOG_DAEMON|LOG_DEBUG, "Reading entropy from %s\n", iter->rng_name);
- retval = iter->xread(buf, sizeof buf, iter);
+ retval = iter->xread(iter->entropy_buf.entropy, sizeof(iter->entropy_buf.entropy), iter);
if (retval)
continue; /* failed, no work */
work_done = true;
- rc = random_add_fn(iter, random_step, buf, iter->fipsctx);
+ if (arguments->ignorefail || arguments->test) {
+ iter->entropy_buf.valid = true;
+ } else {
+ message(LOG_DAEMON|LOG_DEBUG, "Running FIPS test on entropy\n");
+ int fipsret = fips_run_rng_test(iter->fipsctx, iter->entropy_buf.entropy);
+ if (fipsret)
+ message(LOG_DAEMON|LOG_DEBUG, "FIPS test failed (return code %d)\n", fipsret);
+ else
+ iter->entropy_buf.valid = true;
+ }
- if (rc == 0) {
+ if (iter->entropy_buf.valid) {
iter->success++;
+ buffers_filled++;
if (iter->success >= RNG_OK_CREDIT) {
if (iter->failures)
iter->failures--;
@@ -945,18 +1027,24 @@
iter->failures++;
if (iter->failures <= MAX_RNG_FAILURES/4) {
/* FIPS tests have false positives */
+ message(LOG_DAEMON|LOG_DEBUG, "FIPS failure from %s, retrying\n", iter->rng_name);
goto retry_same;
}
if (iter->failures >= MAX_RNG_FAILURES && !ignorefail) {
message(LOG_DAEMON|LOG_ERR,
- "too many FIPS failures, disabling entropy source\n");
+ "too many FIPS failures, disabling entropy source %s\n", iter->rng_name);
if (iter->close)
iter->close(iter);
iter->disabled = true;
}
}
+ if (buffers_filled) {
+ /* we got some entropy, now mix it and feed it to the kernel */
+ random_add_fn(random_step);
+ }
+
/* Don't hog the CPU if no sources have returned data */
if (!work_done)
sched_yield();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd.h new/rng-tools-6.17/rngd.h
--- old/rng-tools-6.16/rngd.h 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd.h 2024-05-23 20:16:00.000000000 +0200
@@ -59,6 +59,7 @@
bool enable_tpm;
int entropy_count;
int force_reseed;
+ bool use_slow_sources;
bool drop_privs;
uid_t drop_uid;
@@ -134,6 +135,15 @@
QRYPT_OPT_MAX,
};
+/*
+ * NAMEDPIPE options
+ */
+enum {
+ NAMEDPIPE_OPT_PATH = 0,
+ NAMEDPIPE_OPT_TIMEOUT = 1,
+ NAMEDPIPE_OPT_MAX,
+};
+
enum option_val_type {
VAL_INT = 0,
VAL_STRING = 1,
@@ -166,6 +176,12 @@
/* Intermittent sources - may sometimes fail to produce entropy */
unsigned int intermittent_source : 1;
} flags;
+ struct entropy_buf {
+ /* structure to store entropy from a source before mixing it with other sources */
+ unsigned char entropy[FIPS_RNG_BUFFER_SIZE];
+ bool valid;
+ int used_pos;
+ } entropy_buf;
int (*xread) (void *buf, size_t size, struct rng *ent_src);
int (*init) (struct rng *ent_src);
void (*close) (struct rng *end_src);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd_entsource.h new/rng-tools-6.17/rngd_entsource.h
--- old/rng-tools-6.16/rngd_entsource.h 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd_entsource.h 2024-05-23 20:16:00.000000000 +0200
@@ -102,4 +102,7 @@
extern int xread_tpm(void *buf, size_t size, struct rng *ent_src);
+extern int init_namedpipe_entropy_source(struct rng *ent_src);
+extern int xread_namedpipe(void *buf, size_t size, struct rng *ent_src);
+
#endif /* RNGD_ENTSOURCE__H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd_linux.c new/rng-tools-6.17/rngd_linux.c
--- old/rng-tools-6.16/rngd_linux.c 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd_linux.c 2024-05-23 20:16:00.000000000 +0200
@@ -60,7 +60,7 @@
* randomdev is the path to the random device
*/
-#define DEFAULT_WATERMARK_GUESS 4096
+#define DEFAULT_WATERMARK_GUESS 256
void init_kernel_rng(const char* randomdev)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd_namedpipe.c new/rng-tools-6.17/rngd_namedpipe.c
--- old/rng-tools-6.16/rngd_namedpipe.c 1970-01-01 01:00:00.000000000 +0100
+++ new/rng-tools-6.17/rngd_namedpipe.c 2024-05-23 20:16:00.000000000 +0200
@@ -0,0 +1,148 @@
+/*
+ * rngd_namedpipe.c -- Named pipe entropy input
+ *
+ * Copyright (C) 2023 Gerd v. Egidy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
+ */
+
+#define _GNU_SOURCE
+
+#ifndef HAVE_CONFIG_H
+#error Invalid or missing autoconf build environment
+#endif
+
+#include "rng-tools-config.h"
+
+#include <unistd.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <syslog.h>
+#include <string.h>
+#include <stddef.h>
+#include <sys/select.h>
+#include <sys/time.h>
+
+#include "rngd.h"
+#include "fips.h"
+#include "exits.h"
+#include "rngd_entsource.h"
+
+
+/* Read data from named pipes, with timeout & reopening */
+int xread_namedpipe(void *buf, size_t size, struct rng *ent_src)
+{
+ size_t off = 0;
+ ssize_t r;
+ int sr;
+
+ fd_set readfds;
+ int maxfds;
+
+ // we init the timeout structure once, select will reduce it when it was waiting
+ struct timeval tval;
+ tval.tv_sec = ent_src->rng_options[NAMEDPIPE_OPT_TIMEOUT].int_val;
+ tval.tv_usec = 0;
+
+ while (size > 0) {
+ // prepare fd set for select
+ FD_ZERO(&readfds);
+ if (ent_src->rng_fd >= FD_SETSIZE) {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "file descriptor exceeds FD_SETSIZE limit\n");
+ return -1;
+ }
+ FD_SET(ent_src->rng_fd, &readfds);
+ maxfds = ent_src->rng_fd + 1;
+
+ sr = select (maxfds, &readfds, NULL, NULL, &tval);
+ if (sr == 1) {
+ // our fd has something to read
+ r = read(ent_src->rng_fd, buf + off, size);
+
+ if (r > 0) {
+ // we could read something
+ off += r;
+ size -= r;
+ continue;
+ } else if (r == 0) {
+ // EOF: try to re-open the pipe
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "EOF, reopening named pipe\n");
+ close(ent_src->rng_fd);
+ ent_src->rng_fd = open(ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val, O_RDONLY | O_NOCTTY | O_NONBLOCK);
+ if (ent_src->rng_fd == -1) {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "Unable to open named pipe (%i): %s\n", errno,
+ ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val);
+ ent_src->disabled = true;
+ return -1;
+ }
+ continue;
+ } else {
+ // read error
+ if (errno == EINTR || errno == EAGAIN)
+ continue;
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "read error (%i)\n", errno);
+ return -1;
+ }
+ } else if (sr == 0) {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "timeout\n");
+ return -1;
+ } else {
+ // select error
+ if (errno == EINTR)
+ continue;
+
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "select error %i\n", errno);
+ return -1;
+ }
+ }
+ return 0;
+}
+
+/*
+ * init named pipe entropy source: check option and open pipe
+ */
+int init_namedpipe_entropy_source(struct rng *ent_src)
+{
+ char buf[16];
+
+ if (!ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val ||
+ strlen(ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val) == 0)
+ {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "No named pipe path configured\n");
+ return 1;
+ }
+
+ ent_src->rng_fd = open(ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val, O_RDONLY | O_NOCTTY | O_NONBLOCK);
+ if (ent_src->rng_fd == -1) {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_DEBUG, "Unable to open named pipe (%i): %s\n", errno,
+ ent_src->rng_options[NAMEDPIPE_OPT_PATH].str_val);
+ return 1;
+ }
+
+ /* Try to read some data from the entropy source. */
+ if (ent_src->xread(buf, sizeof(buf), ent_src) != 0)
+ return -1;
+
+ /* the read didn't return an error -> assume its ok to use */
+
+ /* Bootstrap FIPS tests */
+ ent_src->fipsctx = malloc(sizeof(fips_ctx_t));
+ return 0;
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rng-tools-6.16/rngd_pkcs11.c new/rng-tools-6.17/rngd_pkcs11.c
--- old/rng-tools-6.16/rngd_pkcs11.c 2023-01-10 13:45:31.000000000 +0100
+++ new/rng-tools-6.17/rngd_pkcs11.c 2024-05-23 20:16:00.000000000 +0200
@@ -67,19 +67,25 @@
struct stat sbuf;
if (stat(ent_src->rng_options[PKCS11_OPT_ENGINE].str_val, &sbuf) == -1) {
- message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine %s Error: %s\n",
- ent_src->rng_options[PKCS11_OPT_ENGINE].str_val,
- strerror(errno));
+ if (errno == ENOENT) {
+ message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING,"No PKCS11 endpoint %s found\n",
+ ent_src->rng_options[PKCS11_OPT_ENGINE].str_val);
+ message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING,"Install opensc/opensc-pkcs11/etc"
+ " if you would like to gather smartcard entropy\n");
+ } else
+ message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine %s Error: %s\n",
+ ent_src->rng_options[PKCS11_OPT_ENGINE].str_val,
+ strerror(errno));
return 1;
}
if (!ent_src->rng_options[PKCS11_OPT_CHUNK].int_val) {
- message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine chunk size cannot be 0\n");
+ message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine: chunk size cannot be 0\n");
return 1;
}
if (ent_src->rng_options[PKCS11_OPT_CHUNK].int_val > FIPS_RNG_BUFFER_SIZE) {
- message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine chunk size cannot be larger than %d\n",
+ message_entsrc(ent_src,LOG_DAEMON|LOG_WARNING, "PKCS11 Engine: chunk size cannot be larger than %d\n",
FIPS_RNG_BUFFER_SIZE);
return 1;
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package sbcl for openSUSE:Factory checked in at 2024-07-01 11:20:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sbcl (Old)
and /work/SRC/openSUSE:Factory/.sbcl.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sbcl"
Mon Jul 1 11:20:32 2024 rev:104 rq:1184062 version:2.4.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/sbcl/sbcl.changes 2024-05-31 22:16:53.280176277 +0200
+++ /work/SRC/openSUSE:Factory/.sbcl.new.18349/sbcl.changes 2024-07-01 11:21:04.616604975 +0200
@@ -1,0 +2,31 @@
+Sun Jun 30 06:46:53 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- Update to version 2.4.6
+ * enhancement: name conflicts resulting from colliding symbols in IMPORT and
+ USE-PACKAGE are resolved once for each name, rather than between pairwise
+ colliding symbols.
+ * enhancement: calls to structure constructors with type mismatches in
+ default initforms cause compile-time warnings.
+ * platform support:
+ ** fix constant-folding of %log1p and %log2 on 32-bit x86.
+ ** fix the encoding of popcntd on ppc64
+ * bug fix: EXPORT could be tricked into exporting two distinct symbols of
+ the same name from the same package.
+ * bug fix: two-argument calls to LOG with arguments of different precision
+ do not lose accuracy through insufficiently-precise intermediate values.
+ * bug fix: :NEWLINE options in *DEFAULT-EXTERNAL-FORMAT* are respected when
+ opening files. (reported by Marco Antoniotti)
+ * bug fix: extend type declarations for the iteration variable of DOLIST
+ with NULL during the evaluation of the result clause. (lp#942237)
+ * bug fix: #\uE0 (LATIN CAPITAL LETTER A WITH GRAVE) was incorrectly not
+ downcased with STRING-DOWNCASE. (lp#2067841, reported by Matt Kaufmann)
+ * bug fix: backquoted lists as arguments to MAKE-ARRAY were miscompiled.
+ (lp#2069345, reported by Dan Bothell)
+ * bug fix: resolve the circularity between the type system and the CLOS
+ metaobject protocol more robustly. (lp#2069502, reported by Jan Moringen)
+ * bug fix: misplaced tilde in a logical pathname error message.
+ (lp#2069995, thanks to Marco Heisig)
+ * optimization: various speedups to UTF-8 based external format streams and
+ other stream routines.
+
+-------------------------------------------------------------------
Old:
----
sbcl-2.4.5-source.tar.bz2
New:
----
sbcl-2.4.6-source.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sbcl.spec ++++++
--- /var/tmp/diff_new_pack.0ocND2/_old 2024-07-01 11:21:05.744646070 +0200
+++ /var/tmp/diff_new_pack.0ocND2/_new 2024-07-01 11:21:05.748646216 +0200
@@ -21,7 +21,7 @@
Name: sbcl
#!BuildIgnore: gcc-PIE
-Version: 2.4.5
+Version: 2.4.6
Release: 0
Summary: Steel Bank Common Lisp
License: BSD-3-Clause AND SUSE-Public-Domain
++++++ sbcl-2.4.5-source.tar.bz2 -> sbcl-2.4.6-source.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/sbcl/sbcl-2.4.5-source.tar.bz2 /work/SRC/openSUSE:Factory/.sbcl.new.18349/sbcl-2.4.6-source.tar.bz2 differ: char 11, line 1
1
0