~ chicken-core (chicken-5) ab95f99d32fb39d93b43147cddd2645b95aed0f0


commit ab95f99d32fb39d93b43147cddd2645b95aed0f0
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Oct 21 12:03:12 2016 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Oct 21 12:03:12 2016 +0200

    chicken-install: bugfix and omitted dep-list

diff --git a/NOTES b/NOTES
deleted file mode 100644
index 364c02de..00000000
--- a/NOTES
+++ /dev/null
@@ -1,167 +0,0 @@
-NOTES (new install)
-~~~~~~~~~~~~~~~~
-
-* TODO Proposals
-** Encode install-prefix in cache-dir name
-** With cache and without network should not be an error situation
-** check whether files are overwritten by egg on installation
-
-* TODO Test queues download + caching
-
-* TODO Try more complex eggs
-
-* TODO .egg files for all C5 eggs
-
-* TODO Enforce versioning method?
-    - someone suggested MAJOR.MINOR.PATCH
-
-* TODO chicken-do: delete target file if build fails
-    - needs to fork subprocess.
-    - better would be to use temporary for output and then rename.
-        - but then would have to replace occurrence of target in command arguments.
-
-* TODO Separation of d/l step possible?
-    - required to check downloaded content
-
-* TODO Static linking
-    - (chicken) "-static" option - when requiring extension, check if repo contains *.o(bj) file.
-        - mind cross-compilation: use target-repo in target mode (needs to passed to chicken).
-    - csc: drop -static, rename -static-libs to -static (doc) (and pass to chicken).
-    - pass information about used static eggs either in separate file or embedded as comment
-      in C file (first line)
-
-* TODO Rebase on upstream at some stage
-
-* Complete egg-info compilation
-** TODO What should the default optimization options be?
-    - also for compiled import libraries.
-    - respect DEBUGBUILD?
-
-* TODO Option for not fetching/installing dependencies
-    - proposed by wasamasa.
-    - does this make sense?
-
-* TODO Support for generating + installing extra files
-    - types, inline-files
-
-* TODO Delete directory in cache before retrieving?
-
-* Implement minimal "chicken-install"
-** Basic functionality
-*** TODO just download eggs (recursively) and build/install.
-*** TODO Repository init (cross-aware)
-    - old-chicken-install.scm://+default-repository-files+/
-*** TODO print repository
-*** TODO retrieve egg
-*** TODO Also support recursive retrieve
-*** TODO Comment all toplevel procedures
-*** TODO Add usage information
-
-* TODO repository-path
-    - allow multiple locations?
-    - perhaps: CHICKEN_INSTALL_REPOSITORY (defaults to install-prefix) as
-      installation target.
-
-* Issues
-** Link-options are passed directly to csc
-    - is this right?
-
-* Suggestion by florz: sign eggs (or hashes) and decode using NaCl
-    - https://tweetnacl.cr.yp.to/software.html
-
-* Setup features
-** TODO Keep binaries + intermediate files ("-k")
-    - needed, since we normally build from cache?
-** TODO "-feature" + "-no-feature"
-** TODO Hack for OSX SIP?
-** TODO reinstall, no-install?
-** TODO Request by Jon Foerch: allow *.egg in specific subdirectory ("chicken")
-
-* TODO "build-dependencies" 
-    - toplevel deps that are needed during build, override "dependencies", if given.
-    - or is the intent differently? Ask moritz.
-
-* Download/build directories
-** TODO handle egg-files given on command-line
-    - and build in respective directory.
-
-* TODO Run egg tests in "tests" directory
-
-* TODO Check what cmdline options to retain
-** Option for explicitly generating Windows/UNIX build/install scripts?
-    - i.e. selecting target platform.
-
-* Things to resolve
-** setup-info files
-*** one for the whole egg (use "components" to find associated parts).
-*** TODO Fix "extension-information"
-    - drop it completely? we can't locate extensions, just eggs.
-*** TODO syntax-only extensions 
-    - i.e. matchable (is it?)
-*** TODO require-at-runtime
-
-* TODO Fix loading/linking
-    - needs support by compiler.
-    - see also eval.scm:/##sys#process-require/
-
-* TODO Drop CHICKEN_PREFIX
-    - chicken-prefix and all of its uses.
-
-* Build/install scripts
-** TODO Use "-setup-mode" when invoking csc during build
-    - but that requires csc is run in source-dir.
-** must be fully sh(1) compatible
-    - http://people.fas.harvard.edu/~lib113/reference/unix/portable_scripting.html
-    - https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
-** TODO Test "chicken-do" and port to Windows
-    - ideally, use execvp/CreateProcess
-        - http://www.cplusplus.com/forum/windows/3398/ and
-          http://www.cplusplus.com/forum/beginner/1988/3/#msg14102
-** TODO Consider making this powerful enough to build chicken
-    - needs support for object-files (C or Scheme) and building libraries.
-** TODO Handle case where program and extension in egg have same name
-    - e.g. "hyde" in hyde egg.
-    - can we ignore this? if source files have different names, just compiling exe/so directly should
-      work.
-
-* "dependencies" has 2 meanings, depending on nesting level in egg info
-
-* TODO Do we have to cleanup after building eggs?
-
-* TODO "chicken-install -r" retrieves into cache - sufficient?
-
-* Install scripts
-** TODO Use install(1)
-
-* TODO Integrate running tests into build-script
-    - or generate separate script?
-
-* Tools
-** TODO chicken-install
-** TODO chicken-status
-    - option to list cached eggs (+ version)
-    - filter egg-info and list components.
-    - optionally list installed files instead.
-
-* TODO Copyright headers
-    - chicken-do.c  egg-*.scm
-
-* TODO Documentation
-    - document CHICKEN_EGG_CACHE
-    - remove old and obsolete stuff  (dropped options, etc.)
-    - update manual
-    - chicken-do (manpage)
-    - update egg-tutorial on wiki
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gg extension-information    ctags --language=scheme *.scm
-cm chicken-do && cp chicken-do bin
-cm chicken-install
-chicken-config.h  chicken-do.c  config.mk  old-chicken-install.scm  rules.make
-git gui   git pull      win bin/csi    distribution/manifest    
-/home/felix/.chicken-install.cache/  lib/chicken/8  ~/chicken/5
-../bin/chicken-install -defaults ../setup.defaults -n
-chicken-install.scm  setup-api.scm
- egg-compile.scm  egg-environment.scm  egg-download.scm egg-information.scm
-win bin/csi
-./chicken-status
diff --git a/chicken-install.scm b/chicken-install.scm
index 686a0df3..54386b90 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -472,6 +472,7 @@
 
 (define (get-egg-dependencies info)
   (append (get-egg-property* info 'dependencies '())
+          (get-egg-property* info 'build-dependencies '())
           (if run-tests (get-egg-property* info 'test-dependencies '()) '())))
 
 (define (check-dependency dep)
@@ -591,7 +592,7 @@
   (list->string (reverse (left (reverse (left (string->list str)))))))
   
   
-;; list available egg versions
+;; list available egg versions on servers
   
 (define (list-egg-versions eggs)
   (let ((srvs (map resolve-location default-servers)))
@@ -753,7 +754,7 @@
                  (unless retrieve-only (install-eggs)))))
         (else
           (let ((eggs (apply-mappings eggs)))
-            (cond (list-versions-only (list-egg-versions eggs)))
+            (cond (list-versions-only (list-egg-versions eggs))
                   ;;XXX other actions...
                   (else 
                     (retrieve-eggs eggs)
Trap