diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2017-06-21 22:15:07 +0200 |
---|---|---|
committer | Michael Raskin <7c6f434c@mail.ru> | 2017-06-21 22:17:48 +0200 |
commit | bc47794ab580a28d9c995e4b0f01ef4bee77af28 (patch) | |
tree | 0da1b1d874991f2a70d6777d3b4763616fc839e7 /pkgs/development/lisp-modules/quicklisp-to-nix | |
parent | e89e96a7551e4213f50e0f44467546a26d42ea5f (diff) | |
download | nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar.gz nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar.bz2 nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar.lz nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar.xz nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.tar.zst nixlib-bc47794ab580a28d9c995e4b0f01ef4bee77af28.zip |
quicklispPackages: update
Escape things by default in derivation names (i.e. digit cannot be the first character etc.) Update Quicklisp (tracking upstream); list new missing dependencies Add some minimal README about ql-to-nix
Diffstat (limited to 'pkgs/development/lisp-modules/quicklisp-to-nix')
3 files changed, 27 insertions, 17 deletions
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb b/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb index a13cedf3dfe4..3a0c5cb5fc2c 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/invocation.emb @@ -1,8 +1,7 @@ - "<% @var name %>" = buildLispPackage + "<% @var filename %>" = buildLispPackage ((f: x: (x // (f x))) - (qlOverrides."<% @var name %>" or (x: {})) + (qlOverrides."<% @var filename %>" or (x: {})) (import ./quicklisp-to-nix-output/<% @var filename %>.nix { inherit fetchurl;<% @loop deps %> - "<% @var name %>" = quicklisp-to-nix-packages."<% @var name %>";<% @endloop %> - }));<% @ifequal name filename %><% @else %> - "<% @var filename %>" = quicklisp-to-nix-packages."<% @var name %>";<% @endif %> + "<% @var filename %>" = quicklisp-to-nix-packages."<% @var filename %>";<% @endloop %> + })); diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb b/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb index 3b71ade03f7c..baedbd1553a5 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/nix-package.emb @@ -7,12 +7,14 @@ rec { description = ''<% @var description %>''; - deps = [ <% @loop deps %>args."<% @var name %>" <% @endloop %>]; + deps = [ <% @loop deps %>args."<% @var filename %>" <% @endloop %>]; src = fetchurl { url = ''<% @var url %>''; sha256 = ''<% @var sha256 %>''; }; + + packageName = "<% @var name %>"; overrides = x: { postInstall = '' diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp b/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp index 18cf6d097a21..141fb0f34ebb 100644 --- a/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp +++ b/pkgs/development/lisp-modules/quicklisp-to-nix/ql-to-nix.lisp @@ -36,19 +36,27 @@ (map 'list 'identity (md5:md5sum-file path)))))))) (defun escape-filename (s) - (format nil "~{~a~}" - (loop - for x in (map 'list 'identity s) - collect - (case x - (#\/ "_slash_") - (#\\ "_backslash_") - (#\_ "__") - (t x))))) + (format + nil "~a~{~a~}" + (if (cl-ppcre:scan "^[a-zA-Z_]" s) "" "_") + (loop + for x in (map 'list 'identity s) + collect + (case x + (#\/ "_slash_") + (#\\ "_backslash_") + (#\_ "__") + (#\. "_dot_") + (t x))))) (defun system-data (system) (let* - ((asdf-system (asdf:find-system system)) + ((asdf-system + (or + (ignore-errors (asdf:find-system system)) + (progn + (ql:quickload system) + (asdf:find-system system)))) (ql-system (ql-dist:find-system system)) (ql-release (ql-dist:release ql-system)) (ql-sibling-systems (ql-dist:provided-systems ql-release)) @@ -73,7 +81,8 @@ :test 'equal) ql-sibling-names :test 'equal)) - (deps (mapcar (lambda (x) (list :name x)) dependencies)) + (deps (mapcar (lambda (x) (list :name x :filename (escape-filename x))) + dependencies)) (description (asdf:system-description asdf-system)) (release-name (ql-dist:short-description ql-release)) (version (cl-ppcre:regex-replace-all |