# ql-to-deb **Repository Path**: mirrors_dimitri/ql-to-deb ## Basic Information - **Project Name**: ql-to-deb - **Description**: Update cl-* debian packages from Quicklisp releases. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-27 - **Last Updated**: 2026-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Quicklisp to debian This projects updates Common Lisp libraries debian packages from the current release found at Quicklisp, if an update is needed. ## Quicklisp ql-to-deb works with a directory of debian packaging as input, and then fetches informations from the quicklisp web site. The quicklisp URLs used are: - http://beta.quicklisp.org/dist/quicklisp.txt - http://beta.quicklisp.org/dist/quicklisp/2014-04-25/releases.txt The first URL contains as its `release-index-url` the second URL, which contains the list of currently most recent available releases in Quicklisp. ## Debian It's only possible to `ql-to-deb` on packages you've prepared before hand. Add the packaging in the `debian/` subdirectory of the project. A typical workflow would be: $ ql-to-deb status [ package ] $ ql-to-deb build [ package ] $ ql-to-deb lint $ ql-to-deb sign $ ql-to-deb upload The `build` command stores the name of the debian *changes* files in `~/.ql-to-deb.changes` and will reuse that information in the other steps, so that it's possible to use the `lint`, `sign` and `upload` commands without any arguments meaning *work on what I just built please*. The application will parse the `debian/control` file to figure out the name of the debian source package, it is adviced to name the packaging directory the same as the source file for easier maintenance. ### Origin tarball The tarball given by Quicklisp is considered to be the `.orig.tar.gz` file for debian packaging purposes. `ql-to-deb` just symlinks it in the format expected by debian, and at the right place. ### Version numbers Basically Quicklisp wins. When quicklisp release has a version number that is both not the same as the current debian one, nor `gt` to it (in terms of `dpkg --compare-versions`), then an *epoch* is added to the debian version number. For example, the `cffi` package debian version currently is *20100219* where in Quicklisp the release version string is *0.12.0*. In that case `ql-to-deb` will prepare a new version of the package with the debian version string `1:0.12.0-1`. ## INSTALL Currently lacking a debian package, because of a classic chicken and eggs problem: `ql-to-deb` itself has some dependencies that are not to be found in debian yet (drakma, md5 and command-line-arguments). $ sudo apt-get install sbcl cl-ppcre cl-split-sequence cl-alexandria $ sudo apt-get build-dep cl-asdf $ sudo apt-get build-dep buildapp $ dpkg -i cl-asdf... Note that we need `cl-asdf` version 3.0.3 or more recent, and `buildapp` version 1.5 or more recent, both as found in *sid* and an `apt-get build-dep` command away to being backported into *squeeze*. Now that you have the build requirements sorted: $ make ## Usage And then: $ ./build/bin/ql-to-deb --version ql-to-deb version "0.7.0" compiled with SBCL 1.2.3.debian $ ./build/bin/ql-to-deb --help ./build/bin/ql-to-deb [ option ... ] command [ package ...] Options: --help -h boolean Show usage and exit. --version -V boolean Displays version and exit. --verbose -v boolean Be verbose. --fix-bugs -F boolean Fix packaging bugs. --config -c string configuration file. (default: #P"/vagrant/ql-to-deb.ini") --dir -D string where to build packages. (default: "/tmp/ql-to-deb/") --logs -L string where to write detailed logs. (default: "/tmp/ql-to-deb/logs/") --quicklisp -Q string URL to use to fetch quicklisp.txt main file (default: "http://beta.quicklisp.org/dist/quicklisp.txt") Commands: status Compare versions (debian sid, local, Quicklisp) check List packages that need building update Build either packages or all that need a build build Build either packages or all that need a build lint Run lintian on just built packages install Run dpkg -i on just built packages sign Run debsign on just built packages upload Run dput on just built packages