On 2021/03/03 16:24, Omar Polo wrote:
> I'm trying to port an application written in common-lisp, but I'm not
> sure how to proceed. The application is tinmop[0], a pleroma and gemini
> client.
>
> I ensured that it works^1, and convinced the author to properly tag
> releases, but I don't know how to handle quicklisp dependencies.
>
> As far as I can see, the only other common-lisp port is x11/stumpwm and
> it gets away with using MASTER_SITES0-2 for its deps. tinmop, on the
> other hand, has like 24 dependencies, so it isn't feasible.
>
> What's the best approach in these cases? Hosting a tarball with the
> dependencies? Or there are some other tricks to with asdf?
Indeed MASTER_SITES can only go from <nothing> to 9, but as long as there's
a common base URL you can use the "DISTFILES=local{remote}suffix" syntax.
Here's an example for converting stumpwm to use this. Some ports do similar
for multiple github dependencies.
Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/stumpwm/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile 5 Dec 2020 13:49:20 -0000 1.7
+++ Makefile 3 Mar 2021 15:51:36 -0000
@@ -18,13 +18,12 @@ WANTLIB += c m util z
MASTER_SITES= https://github.com/stumpwm/stumpwm/archive/
MASTER_SITES0= https://github.com/edicl/cl-ppcre/archive/
-MASTER_SITES1= https://beta.quicklisp.org/archive/clx/2019-08-13/
-MASTER_SITES2=
https://beta.quicklisp.org/archive/alexandria/2019-07-10/
+MASTER_SITES1= https://beta.quicklisp.org/archive/
DISTFILES= ${DISTNAME}{${VERSION}}${EXTRACT_SUFX} \
cl-ppcre-2.1.1{v2.1.1}.tar.gz:0 \
- clx-20190813-git.tgz:1 \
- alexandria-20190710-git.tgz:2
+ {clx/2019-08-13/}clx-20190813-git.tgz:1 \
+ {alexandria/2019-07-10/}alexandria-20190710-git.tgz:1
BUILD_DEPENDS= lang/sbcl,threads \
print/texinfo