Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package octave-forge-symbolic for
openSUSE:Factory checked in at 2022-09-15 22:58:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/octave-forge-symbolic (Old)
and /work/SRC/openSUSE:Factory/.octave-forge-symbolic.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "octave-forge-symbolic"
Thu Sep 15 22:58:47 2022 rev:12 rq:1003656 version:3.0.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/octave-forge-symbolic/octave-forge-symbolic.changes
2022-07-12 11:12:59.875742301 +0200
+++
/work/SRC/openSUSE:Factory/.octave-forge-symbolic.new.2083/octave-forge-symbolic.changes
2022-09-15 22:59:27.237260040 +0200
@@ -1,0 +2,13 @@
+Thu Sep 15 00:48:38 UTC 2022 - Stefan Br??ns <[email protected]>
+
+- Update to version 3.0.1:
+ * New `@double` numerical functions; these are wrappers around SymPy,
+ so they are slower than native floating-point implementations.
+ - adjoint
+ * Misc bug fixes and improvements in error handling.
+ * `.oct-config` files indicate source is UTF-8 encoded and should improve
+ any locale or encoding problems on Octave 7 and above.
+ * Fixes some errors when Python is running in Cygwin-like environment.
+ But there could still be errors in other places (issue #1182).
+
+-------------------------------------------------------------------
Old:
----
symbolic-3.0.0.tar.gz
New:
----
symbolic-3.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ octave-forge-symbolic.spec ++++++
--- /var/tmp/diff_new_pack.BFB8Jq/_old 2022-09-15 22:59:29.677266929 +0200
+++ /var/tmp/diff_new_pack.BFB8Jq/_new 2022-09-15 22:59:29.681266940 +0200
@@ -18,12 +18,12 @@
%define octpkg symbolic
Name: octave-forge-%{octpkg}
-Version: 3.0.0
+Version: 3.0.1
Release: 0
Summary: Octave Symbolic Package using SymPy
License: GPL-3.0-or-later
Group: Productivity/Scientific/Math
-URL: https://octave.sourceforge.io
+URL: https://octave.sourceforge.io/%{octpkg}/
Source0:
https://downloads.sourceforge.net/octave/%{octpkg}-%{version}.tar.gz
BuildArch: noarch
BuildRequires: octave-devel
++++++ symbolic-3.0.0.tar.gz -> symbolic-3.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/CONTRIBUTORS
new/symbolic-3.0.1/CONTRIBUTORS
--- old/symbolic-3.0.0/CONTRIBUTORS 2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/CONTRIBUTORS 2022-08-09 22:55:47.000000000 +0200
@@ -27,6 +27,7 @@
Fernando Alvarruiz
Tasos Papastylianou
Jing-Chen Peng
+Rafael Laboissi??re
(Please contact the developers if your name should be here but isn't!)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/DESCRIPTION
new/symbolic-3.0.1/DESCRIPTION
--- old/symbolic-3.0.0/DESCRIPTION 2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/DESCRIPTION 2022-08-09 22:55:47.000000000 +0200
@@ -1,6 +1,6 @@
Name: symbolic
-Version: 3.0.0
-Date: 2022-07-05
+Version: 3.0.1
+Date: 2022-08-09
Author: Colin B. Macdonald <[email protected]>
Maintainer: Colin B. Macdonald <[email protected]>
Title: Octave Symbolic Package using SymPy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/INDEX new/symbolic-3.0.1/INDEX
--- old/symbolic-3.0.0/INDEX 2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/INDEX 2022-08-09 22:55:47.000000000 +0200
@@ -25,6 +25,7 @@
lambertw
poly2sym
Double-precision numerical functions
+ @double/adjoint
@double/bernoulli
@double/chebyshevT
@double/chebyshevU
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/NEWS new/symbolic-3.0.1/NEWS
--- old/symbolic-3.0.0/NEWS 2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/NEWS 2022-08-09 22:55:47.000000000 +0200
@@ -1,3 +1,21 @@
+octsympy 3.0.1 (2022-08-09)
+===========================
+
+ * New `@double` numerical functions; these are wrappers around SymPy,
+ so they are slower than native floating-point implementations.
+
+ adjoint
+
+ * Misc bug fixes and improvements in error handling.
+
+ * `.oct-config` files indicate source is UTF-8 encoded and should improve
+ any locale or encoding problems on Octave 7 and above.
+
+ * Fixes some errors when Python is running in Cygwin-like environment.
+ But there could still be errors in other places (issue #1182).
+
+
+
octsympy 3.0.0 (2022-07-05)
===========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/.oct-config
new/symbolic-3.0.1/inst/.oct-config
--- old/symbolic-3.0.0/inst/.oct-config 1970-01-01 01:00:00.000000000 +0100
+++ new/symbolic-3.0.1/inst/.oct-config 2022-08-09 22:55:47.000000000 +0200
@@ -0,0 +1 @@
+encoding=utf-8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/@double/adjoint.m
new/symbolic-3.0.1/inst/@double/adjoint.m
--- old/symbolic-3.0.0/inst/@double/adjoint.m 1970-01-01 01:00:00.000000000
+0100
+++ new/symbolic-3.0.1/inst/@double/adjoint.m 2022-08-09 22:55:47.000000000
+0200
@@ -0,0 +1,86 @@
+%% Copyright (C) 2022 Alex Vong
+%%
+%% This file is part of OctSymPy.
+%%
+%% OctSymPy 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 (at your option) any later version.
+%%
+%% This software 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 software; see the file COPYING.
+%% If not, see <https://www.gnu.org/licenses/>.
+
+%% -*- texinfo -*-
+%% @documentencoding UTF-8
+%% @defun adjoint (@var{M})
+%% Numerical Classical Adjoint / Adjugate of a square matrix.
+%%
+%% @strong{Note on Terminology}: This function computes the
+%% ``Classical Adjoint'' / Adjugate of @var{M}. For the Conjugate Transpose /
+%% Hermitian adjoint (which is commonly referred to as the ``Adjoint'' in
+%% modern usage), @pxref{@@double/ctranspose}.
+%%
+%% Example:
+%% @example
+%% @group
+%% M = [-3 2 -5; -1 0 -2; 3 -4 1];
+%% A = adjoint (M)
+%% @result{} A =
+%% -8 18 -4
+%% -5 12 -1
+%% 4 -6 2
+%% @end group
+%% @end example
+%%
+%% And note the following equalities involving the Classical Adjoint @code{A}:
+%% @example
+%% @group
+%% M * A
+%% @result{} ans =
+%% -6 0 0
+%% 0 -6 0
+%% 0 0 -6
+%% @end group
+%%
+%% @group
+%% A * M
+%% @result{} ans =
+%% -6 0 0
+%% 0 -6 0
+%% 0 0 -6
+%% @end group
+%%
+%% @group
+%% det (M) * eye (3)
+%% @result{} ans =
+%% Diagonal Matrix
+%%
+%% -6 0 0
+%% 0 -6 0
+%% 0 0 -6
+%% @end group
+%% @end example
+%% @seealso{@@sym/adjoint}
+%% @end defun
+
+%% Reference: https://en.wikipedia.org/wiki/Adjugate_matrix
+
+
+function A = adjoint (M)
+ A = double (adjoint (vpa (M, 16)));
+end
+
+
+%!test
+%! M = [1 2; 3 4];
+%! A = [4 -2; -3 1];
+%! assert (isequal (adjoint (M), A));
+
+%!test
+%! assert (isequal (adjoint (42), 1));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/@sym/cumprod.m
new/symbolic-3.0.1/inst/@sym/cumprod.m
--- old/symbolic-3.0.0/inst/@sym/cumprod.m 2022-07-05 10:33:43.000000000
+0200
+++ new/symbolic-3.0.1/inst/@sym/cumprod.m 2022-08-09 22:55:47.000000000
+0200
@@ -21,7 +21,7 @@
%% @documentencoding UTF-8
%% @defmethod @@sym cumprod (@var{x})
%% @defmethodx @@sym cumprod (@var{x}, @var{dim})
-%% Perform a cumulative product over the rows or columns of a symbolic array.
+%% Cumulative product over the rows or columns of a symbolic array.
%%
%% If @var{dim} is omitted, it defaults to the first non-singleton dimension.
%% For example:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/@sym/cumsum.m
new/symbolic-3.0.1/inst/@sym/cumsum.m
--- old/symbolic-3.0.0/inst/@sym/cumsum.m 2022-07-05 10:33:43.000000000
+0200
+++ new/symbolic-3.0.1/inst/@sym/cumsum.m 2022-08-09 22:55:47.000000000
+0200
@@ -21,7 +21,7 @@
%% @documentencoding UTF-8
%% @defmethod @@sym cumsum (@var{x})
%% @defmethodx @@sym cumsum (@var{x}, @var{dim})
-%% Perform a cumulative sum over the rows or columns of a symbolic array.
+%% Cumulative sum over the rows or columns of a symbolic array.
%%
%% If @var{dim} is omitted, it defaults to the first non-singleton dimension.
%% For example:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/@sym/dsolve.m
new/symbolic-3.0.1/inst/@sym/dsolve.m
--- old/symbolic-3.0.0/inst/@sym/dsolve.m 2022-07-05 10:33:43.000000000
+0200
+++ new/symbolic-3.0.1/inst/@sym/dsolve.m 2022-08-09 22:55:47.000000000
+0200
@@ -1,5 +1,6 @@
%% Copyright (C) 2014-2016, 2018-2019, 2022 Colin B. Macdonald
%% Copyright (C) 2014-2015 Andr??s Prieto
+%% Copyright (C) 2020 Rafael Laboissi??re
%% Copyright (C) 2020 Jing-Chen Peng
%%
%% This file is part of OctSymPy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/@sym/private/elementwise_op.m
new/symbolic-3.0.1/inst/@sym/private/elementwise_op.m
--- old/symbolic-3.0.0/inst/@sym/private/elementwise_op.m 2022-07-05
10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/inst/@sym/private/elementwise_op.m 2022-08-09
22:55:47.000000000 +0200
@@ -86,7 +86,7 @@
'for A in _ins:'
' if isinstance(A, MatrixBase):'
' if q is None:'
- ' q = A.as_mutable()'
+ ' q = A'
' else:'
' assert q.shape == A.shape, "Matrices in input must all
have the same shape"'
% all inputs were scalars:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/symbolic-3.0.0/inst/private/assert_have_python_and_sympy.m
new/symbolic-3.0.1/inst/private/assert_have_python_and_sympy.m
--- old/symbolic-3.0.0/inst/private/assert_have_python_and_sympy.m
2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/inst/private/assert_have_python_and_sympy.m
2022-08-09 22:55:47.000000000 +0200
@@ -97,10 +97,19 @@
disp ('')
disp ('Let''s check what version of Python we are calling...')
disp ('')
- fprintf ('Attempting to run %s -c "import sys; print(sys.version)"\n\n',
pyexec);
- [status, output] = system([pyexec ' -c "import sys; print(sys.version)"']);
+ fprintf ('Attempting to run %s -c "import sys; print(sys.version)"\n',
pyexec);
+ [status, output] = system ([pyexec ' -c "import sys;
print(sys.version)"']);
status
output
+ fprintf ('Running %s -c "import sys; print(sys.executable)"\n', pyexec);
+ [status, output] = system ([pyexec ' -c "import sys;
print(sys.executable)"']);
+ output
+ fprintf ('Checking if %s is running in a Cygwin-like POSIX
environment...', pyexec);
+ if python_env_is_cygwin_like (pyexec)
+ fprintf (' yes\n\n');
+ else
+ fprintf (' no\n\n');
+ end
disp ('');
show_system_info ();
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/private/cygpath.m
new/symbolic-3.0.1/inst/private/cygpath.m
--- old/symbolic-3.0.0/inst/private/cygpath.m 1970-01-01 01:00:00.000000000
+0100
+++ new/symbolic-3.0.1/inst/private/cygpath.m 2022-08-09 22:55:47.000000000
+0200
@@ -0,0 +1,39 @@
+%% Copyright (C) 2022 Alex Vong
+%%
+%% This file is part of OctSymPy.
+%%
+%% OctSymPy 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 (at your option) any later version.
+%%
+%% This software 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 software; see the file COPYING.
+%% If not, see <https://www.gnu.org/licenses/>.
+
+%% -*- texinfo -*-
+%% @defun cygpath ()
+%% Convert Windows native path to Cygwin POSIX-style path.
+%%
+%% @seealso{python_env_is_cygwin_like}
+%% @end defun
+
+function posix_path = cygpath (native_path)
+ %% FIXME: only allow safe characters inside "..."
+ if ~isempty (strfind (native_path, '"'))
+ error ('cygpath: native path %s must not contain "', native_path);
+ end
+
+ [status, out] = system (['cygpath -u "' native_path '"']);
+ if status ~= 0
+ error ('cygpath: cygpath exited with status %d', status);
+ end
+
+ posix_path = regexprep (out, '[\r]?[\n]$', ''); % strip trailing newline
+ assert (logical (regexp (posix_path, '^[^\r\n]+$'))); % validate path
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/symbolic-3.0.0/inst/private/python_env_is_cygwin_like.m
new/symbolic-3.0.1/inst/private/python_env_is_cygwin_like.m
--- old/symbolic-3.0.0/inst/private/python_env_is_cygwin_like.m 1970-01-01
01:00:00.000000000 +0100
+++ new/symbolic-3.0.1/inst/private/python_env_is_cygwin_like.m 2022-08-09
22:55:47.000000000 +0200
@@ -0,0 +1,54 @@
+%% Copyright (C) 2022 Alex Vong
+%%
+%% This file is part of OctSymPy.
+%%
+%% OctSymPy 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 (at your option) any later version.
+%%
+%% This software 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 software; see the file COPYING.
+%% If not, see <https://www.gnu.org/licenses/>.
+
+%% -*- texinfo -*-
+%% @defun python_env_is_cygwin_like (pyexec)
+%% Check if Python @var{pyexec} is running in a Cygwin-like POSIX environment,
+%% such as Cygwin or MSYS2. The result is memoized to speed up subsequent
+%% calls.
+%%
+%% @seealso{cygpath}
+%% @end defun
+
+function r = python_env_is_cygwin_like (pyexec)
+ persistent python_env_is_cygwin_like_memo
+
+ if ~isempty (python_env_is_cygwin_like_memo)
+ r = python_env_is_cygwin_like_memo;
+ return
+ end
+
+ if ispc ()
+ if system ('where /q cygpath') ~= 0
+ r = false;
+ python_env_is_cygwin_like_memo = r;
+ return
+ end
+
+ [status, out] = system ([pyexec ' -c "import os; print(os.name)"']);
+ if status ~= 0
+ error ('python_env_is_cygwin_like: %s exited with status %d', ...
+ pyexec, status);
+ end
+ r = ~isempty (regexp (out, 'posix', 'match'));
+ python_env_is_cygwin_like_memo = r;
+ else
+ r = false;
+ python_env_is_cygwin_like_memo = r;
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/private/python_ipc_system.m
new/symbolic-3.0.1/inst/private/python_ipc_system.m
--- old/symbolic-3.0.0/inst/private/python_ipc_system.m 2022-07-05
10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/inst/private/python_ipc_system.m 2022-08-09
22:55:47.000000000 +0200
@@ -1,4 +1,5 @@
%% Copyright (C) 2014-2016, 2022 Colin B. Macdonald
+%% Copyright (C) 2022 Alex Vong
%%
%% This file is part of OctSymPy.
%%
@@ -113,12 +114,28 @@
disp (['This session will use the temp file "' tmpfilename '"'])
end
end
- fd = fopen (tmpfilename, 'w');
+ [fd, msg] = fopen (tmpfilename, 'w');
+ if fd < 0
+ error ('system ipc: failed to create temporary file %s: %s', ...
+ tmpfilename, msg);
+ end
fprintf(fd, '# temporary autogenerated code\n\n');
% we just added two more lines at the top
info.prelines = info.prelines + 2;
- fputs(fd, bigs);
- fclose(fd);
+ status = fputs(fd, bigs);
+ if status < 0
+ error ('system ipc: failed to write the big string to %s (fd %d)', ...
+ tmpfilename, fd);
+ end
+ status = fclose(fd);
+ if status < 0
+ error ('system ipc: failed to close %s (fd %d) after writing', ...
+ tmpfilename, fd);
+ end
+
+ if python_env_is_cygwin_like (pyexec)
+ tmpfilename = cygpath (tmpfilename);
+ end
[status, out] = system ([pyexec ' ' tmpfilename]);
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/pycall_sympy__.m
new/symbolic-3.0.1/inst/pycall_sympy__.m
--- old/symbolic-3.0.0/inst/pycall_sympy__.m 2022-07-05 10:33:43.000000000
+0200
+++ new/symbolic-3.0.1/inst/pycall_sympy__.m 2022-08-09 22:55:47.000000000
+0200
@@ -437,7 +437,13 @@
%! % This tests the "INTERNAL_PYTHON_ERROR" path.
%! % FIXME: this is a very specialized test, relies on internal octsympy
%! % implementation details, and may need to be adjusted for changes.
-%! b = sym([], 'S.make_an_attribute_err_exception', [1 1], 'Test', 'Test',
'Test');
+%! disp('')
+%!
disp('**********************************************************************')
+%! disp('')
+%! disp(' Some deliberate AttributeError and ValueError may appear next')
+%! disp('')
+%! disp('v v v v v v v v v v v v v v v v v v v v v v v
v')
+%! b = sym([], 'S.This_is_supposed_to_make_an_exception', [1 1], 'Test',
'Test', 'Test');
%! c = b + 1;
%!test
%! % ...and after the above test, the pipe should still work
@@ -454,6 +460,10 @@
%! assert (~ isempty (regexp (msg, '.*does not know how to.*')))
%! end
%! warning (s)
+%!
disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^')
+%! disp(' End of deliberate errors!')
+%! disp(' You should see "46/46" or "Passes 46 out of 46 tests" below')
+%!
disp('**********************************************************************')
%! % ...and after the above test, the pipe should still work
%! a = pycall_sympy__ ('return _ins[0]*2', 3);
%! assert (isequal (a, 6))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/inst/sympref.m
new/symbolic-3.0.1/inst/sympref.m
--- old/symbolic-3.0.0/inst/sympref.m 2022-07-05 10:33:43.000000000 +0200
+++ new/symbolic-3.0.1/inst/sympref.m 2022-08-09 22:55:47.000000000 +0200
@@ -1,6 +1,7 @@
%% Copyright (C) 2014-2020, 2022 Colin B. Macdonald
%% Copyright (C) 2017 NVS Abhilash
%% Copyright (C) 2017 Mike Miller
+%% Copyright (C) 2022 Alex Vong
%%
%% This file is part of OctSymPy.
%%
@@ -173,7 +174,7 @@
%% @example
%% @group
%% sympref version
-%% @result{} 3.0.0
+%% @result{} 3.0.1
%% @end group
%% @end example
%%
@@ -216,7 +217,7 @@
case 'version'
assert (nargin == 1)
- varargout{1} = '3.0.0';
+ varargout{1} = '3.0.1';
case 'display'
if (nargin == 1)
@@ -318,7 +319,7 @@
%pkg_path = fileparts (mfilename ('fullpath'));
% or
%pkg_l = pkg ('list');
- %idx = strcmp ('octsympy', cellfun (@(x) x.name, pkg_l, "UniformOutput",
false));
+ %idx = strcmp ('octsympy', cellfun (@(x) x.name, pkg_l, 'UniformOutput',
false));
%if (~ any (idx))
% error ('the package %s is not installed', your_pkg);
%end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/symbolic-3.0.0/misc/.oct-config
new/symbolic-3.0.1/misc/.oct-config
--- old/symbolic-3.0.0/misc/.oct-config 1970-01-01 01:00:00.000000000 +0100
+++ new/symbolic-3.0.1/misc/.oct-config 2022-08-09 22:55:47.000000000 +0200
@@ -0,0 +1 @@
+encoding=utf-8