I hope I can turn my current confusion and the notes I am taking to something productive to beginners documentation/guide at some point.
So what happened today was: - I tried the build of the sourcetree described below in some variations. Failed. - I mounted an external disk with what used to be my working repo of the source before I made the decision to not rely on external disks that much. switched to some branch on this disk I was working on, excluding problems with the file I was working on it did theoretically build. Now I wonder what could be the difference? Why does my current checkout fail, but the other one doesn't? iirc the current one went: git clone $url-on-sv-guix git checkout -b wip-lispf4 emacs gnu/packages/lisp.scm and work on that file, save it but not commit guix environment guix (also tried adding git make) make clean-recursive ./bootstrap ./configure --localstatedir=/var make check what would be a simple step by step command list to get to the point of a working branch which can build? I feel like I am asking weird questions and it might be that I just try too much too hard to see where the problem is so that I lost track of the actual problem. Nils Gillmann <niaster...@grrlz.net> writes: > Ricardo Wurmus <rek...@elephly.net> writes: > >> Nils Gillmann <niaster...@grrlz.net> writes: >> >>> Do you happen to know why guix in the situation I described, >>> being on an up to date branch following master refuses to build, >>> but once I switch to master branch, make clean, make clean-go (or >>> go-clean?) and run make (and the other commands) again it builds >>> successfully? This was my initial confusion. >> >> It’s hard to say without being able to take a look at the state of the >> branch. It is possible that a change you introduced in your branch >> broke things. Maybe you could share error messages? > > I'll inline all the things here now: > > Generation 29 Feb 02 2016 13:20:50 (current) > rxvt-unicode 9.21 out > /gnu/store/2wrafhvqzzqzsks3mxz1lkd37phdaq5p-rxvt-unicode-9.21 > mc 4.8.11 out /gnu/store/8263vk2gf013ryg4hgjwdpln6xfhyfwz-mc-4.8.11 > getmail 4.48.0 out > /gnu/store/xay7x51ivl6dbk5gy2nd5xrxifwm4v4y-getmail-4.48.0 > youtube-dl 2016.01.09 out > /gnu/store/w53rdk9hs4v4mm2lrdjj15p27fqfdf2m-youtube-dl-2016.01.09 > setxkbmap 1.3.0 out > /gnu/store/cnq54ch7vhdm0cbgbgq85lbn7xsxm96i-setxkbmap-1.3.0 > xrdb 1.1.0 out > /gnu/store/gfwx3ngj1kp349p62lrls5iismicp2v1-xrdb-1.1.0 > tmux 2.1 out > /gnu/store/7a5brlhz30scv6hk9pj9nmyxvnjyv6qk-tmux-2.1 > torsocks 2.0.0 out > /gnu/store/zmy09dkn8d9avv3f6626fw6ch4pp74v2-torsocks-2.0.0 > tor 0.2.7.6 out /gnu/store/rvzq8czssqzrfln7qis7ai734afl4qjp-tor-0.2.7.6 > gnurl 7.45.0 out > /gnu/store/rdvcazdkm3lf0zzk4nrkmdz34h2nhyfl-gnurl-7.45.0 > wget 1.17.1 out > /gnu/store/z1vby28dy003jyvidzbbz3n2749ajnp1-wget-1.17.1 > icecat 38.5.2-gnu1 out > /gnu/store/626i6n86wv224cw5r3a5d81ylsxjwc2m-icecat-38.5.2-gnu1 > alsa-utils 1.0.27.2 out > /gnu/store/kmr9vzpm2kbf27mjvamln2j4wzw37bpp-alsa-utils-1.0.27.2 > openssh 7.1p2 out > /gnu/store/b5f6p26qc6wxik9xln1igzm3l583k7jf-openssh-7.1p2 > git 2.6.3 out /gnu/store/8rps27mcwn0shmbnlad92ss5xj67xq38-git-2.6.3 > font-gnu-freefont-ttf 20100919 out > /gnu/store/d8ia7qyyb0s9vlh54ld5nch094ap5jjb-font-gnu-freefont-ttf-20100919 > font-gnu-unifont 8.0.01 out > /gnu/store/2dqimxh602s0gpspki8gda5pqpfih0v4-font-gnu-unifont-8.0.01 > font-dejavu 2.34 out > /gnu/store/7bwkylkasi9y8hgrvhab2vvcf0nkprfh-font-dejavu-2.34 > font-liberation 2.00.1 out > /gnu/store/k2ip6g97clhwxqnjhmgxby0wsxx5fixf-font-liberation-2.00.1 > w3m 0.5.3 out /gnu/store/v211k3mj9anryn4c8ywyj63gwzbbr0wz-w3m-0.5.3 > gnupg 2.1.10 out > /gnu/store/576kah5kcbrvzh8fpr3ngpjijb9fqpwc-gnupg-2.1.10 > libreoffice 5.0.3.2 out > /gnu/store/dxiy3gbs63v7qp4nz0np1ih8dknjss4r-libreoffice-5.0.3.2 > autoconf 2.69 out > /gnu/store/hnpdjr1m7xa86y2878ca238b10k5dg0s-autoconf-2.69 > automake 1.15 out > /gnu/store/3ry089p6p36ng2l2i7gcdqq5hs8khafy-automake-1.15 > gettext 0.19.7 out > /gnu/store/3iz6asihwkcxj1ldl4qgd57iwmwww9s0-gettext-0.19.7 > texinfo 6.0 out > /gnu/store/m3zf2d3cla6jaj61l2c8nw9iljwl1qz8-texinfo-6.0 > graphviz 2.38.0 out > /gnu/store/f2kvgjgdknwqchfvjq4jlff0jppj0ryq-graphviz-2.38.0 > help2man 1.47.3 out > /gnu/store/pmvdfp0ql2nzjypiagy1qk9fwi7l2d60-help2man-1.47.3 > pkg-config 0.29 out > /gnu/store/w7c0zs0qgzpnx5k6g19dja55yabk4350-pkg-config-0.29 > libgcrypt 1.6.4 out > /gnu/store/v1yd1grpqy6ls6m29lvb8fy085cbajj7-libgcrypt-1.6.4 > guile 2.0.11 out > /gnu/store/b44k6wx7nxn0kh2kchlazgas2ybc576v-guile-2.0.11 > make 4.1 out > /gnu/store/vpy992qc1brf3av6ap7si4byq1w5mx2x-make-4.1 > guile-json 0.4.0 out > /gnu/store/wy4wyxh1jfi0g8afc777p7zvqpwknbqm-guile-json-0.4.0 > sqlite 3.10.0 out > /gnu/store/ks7v9hzvqkf7dnx0dwmlwa2zrdhdzcym-sqlite-3.10.0 > bzip2 1.0.6 out > /gnu/store/pnw3jr91sas9w3w9f4vkfr5nn0g8fcr8-bzip2-1.0.6 > gcc-toolchain 5.3.0 out > /gnu/store/p16a8dv54k35x4a8mqf5k9i1viwvxja7-gcc-toolchain-5.3.0 > bind-utils 9.10.3-P3 out > /gnu/store/x7q7zx4vvsiasgify34ig0mdip0wrynl-bind-utils-9.10.3-P3 > zathura 0.3.3 out > /gnu/store/vb87y4g5ciygjhl8jcmnkns6h06pv4ps-zathura-0.3.3 > mpv 0.15.0 out /gnu/store/aywf9b8cnsaqrsgb959v4mbhxiqmzifz-mpv-0.15.0 > paredit 24 out > /gnu/store/8b4smgyq2v9bcvlymmj6v0pi0n6x62w4-paredit-24 > notmuch 0.21 out > /gnu/store/z4xc7rlg3v4y8bayfk9xc3i92pnmfqdk-notmuch-0.21 > gnunet 0.10.1 out > /gnu/store/mllvd1d2mj53x3hg7jhs5ffqhj3az6mg-gnunet-0.10.1 > bbdb 3.1.2 out > /gnu/store/fm2gf61awrrn4hinpfz2gwgr633aq02g-bbdb-3.1.2 > magit 2.4.0 out > /gnu/store/b8yvdq2ggbb350fgi6d4ivknkd3xq2ih-magit-2.4.0 > emacs-w3m 1.4.538+0.20141022 out > /gnu/store/nxax4hgwbqazja34fd586vxn99d1yiw9-emacs-w3m-1.4.538+0.20141022 > emacs 24.5 out > /gnu/store/bx4yz76ja498jkmk90dl8vivpnncnk69-emacs-24.5 > geiser 0.8.1 out > /gnu/store/cr2265s6dahx5rdxvmhb4v3r3lhf8hzq-geiser-0.8.1 > weechat 1.4 out > /gnu/store/694qv9c5yb16h5if4vjshnbkyv7pph1d-weechat-1.4 > msmtp 1.6.3 out > /gnu/store/r1x2h94j0wb09ccvgp3psrccx476ms4l-msmtp-1.6.3 > > in the environment (git checkout wip-lispf4; make clean; make clean-go; > guix environment guix git; ./bootstrap; ./configure > --localstatedir=/var) all the steps listed succeed, however make: > > niasterisk@khazad-dum ~/projects/guix_project/guix [env]$ make > GEN doc/os-config-bare-bones.texi > GEN doc/os-config-desktop.texi > GEN nix/libstore/schema.sql.hh > make all-recursive > make[1]: Entering directory '/home/niasterisk/projects/guix_project/guix' > Making all in po/guix > make[2]: Entering directory > '/home/niasterisk/projects/guix_project/guix/po/guix' > make[2]: Leaving directory > '/home/niasterisk/projects/guix_project/guix/po/guix' > Making all in po/packages > make[2]: Entering directory > '/home/niasterisk/projects/guix_project/guix/po/packages' > make[2]: Leaving directory > '/home/niasterisk/projects/guix_project/guix/po/packages' > make[2]: Entering directory '/home/niasterisk/projects/guix_project/guix' > CXX nix/boost/format/libformat_a-free_funcs.o > CXX nix/boost/format/libformat_a-parsing.o > CXX nix/boost/format/libformat_a-format_implementation.o > AR libformat.a > ar: `u' modifier ignored since `D' is the default (see `U') > CXX nix/libutil/libutil_a-archive.o > CXX nix/libutil/libutil_a-affinity.o > CXX nix/libutil/libutil_a-serialise.o > CXX nix/libutil/libutil_a-util.o > CXX nix/libutil/libutil_a-xml-writer.o > CXX nix/libutil/libutil_a-hash.o > CXX nix/libutil/libutil_a-gcrypt-hash.o > AR libutil.a > ar: `u' modifier ignored since `D' is the default (see `U') > CXX nix/libstore/libstore_a-gc.o > CXX nix/libstore/libstore_a-globals.o > CXX nix/libstore/libstore_a-misc.o > CXX nix/libstore/libstore_a-references.o > CXX nix/libstore/libstore_a-store-api.o > CXX nix/libstore/libstore_a-optimise-store.o > CXX nix/libstore/libstore_a-local-store.o > CXX nix/libstore/libstore_a-build.o > CXX nix/libstore/libstore_a-pathlocks.o > CXX nix/libstore/libstore_a-derivations.o > AR libstore.a > ar: `u' modifier ignored since `D' is the default (see `U') > CXX nix/nix-daemon/guix_daemon-nix-daemon.o > CXX nix/nix-daemon/guix_daemon-guix-daemon.o > CXXLD guix-daemon > CXX nix/guix-register/guix_register-guix-register.o > CXXLD guix-register > Compiling Scheme modules... > LOAD (guix base32) > LOAD (guix base64) > LOAD (guix cpio) > LOAD (guix records) > LOAD (guix gcrypt) > LOAD (guix hash) > LOAD (guix pk-crypto) > LOAD (guix pki) > LOAD (guix utils) > LOAD (guix sets) > LOAD (guix download) > LOAD (guix git-download) > LOAD (guix monads) > LOAD (guix monad-repl) > LOAD (guix gexp) > LOAD (guix profiles) > LOAD (guix serialization) > LOAD (guix nar) > LOAD (guix derivations) > LOAD (guix gnu-maintenance) > LOAD (guix upstream) > LOAD (guix licenses) > LOAD (guix graph) > LOAD (guix cve) > LOAD (guix build-system) > LOAD (guix build-system cmake) > LOAD (guix build-system emacs) > LOAD (guix build-system glib-or-gtk) > LOAD (guix build-system gnu) > LOAD (guix build-system haskell) > LOAD (guix build-system perl) > LOAD (guix build-system python) > LOAD (guix build-system waf) > LOAD (guix build-system r) > LOAD (guix build-system ruby) > LOAD (guix build-system trivial) > LOAD (guix ftp-client) > LOAD (guix http-client) > LOAD (guix gnupg) > LOAD (guix elf) > LOAD (guix store) > LOAD (guix cvs-download) > LOAD (guix svn-download) > LOAD (guix ui) > LOAD (guix build download) > LOAD (guix build cmake-build-system) > LOAD (guix build emacs-build-system) > LOAD (guix build git) > LOAD (guix build glib-or-gtk-build-system) > LOAD (guix build gnu-build-system) > LOAD (guix build gnu-dist) > LOAD (guix build perl-build-system) > LOAD (guix build python-build-system) > LOAD (guix build r-build-system) > LOAD (guix build ruby-build-system) > LOAD (guix build waf-build-system) > LOAD (guix build haskell-build-system) > LOAD (guix build store-copy) > LOAD (guix build utils) > LOAD (guix build union) > LOAD (guix build profiles) > LOAD (guix build pull) > LOAD (guix build rpath) > LOAD (guix build cvs) > LOAD (guix build svn) > LOAD (guix build gremlin) > LOAD (guix build emacs-utils) > LOAD (guix build graft) > LOAD (guix search-paths) > LOAD (guix packages) > LOAD (guix import utils) > LOAD (guix import gnu) > LOAD (guix import snix) > LOAD (guix import cabal) > LOAD (guix import cran) > LOAD (guix import hackage) > LOAD (guix import elpa) > LOAD (guix scripts) > LOAD (guix scripts download) > LOAD (guix scripts build) > LOAD (guix scripts archive) > LOAD (guix scripts import) > LOAD (guix scripts package) > ;;; Failed to autoload canonical-package in (gnu packages base): > ;;; ERROR: Unbound variable: git-fetch > LOAD (guix scripts gc) > LOAD (guix scripts hash) > LOAD (guix scripts pull) > LOAD (guix scripts substitute) > LOAD (guix scripts authenticate) > LOAD (guix scripts refresh) > Backtrace: > In unknown file: > ?: 19 [primitive-load-path "guix/scripts/refresh" ...] > In ice-9/eval.scm: > 505: 18 [#<procedure 23e15c0 at ice-9/eval.scm:499:4 (exp)> (define-module # > # ...)] > In ice-9/psyntax.scm: > 1106: 17 [expand-top-sequence ((define-module # # # ...)) () ((top)) ...] > 989: 16 [scan ((define-module (guix scripts refresh) #:use-module ...)) () > ...] > 279: 15 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () ...] > In ice-9/eval.scm: > 411: 14 [eval # ()] > In ice-9/boot-9.scm: > 2951: 13 [define-module* (guix scripts refresh) #:filename ...] > 2926: 12 [resolve-imports (((guix ui)) ((guix hash)) ((guix scripts)) ...)] > 2864: 11 [resolve-interface (gnu packages commencement) #:select ...] > 2789: 10 [#<procedure 2495500 at ice-9/boot-9.scm:2777:4 (name #:optional > autoload version #:key ensure)> # ...] > 3065: 9 [try-module-autoload (gnu packages commencement) #f] > 2401: 8 [save-module-excursion #<procedure 34c91b0 at > ice-9/boot-9.scm:3066:17 ()>] > 3085: 7 [#<procedure 34c91b0 at ice-9/boot-9.scm:3066:17 ()>] > In unknown file: > ?: 6 [primitive-load-path "gnu/packages/commencement" ...] > In ice-9/eval.scm: > 453: 5 [eval # ()] > 387: 4 [eval # ()] > 387: 3 [eval # #] > 387: 2 [eval # #] > 393: 1 [eval # #] > In unknown file: > ?: 0 [memoize-variable-access! #<memoized gnu-make> #<directory # 747aab0>] > > ERROR: In procedure memoize-variable-access!: > ERROR: Unbound variable: gnu-make > Makefile:4704: recipe for target 'make-go' failed > make[2]: *** [make-go] Error 1 > make[2]: Leaving directory '/home/niasterisk/projects/guix_project/guix' > Makefile:3856: recipe for target 'all-recursive' failed > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory '/home/niasterisk/projects/guix_project/guix' > Makefile:2467: recipe for target 'all' failed > make: *** [all] Error 2 > > Those are issues which appear only on the new branch created with 'git > checkout -b wip-lispf4' and started working on it to the point where the > lispf4 should compile. > > --ng >> >>> I might have a thing or 2 to learn about rebasing and branching, but in >>> theory from what I know it shouldn't really matter which branch I am >>> on unless something's corrupted or broken. >> >> I think of a branch as a pointer to a some commit in the graph. >> Rebasing takes a range of commits and applies the changes they introduce >> on top of some other commit. >> >> When things suddenly break after rebasing the reason is usually in of >> two categories: >> >> * one of your (now relocated) commits broke something >> >> * after rebasing, master commits that have been added since you first >> committed your changes are now part of the history of your commits — >> maybe these commits altered assumptions that were still valid when you >> first committed your changes. An example for this is when a variable >> was renamed or moved in a master commit and your commits still use the >> old name. >> >> Sharing some error output with us might help us identify what’s going on >> in your case. In any case, you could try bisecting your changes (divide >> the set of your commits in half, and see if things are broken at that >> commit; then recurse until you find the commit that introduced the cause >> for the failure). This works best when you made many small commits. >> >> I’m using multiple branches for things that take me too long. For most >> developments, however, I’m working in a local “wip” branch, which is >> regularly and in short intervals rebased onto master. >> >> ~~ Ricardo >> -- ng/ni* vcard: http://krosos.sdf.org