Nixpkgs: Octave 5.2.0 fails to build after latest update of dependencies: relink 'libinterp/liboctinterp.la' with the above command before installing it

Created on 29 Apr 2020  Â·  17Comments  Â·  Source: NixOS/nixpkgs

Describe the bug
Yesterday, I ran nixos-rebuild switch --upgrade and Octave 5.2.0 failed to build successfully due to the error:

libtool: error(B: error: relink 'libinterp/liboctinterp.la' with the above command before installing it(B

more complete log is here: https://gist.github.com/fusion809/5181370860806a8675b0caafe3ec87bc. GNU Octave 5.2.0 was already installed, however, this was just a new dependencies rebuild.

To Reproduce
Steps to reproduce the behaviour:

  1. On a NixOS system similar to mine (perhaps on other NixOS systems too; my configs are here https://github.com/fusion809/NixOS-configs/tree/20.09-pre) run nixos-rebuild switch --upgrade.
  2. Then lo and behold the error.

Expected behaviour
For GNU Octave 5.2.0 to build successfully.

Notify maintainers
@7c6f434c

Metadata

$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.4.33, NixOS, 20.09pre222973.7c399a4ee08 (Nightingale)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.4`
 - channels(fusion809): `"nixos-20.09pre222973.7c399a4ee08, nixos-unstable"`
 - channels(root): `"nixos-20.09pre222973.7c399a4ee08"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:
bug

All 17 comments

Does plain non-overridden octaveFull build for you from the latest nixos-unstable channel state?

That is odd. Having just octaveFull in my config leads to no rebuild at all.

I cannot exclude that something in the dependencies makes linking more complicated…

No rebuilds, as that version was built on Hydra and provided in the cache. This is the same revision as the one where adding extra Python stuff fails, right?

I also don't understand what dependency is it that you override and that triggers the rebuild.

Yep, same version as that for which Python stuff fails.

@veprbl technically we do not yet know, maybe some dependency is just missing for such an override, then it would not be a bug but an enhancement

@fusion809 Edge condition check: if you build the non-overridden version with --check, does this succeed?

Also, what happens if you give withPackages an empty set of packages? Some very small pure-Python package?

@7c6f434c: what do you mean build with --check? Running nixos-rebuild switch --upgrade --check just gives the error /run/current-system/sw/bin/nixos-rebuild: unknown option--check'`. Making the package array empty still leads to a rebuild.

@7c6f434c: what do you mean build with --check? Running nixos-rebuild switch --upgrade --check just gives the error /run/current-system/sw/bin/nixos-rebuild: unknown option--check'`.

I meant a nix-build of octaveFull with --check

Making the package array empty still leads to a rebuild.

Does it succeed?

Query number 1: OK, I'll give it a go tomorrow, I'm off for the night.

Query number 2: I stopped it before then because the rebuild uses a lot of RAM and CPU and makes my PC freeze up, so I try to avoid rebuilds unnecessarily.

Query number 1: OK, I'll give it a go tomorrow, I'm off for the night.

Query number 2: I stopped it before then because the rebuild uses a lot of RAM and CPU and makes my PC freeze up, so I try to avoid rebuilds unnecessarily.

Well, both queries are queries about the Octave rebuilds succeeding or not.

If you want Octave with SymPy in Python without rebuilds, this is a reasonable thing to discuss, but under a different issue title.

I'm a bit of a Nix programming noob, how do you do nix-build on octaveFull?

@fusion809 please refer to the docs: https://nixos.org/nix/manual/#sec-nix-build

As for your attempt at making octave available with sympy. I use this overlay in my configuration.nix.

      # GNU Octave wrapper package with appropriate python environment
      # for sym package
      (
        self: super: {
          octave-wrapped = super.symlinkJoin rec {
            name = "octave-wrapped";
            paths = [ super.octave ];
            pythonEnv = super.python3.withPackages(ps: [
              ps.sympy
            ]);
            nativeBuildInputs = [ super.makeWrapper ];
            # along with some fixes to the desktop file
            postBuild = ''
              cp -L $out/bin/octave $out/bin/octave.tmp
              mv -f $out/bin/octave.tmp $out/bin/octave
              wrapProgram $out/bin/octave --prefix PATH : ${pythonEnv}/bin
              cp -L $out/share/applications/org.octave.Octave.desktop $out/share/applications/org.octave.Octave.desktop.tmp
              mv -f $out/share/applications/org.octave.Octave.desktop.tmp $out/share/applications/org.octave.Octave.desktop
              substituteInPlace $out/share/applications/org.octave.Octave.desktop \
                --replace "Terminal=false" "Terminal=true" \
                --replace "octave --gui" octave
            '';
          };
        }
      )

Put it as explained here: https://nixos.org/nixos/options.html#overlays and add octave-wrapped to your environment packages. This won't trigger a rebuild as it's reusing the normal octave derivation.

@doronbehar I added that to my ~/.config/nixpkgs/overlays.nix file and it seems like it did exactly what I wanted, so thanks for that! Now running nix-build '<nixpkgs>' -A octaveFull --check, as based on the docs I assume that's what is required here. Will mention the results when it's finished.

Now running nix-build '' -A octaveFull --check, as based on the docs I assume that's what is required here. Will mention the results when it's finished.

I think the intention was just to try to debug what dependency is it you override that triggers a rebuild of octave.

Anyway I'm glad that overlay helped you :). I'm closing as I see this as resolved.

_If_ we start debugging the build overrides, we need to know that the plain build succeeds locally. But I agree that wrapping without rebuild is obviously better. Thanks to @doronbehar for sharing the wrapper.

nix-build '<nixpkgs>' -A octaveFull --check just failed with a different error this time:

agic.m scripts/special-matrix/pascal.m scripts/special-matrix/rosser.m scripts/special-matrix/toeplitz.m scripts/special-matrix/vander.m scripts/special-matrix/wilkinson.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/special-matrix'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/startup'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/startup/__finish__.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/startup'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/statistics'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/statistics/bounds.m scripts/statistics/center.m scripts/statistics/corr.m scripts/statistics/corrcoef.m scripts/statistics/cov.m scripts/statistics/discrete_cdf.m scripts/statistics/discrete_inv.m scripts/statistics/discrete_pdf.m scripts/statistics/discrete_rnd.m scripts/statistics/empirical_cdf.m scripts/statistics/empirical_inv.m scripts/statistics/empirical_pdf.m scripts/statistics/empirical_rnd.m scripts/statistics/histc.m scripts/statistics/iqr.m scripts/statistics/kendall.m scripts/statistics/kurtosis.m scripts/statistics/mad.m scripts/statistics/mean.m scripts/statistics/meansq.m scripts/statistics/median.m scripts/statistics/mode.m scripts/statistics/moment.m scripts/statistics/movmad.m scripts/statistics/movmax.m scripts/statistics/movmean.m scripts/statistics/movmedian.m scripts/statistics/movmin.m scripts/statistics/movprod.m scripts/statistics/movstd.m scripts/statistics/movsum.m scripts/statistics/movvar.m scripts/statistics/prctile.m scripts/statistics/quantile.m scripts/statistics/range.m scripts/statistics/ranks.m scripts/statistics/run_count.m scripts/statistics/runlength.m scripts/statistics/skewness.m scripts/statistics/spearman.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/statistics'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/statistics/statistics.m scripts/statistics/std.m scripts/statistics/var.m scripts/statistics/zscore.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/statistics'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/strings'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/strings/base2dec.m scripts/strings/bin2dec.m scripts/strings/blanks.m scripts/strings/cstrcat.m scripts/strings/deblank.m scripts/strings/dec2base.m scripts/strings/dec2bin.m scripts/strings/dec2hex.m scripts/strings/erase.m scripts/strings/hex2dec.m scripts/strings/index.m scripts/strings/isletter.m scripts/strings/isstring.m scripts/strings/isstrprop.m scripts/strings/mat2str.m scripts/strings/native2unicode.m scripts/strings/ostrsplit.m scripts/strings/regexptranslate.m scripts/strings/rindex.m scripts/strings/str2num.m scripts/strings/strcat.m scripts/strings/strchr.m scripts/strings/strjoin.m scripts/strings/strjust.m scripts/strings/strsplit.m scripts/strings/strtok.m scripts/strings/strtrim.m scripts/strings/strtrunc.m scripts/strings/substr.m scripts/strings/unicode2native.m scripts/strings/untabify.m scripts/strings/validatestring.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/strings'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/testfun'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/testfun/__have_feature__.m scripts/testfun/__printf_assert__.m scripts/testfun/__prog_output_assert__.m scripts/testfun/__run_test_suite__.m scripts/testfun/assert.m scripts/testfun/demo.m scripts/testfun/example.m scripts/testfun/fail.m scripts/testfun/rundemos.m scripts/testfun/runtests.m scripts/testfun/speed.m scripts/testfun/test.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/testfun'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/testfun/private'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/testfun/private/compare_plot_demos.m scripts/testfun/private/dump_demos.m scripts/testfun/private/html_compare_plot_demos.m scripts/testfun/private/html_plot_demos_template.html '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/testfun/private'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/time'
 /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 scripts/time/addtodate.m scripts/time/asctime.m scripts/time/calendar.m scripts/time/clock.m scripts/time/ctime.m scripts/time/date.m scripts/time/datenum.m scripts/time/datestr.m scripts/time/datevec.m scripts/time/eomday.m scripts/time/etime.m scripts/time/is_leap_year.m scripts/time/now.m scripts/time/weekday.m '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/m/time'
make  install-data-hook
make[4]: Entering directory '/build/octave-5.2.0'
preserving existing HG-ID file
cat libinterp/dldfcn/PKG_ADD libgui/graphics/PKG_ADD > oct-file-pkg-add-t \
  && mv oct-file-pkg-add-t oct-file-pkg-add
/nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu
if [ -n "`cat libinterp/dldfcn/PKG_ADD libgui/graphics/PKG_ADD`" ]; then \
  /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 oct-file-pkg-add /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/PKG_ADD; \
fi
cd /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0 && \
for ltlib in libinterp/dldfcn/__delaunayn__.la libinterp/dldfcn/__eigs__.la libinterp/dldfcn/__fltk_uigetfile__.la libinterp/dldfcn/__glpk__.la libinterp/dldfcn/__init_fltk__.la libinterp/dldfcn/__init_gnuplot__.la libinterp/dldfcn/__ode15__.la libinterp/dldfcn/__voronoi__.la libinterp/dldfcn/amd.la libinterp/dldfcn/audiodevinfo.la libinterp/dldfcn/audioread.la libinterp/dldfcn/ccolamd.la libinterp/dldfcn/chol.la libinterp/dldfcn/colamd.la libinterp/dldfcn/convhulln.la libinterp/dldfcn/dmperm.la libinterp/dldfcn/fftw.la libinterp/dldfcn/gzip.la libinterp/dldfcn/qr.la libinterp/dldfcn/symbfact.la libinterp/dldfcn/symrcm.la libgui/graphics/__init_qt__.la; do \
  f=`echo $ltlib | /nix/store/jpqlmf3wqg281j8fdz50kjl525pfsxjc-gnused-4.8/bin/sed 's,.*/,,'`; \
  dl=`/nix/store/jpqlmf3wqg281j8fdz50kjl525pfsxjc-gnused-4.8/bin/sed -n -e "s/dlname='\([^']*\)'/\1/p" < $f`; \
  if [ -n "$dl" ]; then \
    /nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c $dl /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/`echo $f | /nix/store/jpqlmf3wqg281j8fdz50kjl525pfsxjc-gnused-4.8/bin/sed 's,^lib,,; s,\.la$,.oct,'`; \
  else \
    echo "error: dlname is empty in $ltlib!"; \
    exit 1; \
  fi; \
  lnames=`/nix/store/jpqlmf3wqg281j8fdz50kjl525pfsxjc-gnused-4.8/bin/sed -n -e "s/library_names='\([^']*\)'/\1/p" < $f`; \
  if [ -n "$lnames" ]; then \
    rm -f $f $lnames $dl; \
  fi \
done
/nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/mkdir -p /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/etc
/nix/store/ca9mkrf8sa8md8pv61jslhcnfk9mmg4p-coreutils-8.31/bin/install -c -m 644 libinterp/DOCSTRINGS /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/octave/5.2.0/etc/built-in-docstrings
make[4]: Leaving directory '/build/octave-5.2.0'
make[3]: Leaving directory '/build/octave-5.2.0'
make[2]: Leaving directory '/build/octave-5.2.0'
make[1]: Leaving directory '/build/octave-5.2.0'
glibPreFixupPhase
glibPreFixupPhase
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/bin/mkoctfile-5.2.0
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/bin/octave-cli-5.2.0
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/bin/octave-config-5.2.0
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/bin/octave-5.2.0
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/liboctgui.so.5.0.1
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__glpk__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/ccolamd.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/chol.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__voronoi__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__init_fltk__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/qr.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__ode15__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/amd.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/colamd.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/symbfact.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/audiodevinfo.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/dmperm.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/convhulln.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/gzip.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/audioread.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/fftw.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__delaunayn__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__fltk_uigetfile__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__init_gnuplot__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__init_qt__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/symrcm.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/oct/x86_64-pc-linux-gnu/__eigs__.oct
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/liboctinterp.so.7.0.1
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib/octave/5.2.0/liboctave.so.7.0.1
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/libexec/octave/5.2.0/exec/x86_64-pc-linux-gnu/octave-svgconvert
shrinking /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/libexec/octave/5.2.0/exec/x86_64-pc-linux-gnu/octave-gui
gzipping man pages under /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/share/man/
strip is /nix/store/3b3ighb83nhifa1v4n7855hlbdl1mhf9-binutils-2.31.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/lib  /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/libexec  /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0/bin
patching script interpreter paths in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0
checking for references to /build/ in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0...
postPatchMkspecs
postPatchMkspecs
derivation '/nix/store/iy8dpkxzpwh8g2yqmxyp5j7s4fl62p54-octave-5.2.0.drv' may not be deterministic: output '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0' differs
error: build of '/nix/store/iy8dpkxzpwh8g2yqmxyp5j7s4fl62p54-octave-5.2.0.drv' failed

nix-build '<nixpkgs>' -A octaveFull --check just failed with a different error this time:

patching script interpreter paths in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0
checking for references to /build/ in /nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0...
postPatchMkspecs
postPatchMkspecs
derivation '/nix/store/iy8dpkxzpwh8g2yqmxyp5j7s4fl62p54-octave-5.2.0.drv' may not be deterministic: output '/nix/store/7jm8w4qx7akhk8drk12qxaxdf3mvzj3q-octave-5.2.0' differs
error: build of '/nix/store/iy8dpkxzpwh8g2yqmxyp5j7s4fl62p54-octave-5.2.0.drv' failed

That's actually success, but the build is non-deterministic (which is worse than deterministic, of course, but still a smaller problem)

OK, so I guess I have learned that overriding Python using withPackages in Octave build would need some effort to work (but also doesn't solve any practical problem as wrapping is obviously more efficient)

Thanks for the update.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

matthiasbeyer picture matthiasbeyer  Â·  3Comments

ob7 picture ob7  Â·  3Comments

copumpkin picture copumpkin  Â·  3Comments

edolstra picture edolstra  Â·  3Comments

langston-barrett picture langston-barrett  Â·  3Comments