Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the linux-packaging Reference Manual, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 14:01:03 2020 GMT+0.
• Introduction | What linux-packaging is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
This library lets you distribute your Lisp applications by linux packages for the following distributions:
All you need to do is declaring this in your .asd
:
(defsystem "foo-deb"
:defsystem-depends-on ("linux-packaging")
:class "linux-packaging:deb"
:build-operation "linux-packaging:build-op"
:depends-on ("foo")
:package-name "foo"
:version "1.0.0"
:build-pathname "foo"
:entry-point "foo:main")
Compile with sbcl --eval '(asdf:make :foo-deb)'
, et voila.
What's even more cool? If your application relies on shared libraries,
such as libsqlite, linux-packaging
will automatically detect that
and add the appropriate dependencies to your package. When your
package will be installed, the appropriate dependencies will be
installed alongside it, thanks to apt/dnf/yum/pacman/etc.
What's even more cool? If your application relies on CFFI grovel or wrapper files, such as the one built by osicat, those files will be statically embedded into your binary.
Both of those mean that you can write any Lisp application using CFFI, and your built packages will be installable by anyone using those distributions.
This is similar to what Deploy
is doing. This library is doing great work, by the way. But the
approach taken by linux-packaging
is slightly different.
Deploy is essentially taking this approach:
And the user has to somehow figure out how to "install" that archive.
linux-packaging
is taking another approach:
Installing your Lisp application then becomes a procedure that every user of your distribution already knows.
This is an approach that plays more nicely with how distributions typically want their packages to be: relying on shared libraries as much as possible, so that updating the shared library doesn't mean having to rebuild your application.
As opposed to Deploy, the downsides of linux-packaging
are:
--with-sb-linkable-runtime
option, as this is not a default
option.The last point can seem daunting, but is not actually so. See the
.gitlab-ci.yml
file of this repository for a
couple of examples, but the gist of it is that Docker and friends make
it easy.
This is a reference of all the available options that you can use your .asd file, as well as their description.
:class
is actually a default ASDF attribute. It lets you define
another class for the system definition. You need to pick one of
those:
linux-packaging:rpm
: if you want to build a .rpm packagelinux-packaging:deb
: if you want to build a .deb packagelinux-packaging:pacman
: if you want to build a .pkg package:build-operation
is another default ASDF attribute. You need to set it to
linux-packaging:build-op
.
:author
is another default ASDF attribute, but it is used to define
the package's author/maintainer.
:description
is another default ASDF attribute, and is used to set
the package's description.
:license
is another default ASDF attribute, used to define the
package's license as well.
:version
is another default ASDF attribute. It defines the version
of the package. If not specified, linux-packaging
will try looking
in the VERSION
environment variable, or fallback to 1.0.0
.
Defines the linux package name. If not specified, the system name is
used. (In the example above, it would be foo-deb
.)
Defines the homepage showing up in the package's description.
If you want to provide files in addition to the Lisp image, such as icons, documentation, etc, you can specify an alist of this kind:
:additional-files (("file/path/during/build" . "folder/to/install/at/"))
Those can also be pathnames if you want to be more specific on the exact files/directories to use.
You may need to provide arbitrary dependencies to your packages; those can be provided in a list:
:additional-dependencies ("emacs")
MIT License.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
Next: The linux-packaging/* system, Previous: Systems, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
ASDF extension to generate linux packages.
wild-package-inferred-system
linux-packaging.asd (file)
Next: The linux-packaging/main system, Previous: The linux-packaging system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging.asd (file)
lisp.lisp (file)
Next: The linux-packaging/deb system, Previous: The linux-packaging/* system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging.asd (file)
lisp.lisp (file)
Next: The linux-packaging/pacman system, Previous: The linux-packaging/main system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging.asd (file)
lisp.lisp (file)
Next: The linux-packaging/rpm system, Previous: The linux-packaging/deb system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging.asd (file)
lisp.lisp (file)
Next: The linux-packaging/package system, Previous: The linux-packaging/pacman system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging/package (system)
linux-packaging.asd (file)
lisp.lisp (file)
Previous: The linux-packaging/rpm system, Up: Systems [Contents][Index]
Florian Margaine <florian@margaine.com>
MIT
linux-packaging.asd (file)
lisp.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
Next: The linux-packaging/*/lisp․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
linux-packaging.asd
Next: The linux-packaging/main/lisp․lisp file, Previous: The linux-packaging․asd file, Up: Lisp files [Contents][Index]
linux-packaging/* (system)
/home/quickref/.cache/common-lisp/sbcl-1.5.8-linux-x64/home/quickref/quicklisp/dists/quicklisp/software/linux-packaging-20201220-git/__WILD_SYSTEM__/linux-packaging_SL_WILD.lisp
Next: The linux-packaging/deb/lisp․lisp file, Previous: The linux-packaging/*/lisp․lisp file, Up: Lisp files [Contents][Index]
linux-packaging/main (system)
main.lisp
Next: The linux-packaging/pacman/lisp․lisp file, Previous: The linux-packaging/main/lisp․lisp file, Up: Lisp files [Contents][Index]
linux-packaging/deb (system)
deb.lisp
Next: The linux-packaging/rpm/lisp․lisp file, Previous: The linux-packaging/deb/lisp․lisp file, Up: Lisp files [Contents][Index]
linux-packaging/pacman (system)
pacman.lisp
Next: The linux-packaging/package/lisp․lisp file, Previous: The linux-packaging/pacman/lisp․lisp file, Up: Lisp files [Contents][Index]
linux-packaging/rpm (system)
rpm.lisp
Previous: The linux-packaging/rpm/lisp․lisp file, Up: Lisp files [Contents][Index]
linux-packaging/package (system)
package.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
Next: The linux-packaging/main package, Previous: Packages, Up: Packages [Contents][Index]
lisp.lisp (file)
Next: The linux-packaging/deb package, Previous: The linux-packaging/* package, Up: Packages [Contents][Index]
lisp.lisp (file)
linux-packaging
Next: The linux-packaging/pacman package, Previous: The linux-packaging/main package, Up: Packages [Contents][Index]
lisp.lisp (file)
deb (class)
Next: The linux-packaging/rpm package, Previous: The linux-packaging/deb package, Up: Packages [Contents][Index]
lisp.lisp (file)
pacman (class)
Next: The linux-packaging/package package, Previous: The linux-packaging/pacman package, Up: Packages [Contents][Index]
lisp.lisp (file)
rpm (class)
Previous: The linux-packaging/rpm package, Up: Packages [Contents][Index]
lisp.lisp (file)
common-lisp
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported generic functions | ||
• Exported classes |
Next: Exported classes, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
automatically generated reader method
lisp.lisp (file)
Returns the package a file belongs to.
Returns the dependencies that every Lisp image relies on.
Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
lisp.lisp (file)
static-program-op (class)
perform (method)
lisp.lisp (file)
linux-package (class)
"deb"
lisp.lisp (file)
system (class)
:package-name
pkg-name (generic function)
:homepage
homepage (generic function)
:ignored-libraries
ignored-libraries (generic function)
:additional-files
additional-files (generic function)
:additional-dependencies
additional-dependencies (generic function)
:verbose
verbose (generic function)
package-type (generic function)
lisp.lisp (file)
linux-package (class)
"pacman"
lisp.lisp (file)
linux-package (class)
"rpm"
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal macros | ||
• Internal functions | ||
• Internal generic functions |
Next: Internal functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
lisp.lisp (file)
Next: Internal generic functions, Previous: Internal macros, Up: Internal definitions [Contents][Index]
lisp.lisp (file)
lisp.lisp (file)
lisp.lisp (file)
lisp.lisp (file)
lisp.lisp (file)
Previous: Internal functions, Up: Internal definitions [Contents][Index]
automatically generated reader method
lisp.lisp (file)
automatically generated reader method
lisp.lisp (file)
lisp.lisp (file)
automatically generated reader method
lisp.lisp (file)
automatically generated reader method
lisp.lisp (file)
automatically generated reader method
lisp.lisp (file)
automatically generated reader method
lisp.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | F L |
---|
Jump to: | F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | A D F G H I L M P R S V |
---|
Jump to: | A D F G H I L M P R S V |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | A H I P S V |
---|
Jump to: | A H I P S V |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | B C D L P R S |
---|
Jump to: | B C D L P R S |
---|