From 4e37aa23f0e0228d2184364ea3dc9730d5f85c3eb45c5bd6f9b9df9f511d887a Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Sat, 31 Dec 2022 06:04:33 +0000 Subject: [PATCH] Accepting request 1045813 from home:StefanBruens:branches:science - Update to version 5.3: * Long list of changes, see https://www.dynare.org/new-dynare-release/dynare-5.3-released/ - Remove upstream patches: * dynare-5.1-gcc-12.patch * dynare-octave7-compat.patch OBS-URL: https://build.opensuse.org/request/show/1045813 OBS-URL: https://build.opensuse.org/package/show/science/dynare?expand=0&rev=7 --- dynare-5.1-gcc-12.patch | 27 -- dynare-5.1.tar.xz | 3 - dynare-5.3.tar.xz | 3 + dynare-octave7-compat.patch | 611 ------------------------------------ dynare.changes | 10 + dynare.spec | 7 +- 6 files changed, 14 insertions(+), 647 deletions(-) delete mode 100644 dynare-5.1-gcc-12.patch delete mode 100644 dynare-5.1.tar.xz create mode 100644 dynare-5.3.tar.xz delete mode 100644 dynare-octave7-compat.patch diff --git a/dynare-5.1-gcc-12.patch b/dynare-5.1-gcc-12.patch deleted file mode 100644 index a572ea0..0000000 --- a/dynare-5.1-gcc-12.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3823379966f15a377c863b0d15694b146854dfd8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= -Date: Mon, 2 May 2022 17:03:42 +0200 -Subject: [PATCH] Compatibility fix for GCC 12 - -Ref. dynare#1852 - -(cherry picked from commit 8c07fb5e4310b2ec2988dc62256e1cf0971c05dd) ---- - src/DataTree.hh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/DataTree.hh b/src/DataTree.hh -index 62da5681..6e9f818d 100644 ---- a/src/DataTree.hh -+++ b/src/DataTree.hh -@@ -29,6 +29,7 @@ using namespace std; - #include - #include - #include -+#include - - #include "SymbolTable.hh" - #include "NumericalConstants.hh" --- -GitLab - diff --git a/dynare-5.1.tar.xz b/dynare-5.1.tar.xz deleted file mode 100644 index aed8334..0000000 --- a/dynare-5.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:269b2b52d9e7af0bf06041b48e730dd5c2fb89577bed24ad5e4b51e0dca9dbbe -size 18000696 diff --git a/dynare-5.3.tar.xz b/dynare-5.3.tar.xz new file mode 100644 index 0000000..36a2805 --- /dev/null +++ b/dynare-5.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbbbd319f9a1cb7ffd4f7012be105a7c95842ca76d9d96e96305e1fbf8d8b585 +size 17889036 diff --git a/dynare-octave7-compat.patch b/dynare-octave7-compat.patch deleted file mode 100644 index 782fe0f..0000000 --- a/dynare-octave7-compat.patch +++ /dev/null @@ -1,611 +0,0 @@ -Index: dynare-5.1/doc/manual/source/installation-and-configuration.rst -=================================================================== ---- dynare-5.1.orig/doc/manual/source/installation-and-configuration.rst -+++ dynare-5.1/doc/manual/source/installation-and-configuration.rst -@@ -15,10 +15,10 @@ compilation steps are necessary in that - In order to run Dynare, you need one of the following: - - * MATLAB, any version ranging from 8.3 (R2014a) to 9.12 (R2022a); --* GNU Octave, any version ranging from 5.2.0 to 6.4.0, with the statistics -- package from `Octave-Forge`_. Note however that the Dynare installer for -- Windows requires a more specific version of Octave, as indicated on the -- download page. -+* GNU Octave version ranging from 6.2.0 to 7.1.0, with the statistics package -+ from `Octave-Forge`_. Note however that the Dynare installer for Windows -+ requires a more specific version of Octave, as indicated on the download -+ page. - - The following optional extensions are also useful to benefit from - extra features, but are in no way required: -Index: dynare-5.1/matlab/+estimate/nls.m -=================================================================== ---- dynare-5.1.orig/matlab/+estimate/nls.m -+++ dynare-5.1/matlab/+estimate/nls.m -@@ -253,9 +253,8 @@ fclose(fid); - - % Workaround for Octave bug https://savannah.gnu.org/bugs/?46282 - % Octave will randomly fail to read the ssr_* file generated in the +folder --if isoctave -- rename(['+' M_.fname], ['+' M_.fname '-tmp']); -- rename(['+' M_.fname '-tmp'], ['+' M_.fname]); -+if isoctave && octave_ver_less_than('7') -+ path(path) - end - - % Create a function handle returning the sum of square residuals for a given vector of parameters. -Index: dynare-5.1/matlab/+mom/run.m -=================================================================== ---- dynare-5.1.orig/matlab/+mom/run.m -+++ dynare-5.1/matlab/+mom/run.m -@@ -63,7 +63,7 @@ function [oo_, options_mom_, M_] = run(b - % o set_all_parameters.m - % o test_for_deep_parameters_calibration.m - % ========================================================================= --% Copyright (C) 2020-2021 Dynare Team -+% Copyright © 2020-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -1017,11 +1017,7 @@ fprintf('\n==== Method of Moments Estima - % Step 9: Clean up - % ------------------------------------------------------------------------- - %reset warning state --if isoctave -- warning('on') --else -- warning on --end -+warning_config; - - if isoctave && isfield(options_, 'prior_restrictions') && ... - isfield(options_.prior_restrictions, 'routine') -Index: dynare-5.1/matlab/+occbin/kalman_update_algo_1.m -=================================================================== ---- dynare-5.1.orig/matlab/+occbin/kalman_update_algo_1.m -+++ dynare-5.1/matlab/+occbin/kalman_update_algo_1.m -@@ -42,7 +42,7 @@ function [a, a1, P, P1, v, T, R, C, regi - % Philipp Pfeiffer, Marco Ratto (2021), Efficient and robust inference of models with occasionally binding - % constraints, Working Papers 2021-03, Joint Research Centre, European Commission - --% Copyright (C) 2021 Dynare Team -+% Copyright © 2021-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -323,7 +323,7 @@ P(:,:,2) = T(:,:,2)*P(:,:,1)*transpose(T - regimes_=regimes_(1:3); - etahat=etahat(:,2); - --warning on -+warning_config; - end - - function [a, a1, P, P1, v, alphahat, etahat, lik] = occbin_kalman_update0(a,a1,P,P1,data_index,Z,v,Y,H,QQQ,TT,RR,CC,iF,L,mm, rescale_prediction_error_covariance, IF_likelihood) -@@ -424,5 +424,5 @@ while t > 1 - end - end - --warning on -+warning_config; - end -Index: dynare-5.1/matlab/+pac/+estimate/nls.m -=================================================================== ---- dynare-5.1.orig/matlab/+pac/+estimate/nls.m -+++ dynare-5.1/matlab/+pac/+estimate/nls.m -@@ -166,9 +166,8 @@ fclose(fid); - - % Workaround for Octave bug https://savannah.gnu.org/bugs/?46282 - % Octave will randomly fail to read the ssr_* file generated in the +folder --if isoctave -- rename(['+' M_.fname], ['+' M_.fname '-tmp']); -- rename(['+' M_.fname '-tmp'], ['+' M_.fname]); -+if isoctave && octave_ver_less_than('7') -+ path(path) - end - - % Copy (sub)sample data in a matrix. -Index: dynare-5.1/matlab/WriteShockDecomp2Excel.m -=================================================================== ---- dynare-5.1.orig/matlab/WriteShockDecomp2Excel.m -+++ dynare-5.1/matlab/WriteShockDecomp2Excel.m -@@ -11,7 +11,7 @@ function WriteShockDecomp2Excel(z,shock_ - % DynareModel [structure] Dynare model structure - % DynareOptions [structure] Dynare options structure - --% Copyright (C) 2016-2021 Dynare Team -+% Copyright © 2016-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -124,7 +124,7 @@ for j=1:nvar - else - writetable(cell2table(d0), [OutputDirectoryName,filesep,DynareModel.fname,'_shock_decomposition',fig_mode,fig_name1 '.xls'], 'Sheet', endo_names{i_var(j)},'WriteVariableNames',false); - end -- warning on -+ warning_config; - - clear d0 - -Index: dynare-5.1/matlab/dynare_estimation_1.m -=================================================================== ---- dynare-5.1.orig/matlab/dynare_estimation_1.m -+++ dynare-5.1/matlab/dynare_estimation_1.m -@@ -12,7 +12,7 @@ function dynare_estimation_1(var_list_,d - % SPECIAL REQUIREMENTS - % none - --% Copyright (C) 2003-2021 Dynare Team -+% Copyright © 2003-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -32,7 +32,7 @@ function dynare_estimation_1(var_list_,d - global M_ options_ oo_ estim_params_ bayestopt_ dataset_ dataset_info - - if ~exist([M_.dname filesep 'Output'],'dir') -- if isoctave && ~exist(M_.dname) -+ if isoctave && octave_ver_less_than('7') && ~exist(M_.dname) - % See https://savannah.gnu.org/bugs/index.php?61166 - % This workaround is needed for recursive estimation. - mkdir(M_.dname) -Index: dynare-5.1/matlab/dynare_identification.m -=================================================================== ---- dynare-5.1.orig/matlab/dynare_identification.m -+++ dynare-5.1/matlab/dynare_identification.m -@@ -46,7 +46,7 @@ function [pdraws, STO_REDUCEDFORM, STO_M - % * skipline - % * vnorm - % ========================================================================= --% Copyright (C) 2010-2021 Dynare Team -+% Copyright © 2010-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -968,11 +968,7 @@ if SampleSize > 1 - end - - %reset warning state --if isoctave -- warning('on') --else -- warning on --end -+warning_config; - - fprintf('\n==== Identification analysis completed ====\n\n') - -Index: dynare-5.1/matlab/dynare_solve.m -=================================================================== ---- dynare-5.1.orig/matlab/dynare_solve.m -+++ dynare-5.1/matlab/dynare_solve.m -@@ -80,14 +80,14 @@ if ismember(options.solve_algo, [12, 14] - isauxdiffloggedrhs = varargin{2}; - endo_names = varargin{3}; - lhs = varargin{4}; -- arguments = varargin(5:end); -+ args = varargin(5:end); - else -- arguments = varargin; -+ args = varargin; - end - - % checking initial values - if jacobian_flag -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - wrong_initial_guess_flag = false; - if ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))) ... - || any(~isreal(fvec)) || any(~isreal(fjac(:))) -@@ -103,7 +103,7 @@ if jacobian_flag - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = rand(in0, 1)*10; -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))); - end - % If all previous attempts failed, try with real numbers. -@@ -111,7 +111,7 @@ if jacobian_flag - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = randn(in0, 1)*10; -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))); - end - % Last tentative, ff all previous attempts failed, try with negative numbers. -@@ -119,12 +119,12 @@ if jacobian_flag - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = -rand(in0, 1)*10; -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))); - end - end - else -- fvec = feval(f, x, arguments{:}); -+ fvec = feval(f, x, args{:}); - fjac = zeros(nn, nn); - wrong_initial_guess_flag = false; - if ~all(isfinite(fvec)) -@@ -135,7 +135,7 @@ else - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = rand(in0, 1)*10; -- fvec = feval(f, x, arguments{:}); -+ fvec = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)); - end - % If all previous attempts failed, try with real numbers. -@@ -143,7 +143,7 @@ else - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = randn(in0, 1)*10; -- fvec = feval(f, x, arguments{:}); -+ fvec = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)); - end - % Last tentative, ff all previous attempts failed, try with negative numbers. -@@ -151,7 +151,7 @@ else - while wrong_initial_guess_flag && tentative_number<=in0*10 - tentative_number = tentative_number+1; - x(idx) = -rand(in0, 1)*10; -- fvec = feval(f, x, arguments{:}); -+ fvec = feval(f, x, args{:}); - wrong_initial_guess_flag = ~all(isfinite(fvec)); - end - end -@@ -191,7 +191,7 @@ if options.solve_algo == 0 - options4fsolve.Jacobian = 'off'; - end - if ~isoctave -- [x, ~, exitval] = fsolve(f, x, options4fsolve, arguments{:}); -+ [x, ~, errorcode] = fsolve(f, x, options4fsolve, args{:}); - else - % Under Octave, use a wrapper, since fsolve() does not have a 4th arg - if ischar(f) -@@ -199,13 +199,19 @@ if options.solve_algo == 0 - else - f2 = f; - end -- f = @(x) f2(x, arguments{:}); -- % The Octave version of fsolve does not converge when it starts from the solution -- fvec = feval(f, x); -- if max(abs(fvec)) >= tolf -- [x, ~,exitval] = fsolve(f, x, options4fsolve); -- else -- exitval = 3; -+ f = @(x) f2(x, args{:}); -+ [x, ~, errorcode] = fsolve(f, x, options4fsolve); -+ end -+ if errorcode==1 -+ errorflag = false; -+ elseif errorcode>1 -+ if ~isoctave -+ if ischar(f) -+ f2 = str2func(f); -+ else -+ f2 = f; -+ end -+ f = @(x) f2(x, args{:}); - end - end - -@@ -227,14 +233,13 @@ if options.solve_algo == 0 - else - errorflag = true; - end -+ [fvec, fjac] = feval(f, x, args{:}); - elseif options.solve_algo==1 -- [x, errorflag] = solve1(f, x, 1:nn, 1:nn, jacobian_flag, options.gstep, ... -- tolf, tolx, ... -- maxit, options.debug, arguments{:}); -+ [x, errorflag, errorcode] = solve1(f, x, 1:nn, 1:nn, jacobian_flag, options.gstep, tolf, tolx, maxit, [], options.debug, args{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - elseif options.solve_algo==9 -- [x, errorflag] = trust_region(f, x, 1:nn, 1:nn, jacobian_flag, options.gstep, ... -- tolf, tolx, ... -- maxit, options.debug, arguments{:}); -+ [x, errorflag, errorcode] = trust_region(f, x, 1:nn, 1:nn, jacobian_flag, options.gstep, tolf, tolx, maxit, options.trust_region_initial_step_bound_factor, options.debug, args{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - elseif ismember(options.solve_algo, [2, 12, 4]) - if ismember(options.solve_algo, [2, 12]) - solver = @solve1; -@@ -248,7 +253,7 @@ elseif ismember(options.solve_algo, [2, - for j = 1:nn - xdh = x ; - xdh(j) = xdh(j)+dh(j) ; -- fjac(:,j) = (feval(f, xdh, arguments{:})-fvec)./dh(j) ; -+ fjac(:,j) = (feval(f, xdh, args{:})-fvec)./dh(j) ; - end - end - [j1,j2,r,s] = dmperm(fjac); -@@ -273,13 +278,13 @@ elseif ismember(options.solve_algo, [2, - if fre || any(JAC(r(i), s(i)+(1:l))) - % Reevaluation of the residuals is required because the current RHS depends on - % variables that potentially have been updated previously. -- z = feval(f, x, arguments{:}); -+ z = feval(f, x, args{:}); - l = 0; - fre = false; - end - else - % First iteration requires the evaluation of the residuals. -- z = feval(f, x, arguments{:}); -+ z = feval(f, x, args{:}); - end - l = l+1; - if isequal(lhs{j1(j)}, endo_names{j2(j)}) || isequal(lhs{j1(j)}, sprintf('log(%s)', endo_names{j2(j)})) -@@ -310,38 +315,47 @@ elseif ismember(options.solve_algo, [2, - dprintf('DYNARE_SOLVE (solve_algo=2|4|12): solving block %u with trust_region routine.', i); - end - end -- [x, errorflag] = solver(f, x, j1(j), j2(j), jacobian_flag, ... -- options.gstep, ... -- tolf, options.solve_tolx, ... -- maxit, options.debug, arguments{:}); -+ [x, errorflag, errorcode] = solver(f, x, j1(j), j2(j), jacobian_flag, ... -+ options.gstep, ... -+ tolf, options.solve_tolx, maxit, ... -+ options.trust_region_initial_step_bound_factor, ... -+ options.debug, args{:}); - fre = true; - if errorflag - return - end - end -- fvec = feval(f, x, arguments{:}); -+ fvec = feval(f, x, args{:}); - if max(abs(fvec))>tolf - disp_verbose('Call solver on the full nonlinear problem.',options.verbosity) -- [x, errorflag] = solver(f, x, 1:nn, 1:nn, jacobian_flag, ... -- options.gstep, tolf, options.solve_tolx, ... -- maxit, options.debug, arguments{:}); -+ [x, errorflag, errorcode] = solver(f, x, 1:nn, 1:nn, jacobian_flag, ... -+ options.gstep, tolf, options.solve_tolx, maxit, ... -+ options.trust_region_initial_step_bound_factor, ... -+ options.debug, args{:}); - end -+ [fvec, fjac] = feval(f, x, args{:}); - elseif options.solve_algo==3 - if jacobian_flag -- [x, errorflag] = csolve(f, x, f, tolf, maxit, arguments{:}); -+ [x, errorcode] = csolve(f, x, f, tolf, maxit, args{:}); - else -- [x, errorflag] = csolve(f, x, [], tolf, maxit, arguments{:}); -+ [x, errorcode] = csolve(f, x, [], tolf, maxit, args{:}); -+ end -+ if errorcode==0 -+ errorflag = false; -+ else -+ errorflag = true; - end -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - elseif options.solve_algo==10 - % LMMCP - olmmcp = options.lmmcp; -- [x, ~, exitflag] = lmmcp(f, x, olmmcp.lb, olmmcp.ub, olmmcp, arguments{:}); -- if exitflag==1 -+ [x, fvec, errorcode, ~, fjac] = lmmcp(f, x, olmmcp.lb, olmmcp.ub, olmmcp, args{:}); -+ if errorcode==1 - errorflag = false; - else - errorflag = true; - end -+ [fvec, fjac] = feval(f, x, args{:}); - elseif options.solve_algo == 11 - % PATH mixed complementary problem - % PATH linear mixed complementary problem -@@ -353,12 +367,14 @@ elseif options.solve_algo == 11 - omcppath = options.mcppath; - global mcp_data - mcp_data.func = f; -- mcp_data.args = arguments; -+ mcp_data.args = args; - try - [x, fval, jac, mu] = pathmcp(x,omcppath.lb,omcppath.ub,'mcp_func',omcppath.A,omcppath.b,omcppath.t,omcppath.mu0); - catch - errorflag = true; - end -+ errorcode = nan; % There is no error code for this algorithm, as PATH is closed source it is unlikely we can fix that. -+ [fvec, fjac] = feval(f, x, args{:}); - elseif ismember(options.solve_algo, [13, 14]) - if ~jacobian_flag - error('DYNARE_SOLVE: option solve_algo=13|14 needs computed Jacobian') -@@ -370,8 +386,8 @@ elseif ismember(options.solve_algo, [13, - auxstruct.isloggedlhs = isloggedlhs; - auxstruct.isauxdiffloggedrhs = isauxdiffloggedrhs; - end -- [x, errorflag] = block_trust_region(f, x, tolf, options.solve_tolx, maxit, options.debug, auxstruct, arguments{:}); -- [fvec, fjac] = feval(f, x, arguments{:}); -+ [x, errorflag, errorcode] = block_trust_region(f, x, tolf, options.solve_tolx, maxit, options.trust_region_initial_step_bound_factor, options.debug, auxstruct, args{:}); -+ [fvec, fjac] = feval(f, x, args{:}); - else - error('DYNARE_SOLVE: option solve_algo must be one of [0,1,2,3,4,9,10,11,12,13,14]') - end -Index: dynare-5.1/matlab/loadjson_.m -=================================================================== ---- dynare-5.1.orig/matlab/loadjson_.m -+++ dynare-5.1/matlab/loadjson_.m -@@ -9,11 +9,10 @@ function o = loadjson_(jsonfilename) - % - o [struct] content of the JSON file. - % - % REMARKS --% jsondecode builtin was introduced in Matlab R2016b and is not --% available under Octave. Old Matlab versions and Octave use --% jsonlab as fallback. -+% jsondecode builtin was introduced in MATLAB R2016b and in Octave 7. -+% Older MATLAB and Octave versions use jsonlab as fallback. - --% Copyright (C) 2020-2021 Dynare Team -+% Copyright © 2020-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -30,7 +29,7 @@ function o = loadjson_(jsonfilename) - % You should have received a copy of the GNU General Public License - % along with Dynare. If not, see . - --if isoctave() || matlab_ver_less_than('9.1') -+if (isoctave && octave_ver_less_than('7')) || (~isoctave && matlab_ver_less_than('9.1')) - o = loadjson(jsonfilename); - return - end -Index: dynare-5.1/matlab/missing/mex/mjdgges/mjdgges.m -=================================================================== ---- dynare-5.1.orig/matlab/missing/mex/mjdgges/mjdgges.m -+++ dynare-5.1/matlab/missing/mex/mjdgges/mjdgges.m -@@ -18,7 +18,7 @@ function [ss, tt, zz, sdim, eigval, info - % SPECIAL REQUIREMENTS - % none. - --% Copyright (C) 1996-2020 Dynare Team -+% Copyright © 1996-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -40,7 +40,7 @@ if nargin > 5 || nargin < 2 || nargout > - end - - if isoctave -- error('Octave unsupported, since it does not have real qz, ordqz and ordeig') -+ error('Octave unsupported, since it does not have real qz') - end - - [me, ne] = size(e); -@@ -80,4 +80,4 @@ end - %$ t(1) = 0; - %$ end - %$ T = all(t); --%@eof:1 -\ No newline at end of file -+%@eof:1 -Index: dynare-5.1/matlab/warning_config.m -=================================================================== ---- dynare-5.1.orig/matlab/warning_config.m -+++ dynare-5.1/matlab/warning_config.m -@@ -41,6 +41,7 @@ if isoctave - warning('off', 'Octave:num-to-str'); - warning('off', 'Octave:resize-on-range-error'); - warning('off', 'Octave:str-to-num'); -+ warning('off', 'Octave:array-as-logical'); - warning('off', 'Octave:array-to-scalar'); - warning('off', 'Octave:array-to-vector'); - warning('off', 'Octave:mixed-string-concat'); -Index: dynare-5.1/mex/build/octave/configure.ac -=================================================================== ---- dynare-5.1.orig/mex/build/octave/configure.ac -+++ dynare-5.1/mex/build/octave/configure.ac -@@ -34,7 +34,9 @@ AR=$($MKOCTFILE -p AR) - RANLIB=$($MKOCTFILE -p RANLIB) - CFLAGS=$($MKOCTFILE -p CFLAGS) - CXXFLAGS=$($MKOCTFILE -p CXXFLAGS) --LDFLAGS="$($MKOCTFILE -p LFLAGS) $($MKOCTFILE -p LDFLAGS)" -+# The --link-stand-alone is needed since Octave 7 to avoid inserting -shared, which -+# is undesirable for generic LDFLAGS. -+LDFLAGS=$($MKOCTFILE --link-stand-alone -p LDFLAGS) - - AC_CANONICAL_HOST - -Index: dynare-5.1/tests/Makefile.am -=================================================================== ---- dynare-5.1.orig/tests/Makefile.am -+++ dynare-5.1/tests/Makefile.am -@@ -1383,7 +1383,7 @@ check-matlab-ols: $(M_OLS_TRS_FILES) - %.o.trs %.o.log: %.mod - @echo "`tput bold``tput setaf 8`OCTAVE: $(CURDIR)/$*... `tput sgr0`" - @DYNARE_VERSION="$(PACKAGE_VERSION)" TOP_TEST_DIR="$(CURDIR)" FILESTEM="$*" \ -- $(OCTAVE) --no-init-file --silent --no-history --path "$*.mod" run_test_octave.m > $*.o.log 2>&1 || \ -+ xvfb-run -a $(OCTAVE) --no-init-file --silent --no-history --path "$*.mod" run_test_octave.m > $*.o.log 2>&1 || \ - printf ":test-result: FAIL\n:number-tests: 1\n:number-failed-tests: 1\n:list-of-failed-tests: $*.mod\n:elapsed-time: 0.0\n" > $*.o.trs - @if test -z "$(filter $*.o.trs,$(O_XFAIL_TRS_FILES))"; then pass_color=2; fail_color=1; else pass_color=1; fail_color=2; fi; \ - if grep -q ":test-result: PASS" $*.o.trs; then \ -@@ -1398,7 +1398,7 @@ check-matlab-ols: $(M_OLS_TRS_FILES) - %.o.trs %.o.log : %.m - @echo "`tput bold``tput setaf 8`OCTAVE: $(CURDIR)/$*... `tput sgr0`" - @DYNARE_VERSION="$(PACKAGE_VERSION)" TOP_TEST_DIR="$(CURDIR)" \ -- $(OCTAVE) --no-init-file --silent --no-history $< > $*.o.log 2>&1 || \ -+ xvfb-run -a $(OCTAVE) --no-init-file --silent --no-history $< > $*.o.log 2>&1 || \ - printf ":test-result: FAIL\n:number-tests: 1\n:number-failed-tests: 1\n:list-of-failed-tests: $*.m\n:elapsed-time: 0.0\n" > $*.o.trs - @echo "`tput bold``tput setaf 8`OCTAVE: $(CURDIR)/$* Done!`tput sgr0`" - -@@ -1412,7 +1412,7 @@ check-matlab-ols: $(M_OLS_TRS_FILES) - %.o.tls : %.m - @echo "`tput bold``tput setaf 8`OCTAVE: $(CURDIR)/$*... `tput sgr0`" - @TOP_TEST_DIR="$(CURDIR)" FILESTEM="$*" \ -- $(OCTAVE) --no-init-file --silent --no-history run_o_script.m 2>&1 -+ xvfb-run -a $(OCTAVE) --no-init-file --silent --no-history run_o_script.m 2>&1 - @touch $*.o.tls - @echo "`tput bold``tput setaf 8`OCTAVE: $(CURDIR)/$* Done!`tput sgr0`" - -Index: dynare-5.1/tests/external_function/no_deriv_given_dll.mod -=================================================================== ---- dynare-5.1.orig/tests/external_function/no_deriv_given_dll.mod -+++ dynare-5.1/tests/external_function/no_deriv_given_dll.mod -@@ -55,7 +55,7 @@ end - if max(max(abs(L.oo_.dr.ghxu - oo_.dr.ghxu))) > 1e-4 - error('Failure in external function') - end --if max(max(abs(L.oo_.dr.ghxx - oo_.dr.ghxx))) > 1e-3 -+if max(max(abs(L.oo_.dr.ghxx - oo_.dr.ghxx))) > 2e-3 - error('Failure in external function') - end - if max(max(abs(L.oo_.dr.ghuu - oo_.dr.ghuu))) > 1e-5 -Index: dynare-5.1/tests/run_all_unitary_tests.m -=================================================================== ---- dynare-5.1.orig/tests/run_all_unitary_tests.m -+++ dynare-5.1/tests/run_all_unitary_tests.m -@@ -1,4 +1,4 @@ --% Copyright (C) 2013-2020 Dynare Team -+% Copyright © 2013-2022 Dynare Team - % - % This file is part of Dynare. - % -@@ -39,7 +39,7 @@ if isoctave - end - - % Set random seed, for reproducibility --if isoctave -+if isoctave && octave_ver_less_than('7') - randn('state',1); - rand('state',1); - else -Index: dynare-5.1/tests/run_block_byte_tests_octave.m -=================================================================== ---- dynare-5.1.orig/tests/run_block_byte_tests_octave.m -+++ dynare-5.1/tests/run_block_byte_tests_octave.m -@@ -61,8 +61,10 @@ for blockFlag = 0:1 - - # Workaround for strange race condition related to the static/dynamic - # files (especially when we switch to/from use_dll) -- rmdir('+ls2003_tmp', 's'); -- pause(1) -+ if exist('+ls2003_tmp') -+ rmdir('+ls2003_tmp', 's'); -+ pause(1) -+ endif - - for i = 1:length(solve_algos) - num_block_tests = num_block_tests + 1; -Index: dynare-5.1/windows/deps/mkoctfile64 -=================================================================== ---- dynare-5.1.orig/windows/deps/mkoctfile64 -+++ dynare-5.1/windows/deps/mkoctfile64 -@@ -1,10 +1,10 @@ - #! /bin/sh - --## Make sure to keep -static-libgcc, -static-libstdc++ and -static-libgfortran in LDFLAGS and --## DL_LDFLAGS when updating this file. --## This is needed to cope for differences between the MinGW libraries shipped by the official Octave --## package for Windows, and the MinGW libraries from Debian used on the runners. --## Also keep BINDIR in DEFAULT_LFLAGS (for UMFPACK) -+## Make sure to keep -static-libgcc, -static-libstdc++ and -static-libgfortran -+## in DL_LDFLAGS when updating this file. -+## Do not add -shared in LDFLAGS (i.e. this file should mimick “mkoctfile -+## --link-stand-alone”, see the top of mex/build/configure.ac). -+## Also keep BINDIR in DEFAULT_LDFLAGS (for UMFPACK). - - # Exit immediately on any error. - set -e diff --git a/dynare.changes b/dynare.changes index 6fb2df8..ab38dca 100644 --- a/dynare.changes +++ b/dynare.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Dec 30 10:21:23 UTC 2022 - Stefan Brüns + +- Update to version 5.3: + * Long list of changes, see + https://www.dynare.org/new-dynare-release/dynare-5.3-released/ +- Remove upstream patches: + * dynare-5.1-gcc-12.patch + * dynare-octave7-compat.patch + ------------------------------------------------------------------- Mon Jun 27 20:34:53 UTC 2022 - Antoine Belvire diff --git a/dynare.spec b/dynare.spec index b8862dc..2176ed8 100644 --- a/dynare.spec +++ b/dynare.spec @@ -26,7 +26,7 @@ %bcond_without doc %endif Name: dynare -Version: 5.1 +Version: 5.3 Release: 0 Summary: A platform for handling a wide class of economic models License: GPL-3.0-or-later @@ -34,9 +34,6 @@ URL: https://www.dynare.org/ Source: https://www.dynare.org/release/source/%{name}-%{version}.tar.xz # PATCH-FIX-UPSTREAM dynare-no-return-in-non-void-function.patch badshah400@gmail.com -- Return trivial value from a function that is not declared as returning void Patch0: dynare-no-return-in-non-void-function.patch -Patch1: dynare-octave7-compat.patch -# PATCH-FIX-UPSTREAM dynare-5.1-gcc-12.patch -- Fix build with gcc 12 (https://git.dynare.org/Dynare/dynare/-/issues/1852) -Patch2: dynare-5.1-gcc-12.patch BuildRequires: fdupes BuildRequires: gcc%{gccver}-c++ BuildRequires: gcc%{gccver}-fortran @@ -84,8 +81,6 @@ This package provides documentation for %{name} in HTML format. %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 -d preprocessor %build autoreconf -fvi