Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bash,texinfo: turn interactive versions into passthrus #44521

Closed
wants to merge 5 commits into from

Conversation

oxij
Copy link
Member

@oxij oxij commented Aug 5, 2018

Motivation for this change

This patchset is a part of a bigger patchset (that needs a bit more work) that adds getInteractive to the lib (or maybe not, that is a subject to change) and then uses that to build user-facing environments. I.e. you, as a user, won't need to ask yourself "Do I need specify Y or YInteractive here?" after applying that patchset, you just say "Y" and it will then select the appropriate one for every instance. E.g. bash in FHS environments and NixOS shells will be automatically referenced as bash.interactive.

Notes
  • b51ef9ece59be09c466d84b5387e5534d1458d3a is related, but unrelated (it's actually a piece of doCheck patchset), bundled here for simplicity.

  • I do let self = thing here instead of pushing self attr from all-packages.nix because both bash and texinfo are used in stdenv stages. Doing this the other way like, e.g. python does, needs some really ugly changes to stdenv.

Things done
  • Writing from a system with that patchset applied. It worked before rebasing onto master.

@GrahamcOfBorg
Copy link

Success on x86_64-linux (full log)

Attempted: bash, texinfo

Partial log (click to expand)

these paths will be fetched (1.39 MiB download, 10.14 MiB unpacked):
  /nix/store/p65fmkm7r8m1vrjfdlbfz57fycvfr6si-bash-4.4-p23
  /nix/store/rm57v73531vqxmmrqbdhsgbw19kzjg76-texinfo-6.5
copying path '/nix/store/p65fmkm7r8m1vrjfdlbfz57fycvfr6si-bash-4.4-p23' from 'https://cache.nixos.org'...
copying path '/nix/store/rm57v73531vqxmmrqbdhsgbw19kzjg76-texinfo-6.5' from 'https://cache.nixos.org'...
/nix/store/p65fmkm7r8m1vrjfdlbfz57fycvfr6si-bash-4.4-p23
/nix/store/rm57v73531vqxmmrqbdhsgbw19kzjg76-texinfo-6.5

@GrahamcOfBorg
Copy link

Failure on aarch64-linux (full log)

Attempted: bash, texinfo

Partial log (click to expand)

    gengtype.o gengtype-lex.o gengtype-parse.o gengtype-state.o version.o errors.o libcommon.a ../libcpp/libcpp.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a ../libbacktrace/.libs/libbacktrace.a libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
rm -rf libbackend.a
ar rcT libbackend.a gimple-match.o generic-match.o insn-attrtab.o insn-automata.o insn-dfatab.o insn-emit.o insn-extract.o insn-latencytab.o insn-modes.o insn-opinit.o insn-output.o insn-peep.o insn-preds.o insn-recog.o insn-enums.o ggc-page.o alias.o alloc-pool.o auto-inc-dec.o auto-profile.o bb-reorder.o bitmap.o bt-load.o builtins.o caller-save.o calls.o ccmp.o cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfgexpand.o cfghooks.o cfgloop.o cfgloopanal.o cfgloopmanip.o cfgrtl.o symtab.o cgraph.o cgraphbuild.o cgraphunit.o cgraphclones.o cilk-common.o combine.o combine-stack-adj.o compare-elim.o context.o convert.o coverage.o cppbuiltin.o cppdefault.o cprop.o cse.o cselib.o data-streamer.o data-streamer-in.o data-streamer-out.o dbxout.o dbgcnt.o dce.o ddg.o debug.o df-core.o df-problems.o df-scan.o dfp.o dojump.o dominance.o domwalk.o double-int.o dse.o dumpfile.o dwarf2asm.o dwarf2cfi.o dwarf2out.o emit-rtl.o et-forest.o except.o explow.o expmed.o expr.o fibonacci_heap.o final.o fixed-value.o fold-const.o fold-const-call.o function.o function-tests.o fwprop.o gcc-rich-location.o gcse.o gcse-common.o ggc-common.o ggc-tests.o gimple.o gimple-builder.o gimple-expr.o gimple-iterator.o gimple-fold.o gimple-laddress.o gimple-low.o gimple-pretty-print.o gimple-ssa-backprop.o gimple-ssa-isolate-paths.o gimple-ssa-nonnull-compare.o gimple-ssa-split-paths.o gimple-ssa-store-merging.o gimple-ssa-strength-reduction.o gimple-ssa-sprintf.o gimple-ssa-warn-alloca.o gimple-streamer-in.o gimple-streamer-out.o gimple-walk.o gimplify.o gimplify-me.o godump.o graph.o graphds.o graphite.o graphite-isl-ast-to-gimple.o graphite-dependences.o graphite-optimize-isl.o graphite-poly.o graphite-scop-detection.o graphite-sese-to-poly.o gtype-desc.o haifa-sched.o hash-map-tests.o hash-set-tests.o hsa-common.o hsa-gen.o hsa-regalloc.o hsa-brig.o hsa-dump.o hw-doloop.o hwint.o ifcvt.o ree.o inchash.o incpath.o init-regs.o internal-fn.o ipa-chkp.o ipa-cp.o ipa-devirt.o ipa-polymorphic-call.o ipa-split.o ipa-inline.o ipa-comdats.o ipa-visibility.o ipa-inline-analysis.o ipa-inline-transform.o ipa-profile.o ipa-prop.o ipa-pure-const.o ipa-icf.o ipa-icf-gimple.o ipa-reference.o ipa-hsa.o ipa-ref.o ipa-utils.o ipa.o ira.o ira-build.o ira-costs.o ira-conflicts.o ira-color.o ira-emit.o ira-lives.o jump.o langhooks.o lcm.o lists.o loop-doloop.o loop-init.o loop-invariant.o loop-iv.o loop-unroll.o lower-subreg.o lra.o lra-assigns.o lra-coalesce.o lra-constraints.o lra-eliminations.o lra-lives.o lra-remat.o lra-spills.o lto-cgraph.o lto-streamer.o lto-streamer-in.o lto-streamer-out.o lto-section-in.o lto-section-out.o lto-opts.o lto-compress.o mcf.o mode-switching.o modulo-sched.o multiple_target.o omp-offload.o omp-expand.o omp-general.o omp-grid.o omp-low.o omp-simd-clone.o optabs.o optabs-libfuncs.o optabs-query.o optabs-tree.o options-save.o opts-global.o passes.o plugin.o postreload-gcse.o postreload.o predict.o print-rtl.o print-rtl-function.o print-tree.o profile.o read-md.o read-rtl.o read-rtl-function.o real.o realmpfr.o recog.o reg-stack.o regcprop.o reginfo.o regrename.o regstat.o reload.o reload1.o reorg.o resource.o rtl-chkp.o rtl-error.o rtl-tests.o rtl.o rtlhash.o rtlanal.o rtlhooks.o run-rtl-passes.o sbitmap.o sched-deps.o sched-ebb.o sched-rgn.o sdbout.o sel-sched-ir.o sel-sched-dump.o sel-sched.o selftest-rtl.o selftest-run-tests.o sese.o shrink-wrap.o simplify-rtx.o sparseset.o spellcheck.o spellcheck-tree.o sreal.o stack-ptr-mod.o statistics.o stmt.o stor-layout.o store-motion.o streamer-hooks.o stringpool.o substring-locations.o target-globals.o targhooks.o timevar.o toplev.o tracer.o trans-mem.o tree-affine.o asan.o tsan.o ubsan.o sanopt.o sancov.o tree-call-cdce.o tree-cfg.o tree-cfgcleanup.o tree-chrec.o tree-complex.o tree-data-ref.o tree-dfa.o tree-diagnostic.o tree-dump.o tree-eh.o tree-emutls.o tree-if-conv.o tree-inline.o tree-into-ssa.o tree-iterator.o tree-loop-distribution.o tree-nested.o tree-nrv.o tree-object-size.o tree-outof-ssa.o tree-parloops.o tree-phinodes.o tree-chkp.o tree-chkp-opt.o tree-predcom.o tree-pretty-print.o tree-profile.o tree-scalar-evolution.o tree-sra.o tree-switch-conversion.o tree-ssa-address.o tree-ssa-alias.o tree-ssa-ccp.o tree-ssa-coalesce.o tree-ssa-copy.o tree-ssa-dce.o tree-ssa-dom.o tree-ssa-dse.o tree-ssa-forwprop.o tree-ssa-ifcombine.o tree-ssa-live.o tree-ssa-loop-ch.o tree-ssa-loop-im.o tree-ssa-loop-ivcanon.o tree-ssa-loop-ivopts.o tree-ssa-loop-manip.o tree-ssa-loop-niter.o tree-ssa-loop-prefetch.o tree-ssa-loop-split.o tree-ssa-loop-unswitch.o tree-ssa-loop.o tree-ssa-math-opts.o tree-ssa-operands.o tree-ssa-phionlycprop.o tree-ssa-phiopt.o tree-ssa-phiprop.o tree-ssa-pre.o tree-ssa-propagate.o tree-ssa-reassoc.o tree-ssa-sccvn.o tree-ssa-scopedtables.o tree-ssa-sink.o tree-ssa-strlen.o tree-ssa-structalias.o tree-ssa-tail-merge.o tree-ssa-ter.o tree-ssa-threadbackward.o tree-ssa-threadedge.o tree-ssa-threadupdate.o tree-ssa-uncprop.o tree-ssa-uninit.o tree-ssa.o tree-ssanames.o tree-stdarg.o tree-streamer.o tree-streamer-in.o tree-streamer-out.o tree-tailcall.o tree-vect-generic.o tree-vect-patterns.o tree-vect-data-refs.o tree-vect-stmts.o tree-vect-loop.o tree-vect-loop-manip.o tree-vect-slp.o tree-vectorizer.o tree-vrp.o tree.o typed-splay-tree.o valtrack.o value-prof.o var-tracking.o varasm.o varpool.o vmsdbgout.o vtable-verify.o web.o wide-int.o wide-int-print.o xcoffout.o aarch64.o aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o linux.o host-linux.o
building of '/nix/store/yn1jlhzvq7b0ywdw3z7q6mcpji5ynwh9-gcc-7.3.0.drv' timed out after 3600 seconds
cannot build derivation '/nix/store/3b4w36w2sjjqgxh6spn1kw3by8ay1bg2-bootstrap-stage4-gcc-wrapper-7.3.0.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/1yxvcfd2zca4f5xkzh5vgybaapx0z7kr-bootstrap-stage4-stdenv-linux.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/zwwdjnkm2a82fgz5nanslw44jlkqwxhp-bash-4.4-p23.drv': 2 dependencies couldn't be built
cannot build derivation '/nix/store/293bm8lkalb5vbbrq1a3dz4jhgw74f10-xz-5.2.4.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/1dbb8b0kci9pcinrifspwpkpnly88yg6-texinfo-6.5.drv': 3 dependencies couldn't be built
error: build of '/nix/store/1dbb8b0kci9pcinrifspwpkpnly88yg6-texinfo-6.5.drv', '/nix/store/zwwdjnkm2a82fgz5nanslw44jlkqwxhp-bash-4.4-p23.drv' failed

@oxij
Copy link
Member Author

oxij commented Aug 6, 2018 via email

@matthewbauer
Copy link
Member

This makes things way too complicated in my opinion. Putting overrides as passthru attrs just hides the problem, not fixes it. I want us to get to a point where we can do:

bashInteractive = bash;
texinfoInteractive = texinfo;

The bash/bashInteractive & texinfo/texinfoInteractive are just needed for bootstrapping. Besides that there is no reason we can't just make the default package the fully featured thing that everyone wants. Doing this without breaking stdenv is tricky but I think it can be done with overrides. You would just need to override each bash/texinfo instance listed in darwin/linux stdenv with .override { interactive = false; }. If everything else is done correctly, I believe this would work. Need some time to actually implement it though.

@oxij
Copy link
Member Author

oxij commented Aug 8, 2018 via email

@oxij
Copy link
Member Author

oxij commented Aug 9, 2018

New ideas I will implement and test later, this is closed in favor of eventually changing default texinfo and bash to interactive versions.

@oxij oxij closed this Aug 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants