all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nils Gillmann <niasterisk@grrlz.net>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: help-guix@gnu.org
Subject: Re: developing for guix with git
Date: Wed, 03 Feb 2016 01:46:25 +0100	[thread overview]
Message-ID: <87bn7ymxi6.fsf@grrlz.net> (raw)
In-Reply-To: <87egcupzt2.fsf@grrlz.net> (Nils Gillmann's message of "Tue, 02 Feb 2016 22:28:25 +0100")

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 <niasterisk@grrlz.net> writes:

> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> Nils Gillmann <niasterisk@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

      parent reply	other threads:[~2016-02-03  0:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-28 11:31 developing for guix with git Ni* Gillmann
2016-01-28 20:29 ` Efraim Flashner
2016-01-31 16:56   ` Nils Gillmann
2016-01-31 23:49     ` Ricardo Wurmus
2016-02-02 21:28       ` Nils Gillmann
2016-02-02 23:56         ` Leo Famulari
2016-02-03  0:51           ` Nils Gillmann
2016-02-03  6:58             ` Ricardo Wurmus
2016-02-03 11:24               ` Nils Gillmann
2016-02-03 12:00               ` Nils Gillmann
2016-02-03  0:46         ` Nils Gillmann [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bn7ymxi6.fsf@grrlz.net \
    --to=niasterisk@grrlz.net \
    --cc=help-guix@gnu.org \
    --cc=rekado@elephly.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.