···19192020 <itemizedlist>
2121 <listitem>
2222+ <para>
2323+ Support for wrapping binaries using <literal>firejail</literal> has been
2424+ added through <varname>programs.firejail.wrappedBinaries</varname>.
2525+ </para>
2626+ <para>
2727+ For example
2828+ </para>
2929+<programlisting>
3030+programs.firejail = {
3131+ enable = true;
3232+ wrappedBinaries = {
3333+ firefox = "${lib.getBin pkgs.firefox}/bin/firefox";
3434+ mpv = "${lib.getBin pkgs.mpv}/bin/mpv";
3535+ };
3636+};
3737+</programlisting>
3838+ <para>
3939+ This will place <literal>firefox</literal> and <literal>mpv</literal> binaries in the global path wrapped by firejail.
4040+ </para>
4141+ </listitem>
4242+ <listitem>
2243 <para>
2344 User channels are now in the default <literal>NIX_PATH</literal>, allowing
2445 users to use their personal <command>nix-channel</command> defined
···19192020 Xsetup = pkgs.writeScript "Xsetup" ''
2121 #!/bin/sh
2222-2323- # Prior to Qt 5.9.2, there is a QML cache invalidation bug which sometimes
2424- # strikes new Plasma 5 releases. If the QML cache is not invalidated, SDDM
2525- # will segfault without explanation. We really tore our hair out for awhile
2626- # before finding the bug:
2727- # https://bugreports.qt.io/browse/QTBUG-62302
2828- # We work around the problem by deleting the QML cache before startup. It
2929- # will be regenerated, causing a small but perceptible delay when SDDM
3030- # starts.
3131- rm -fr /var/lib/sddm/.cache/sddm-greeter/qmlcache
3232-3322 ${cfg.setupScript}
3423 '';
3524···285274 # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
286275 services.xserver.tty = null;
287276 services.xserver.display = null;
277277+278278+ systemd.tmpfiles.rules = [
279279+ # Prior to Qt 5.9.2, there is a QML cache invalidation bug which sometimes
280280+ # strikes new Plasma 5 releases. If the QML cache is not invalidated, SDDM
281281+ # will segfault without explanation. We really tore our hair out for awhile
282282+ # before finding the bug:
283283+ # https://bugreports.qt.io/browse/QTBUG-62302
284284+ # We work around the problem by deleting the QML cache before startup.
285285+ # This was supposedly fixed in Qt 5.9.2 however it has been reported with
286286+ # 5.10 and 5.11 as well. The initial workaround was to delete the directory
287287+ # in the Xsetup script but that doesn't do anything.
288288+ # Instead we use tmpfiles.d to ensure it gets wiped.
289289+ # This causes a small but perceptible delay when SDDM starts.
290290+ "e ${config.users.users.sddm.home}/.cache - - - 0"
291291+ ];
288292 };
289293}
+1-1
nixos/modules/system/boot/stage-1.nix
···164164165165 # Strip binaries further than normal.
166166 chmod -R u+w $out
167167- stripDirs "lib bin" "-s"
167167+ stripDirs "$STRIP" "lib bin" "-s"
168168169169 # Run patchelf to make the programs refer to the copied libraries.
170170 find $out/bin $out/lib -type f | while read i; do
···2727 mv $out/lib $lib/lib
2828 mv $out/include $dev/include
29293030- # clean up a copy of libz3.so and symlink it instead
3131- rm $python/${python.sitePackages}/z3/lib/libz3.so
3232- ln -s $lib/lib/libz3.so $python/${python.sitePackages}/z3/lib/libz3.so
3030+ ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
3331 '';
34323533 outputs = [ "out" "lib" "dev" "python" ];
+6
pkgs/applications/science/math/sage/sage-src.nix
···8484 ];
85858686 packageUpgradePatches = [
8787+ (fetchpatch {
8888+ name = "cypari2-1.2.1.patch";
8989+ url = "https://git.sagemath.org/sage.git/patch/?h=62fe6eb15111327d930336d4252d5b23cbb22ab9";
9090+ sha256 = "1xax7vvs8h4xip16xcsp47xdb6lig6f2r3pl8cksvlz8lhgbyxh2";
9191+ })
9292+8793 # matplotlib 2.2.2 deprecated `normed` (replaced by `density`).
8894 # This patch only ignores the warning. It would be equally easy to fix it
8995 # (by replacing all mentions of `normed` by `density`), but its better to
···4646 export CVXOPT_FFTW_INC_DIR=${fftw.dev}/include
4747 '';
48484949+ # https://github.com/cvxopt/cvxopt/issues/122
5050+ # This is fixed on staging (by #43234, status 2018-07-15), but until that
5151+ # lands we should disable the tests. Otherwise the 99% of use cases that
5252+ # should be unaffected by that failure are affected.
5353+ doCheck = false;
4954 checkPhase = ''
5055 ${python.interpreter} -m unittest discover -s tests
5156 '';
···11+diff --git a/sklearn/linear_model/huber.py b/sklearn/linear_model/huber.py
22+index e17dc1e..665654d 100644
33+--- a/sklearn/linear_model/huber.py
44++++ b/sklearn/linear_model/huber.py
55+@@ -181,7 +181,11 @@ class HuberRegressor(LinearModel, RegressorMixin, BaseEstimator):
66+77+ n_iter_ : int
88+ Number of iterations that fmin_l_bfgs_b has run for.
99+- Not available if SciPy version is 0.9 and below.
1010++
1111++ .. versionchanged:: 0.20
1212++
1313++ In SciPy <= 1.0.0 the number of lbfgs iterations may exceed
1414++ ``max_iter``. ``n_iter_`` will now report at most ``max_iter``.
1515+1616+ outliers_ : array, shape (n_samples,)
1717+ A boolean mask which is set to True where the samples are identified
1818+@@ -272,7 +276,9 @@ class HuberRegressor(LinearModel, RegressorMixin, BaseEstimator):
1919+ raise ValueError("HuberRegressor convergence failed:"
2020+ " l-BFGS-b solver terminated with %s"
2121+ % dict_['task'].decode('ascii'))
2222+- self.n_iter_ = dict_.get('nit', None)
2323++ # In scipy <= 1.0.0, nit may exceed maxiter.
2424++ # See https://github.com/scipy/scipy/issues/7854.
2525++ self.n_iter_ = min(dict_.get('nit', None), self.max_iter)
2626+ self.scale_ = parameters[-1]
2727+ if self.fit_intercept:
2828+ self.intercept_ = parameters[-2]
2929+diff --git a/sklearn/linear_model/logistic.py b/sklearn/linear_model/logistic.py
3030+index 8646c9a..c72a7d9 100644
3131+--- a/sklearn/linear_model/logistic.py
3232++++ b/sklearn/linear_model/logistic.py
3333+@@ -718,7 +718,9 @@ def logistic_regression_path(X, y, pos_class=None, Cs=10, fit_intercept=True,
3434+ warnings.warn("lbfgs failed to converge. Increase the number "
3535+ "of iterations.")
3636+ try:
3737+- n_iter_i = info['nit'] - 1
3838++ # In scipy <= 1.0.0, nit may exceed maxiter.
3939++ # See https://github.com/scipy/scipy/issues/7854.
4040++ n_iter_i = min(info['nit'], max_iter)
4141+ except:
4242+ n_iter_i = info['funcalls'] - 1
4343+ elif solver == 'newton-cg':
4444+@@ -1115,6 +1117,11 @@ class LogisticRegression(BaseEstimator, LinearClassifierMixin,
4545+ it returns only 1 element. For liblinear solver, only the maximum
4646+ number of iteration across all classes is given.
4747+4848++ .. versionchanged:: 0.20
4949++
5050++ In SciPy <= 1.0.0 the number of lbfgs iterations may exceed
5151++ ``max_iter``. ``n_iter_`` will now report at most ``max_iter``.
5252++
5353+ See also
5454+ --------
5555+ SGDClassifier : incrementally trained logistic regression (when given
5656+diff --git a/sklearn/linear_model/tests/test_huber.py b/sklearn/linear_model/tests/test_huber.py
5757+index 08f4fdf..ca1092f 100644
5858+--- a/sklearn/linear_model/tests/test_huber.py
5959++++ b/sklearn/linear_model/tests/test_huber.py
6060+@@ -42,6 +42,13 @@ def test_huber_equals_lr_for_high_epsilon():
6161+ assert_almost_equal(huber.intercept_, lr.intercept_, 2)
6262+6363+6464++def test_huber_max_iter():
6565++ X, y = make_regression_with_outliers()
6666++ huber = HuberRegressor(max_iter=1)
6767++ huber.fit(X, y)
6868++ assert huber.n_iter_ == huber.max_iter
6969++
7070++
7171+ def test_huber_gradient():
7272+ # Test that the gradient calculated by _huber_loss_and_gradient is correct
7373+ rng = np.random.RandomState(1)
···11+{ stdenv, fetchurl, buildPythonPackage }:
22+33+buildPythonPackage rec {
44+ name = "wcwidth-${version}";
55+ version = "0.1.7";
66+77+ src = fetchurl {
88+ url = "mirror://pypi/w/wcwidth/${name}.tar.gz";
99+ sha256 = "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx";
1010+ };
1111+1212+ # Checks fail due to missing tox.ini file:
1313+ doCheck = false;
1414+1515+ meta = with stdenv.lib; {
1616+ description = "Measures number of Terminal column cells of wide-character codes";
1717+ longDescription = ''
1818+ This API is mainly for Terminal Emulator implementors -- any Python
1919+ program that attempts to determine the printable width of a string on
2020+ a Terminal. It is implemented in python (no C library calls) and has
2121+ no 3rd-party dependencies.
2222+ '';
2323+ homepage = https://github.com/jquast/wcwidth;
2424+ license = licenses.mit;
2525+ };
2626+ }
+5-12
pkgs/development/tools/analysis/flow/default.nix
···11-{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices,
22- findlib, camlp4, sedlex, ocamlbuild, lwt_ppx, wtf8, dtoa }:
11+{ stdenv, fetchFromGitHub, lib, ocamlPackages, libelf, cf-private, CoreServices }:
3243with lib;
54···1413 sha256 = "0r3yl4m7dhm1h4c431zp8hd2gg6k1d9bwd2371xav5q7hviwmjl6";
1514 };
16151717- # lwt.log is being split out into a separate package, so this can be
1818- # removed once nixpkgs is updated.
1919- # See https://github.com/ocsigen/lwt/issues/453#issuecomment-352897664
2020- postPatch = ''
2121- substituteInPlace Makefile --replace lwt_log lwt.log
2222- '';
2323-2416 installPhase = ''
2517 mkdir -p $out/bin
2618 cp bin/flow $out/bin/
2719 '';
28202929- buildInputs = [
3030- ocaml libelf findlib camlp4 sedlex ocamlbuild lwt_ppx wtf8 dtoa
3131- ] ++ optionals stdenv.isDarwin [ cf-private CoreServices ];
2121+ buildInputs = [ libelf
2222+ ] ++ (with ocamlPackages; [
2323+ ocaml findlib camlp4 sedlex ocamlbuild lwt_ppx lwt_log wtf8 dtoa
2424+ ]) ++ optionals stdenv.isDarwin [ cf-private CoreServices ];
32253326 meta = with stdenv.lib; {
3427 description = "A static type checker for JavaScript";