From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nils Gillmann Subject: Re: developing for guix with git Date: Wed, 03 Feb 2016 01:46:25 +0100 Message-ID: <87bn7ymxi6.fsf@grrlz.net> References: <87io2eszya.fsf@grrlz.net> <20160128222903.51f615c0@debian-netbook> <878u35bscu.fsf@grrlz.net> <87y4b5ia2y.fsf@elephly.net> <87egcupzt2.fsf@grrlz.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQlaa-00006I-Ol for help-guix@gnu.org; Tue, 02 Feb 2016 19:46:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQlaW-0005oq-HO for help-guix@gnu.org; Tue, 02 Feb 2016 19:46:32 -0500 Received: from latitanza.investici.org ([82.94.249.234]:20449) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQlaW-0005om-4u for help-guix@gnu.org; Tue, 02 Feb 2016 19:46:28 -0500 In-Reply-To: <87egcupzt2.fsf@grrlz.net> (Nils Gillmann's message of "Tue, 02 Feb 2016 22:28:25 +0100") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org To: Ricardo Wurmus Cc: help-guix@gnu.org 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=3D/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 writes: > Ricardo Wurmus writes: > >> Nils Gillmann 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=E2=80=99s 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-y= outube-dl-2016.01.09 > setxkbmap 1.3.0 out /gnu/store/cnq54ch7vhdm0cbgbgq85lbn7xsxm96i-setxkbm= ap-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-icec= at-38.5.2-gnu1 > alsa-utils 1.0.27.2 out /gnu/store/kmr9vzpm2kbf27mjvamln2j4wzw37bpp-als= a-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/d8ia7qyyb0s9vlh54ld5nch09= 4ap5jjb-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-d= ejavu-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-lib= reoffice-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-graphvi= z-2.38.0 > help2man 1.47.3 out /gnu/store/pmvdfp0ql2nzjypiagy1qk9fwi7l2d60-help2ma= n-1.47.3 > pkg-config 0.29 out /gnu/store/w7c0zs0qgzpnx5k6g19dja55yabk4350-pkg-con= fig-0.29 > libgcrypt 1.6.4 out /gnu/store/v1yd1grpqy6ls6m29lvb8fy085cbajj7-libgcry= pt-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-bi= nd-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/nxax4hgwbqazja34fd586vxn99d= 1yiw9-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=3D/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/p= o/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/p= o/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 [# (define-modu= le # # ...)] > 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 [# # ...] > 3065: 9 [try-module-autoload (gnu packages commencement) #f] > 2401: 8 [save-module-excursion #] > 3085: 7 [#] > 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! # #] > > 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 =E2= =80=94 >> 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=E2=80=99s = 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=E2=80=99m using multiple branches for things that take me too long. F= or most >> developments, however, I=E2=80=99m working in a local =E2=80=9Cwip=E2=80= =9D branch, which is >> regularly and in short intervals rebased onto master. >> >> ~~ Ricardo >> --=20 ng/ni* vcard: http://krosos.sdf.org