Closed defunkydrummer closed 4 years ago
Yeah, this is a total headache. I'm not sure about chipz, but tecgraf-libs depends directly on cl+ssl for downloading via HTTPS. I haven't been able to force it to HTTP. When I try that, the request is redirected via 301 to a HTTPS URL.
Not sure what to do about this.
One idea I had was to create another asdf system called "openssl-libs", that takes the same approach as tecgraf-libs does (download, verify, unpack etc.) but instead of downloading an OpenSSL binary build, I'll just include the binaries in the git repo of openssl-libs itself.
Another idea is to look for someway on windows do download a URL by just calling an external command. Some notes here https://stackoverflow.com/questions/28143160/how-can-i-download-a-file-with-batch-file-without-using-any-external-tools
but tecgraf-libs depends directly on cl+ssl for downloading via HTTPS
Note that when I enthusiastically tried IUP for the first time, i did use tecgraf-libs
and did not have the issue i'm reporting. It could download the tecgraf libs just fine.
So something has changed, me thinks.
Could be a transitive dependency. I will check it out. I appreciate you trying IUP out though. Thank you.
https://github.com/lispnik/tecgraf-libs/commit/48b7f6bfbaaaea5143681abccaf46c9514d67d1e
This switches from Drakma to Dexador, which apparently calls out to some built-in Windows HTTP client DLL and avoids the whole issue.
C:\>sbcl
This is SBCL 1.4.14, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
WARNING: the Windows port is fragile, particularly for multithreaded
code. Unfortunately, the development team currently lacks the time
and resources this platform demands.
* (ql:quickload "tecgraf-libs")
To load "tecgraf-libs":
Load 1 ASDF system:
tecgraf-libs
; Loading "tecgraf-libs"
To load "trivial-features":
Load 1 ASDF system:
asdf
Install 1 Quicklisp release:
trivial-features
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-features/2019-07-10/trivial-features-20190710-git.tgz">
; 10.51KB
==================================================
10,765 bytes in 0.00 seconds (0.00KB/sec)
; Loading "trivial-features"
; Loading "tecgraf-libs"
To load "cl-fad":
Load 1 ASDF system:
asdf
Install 3 Quicklisp releases:
alexandria bordeaux-threads cl-fad
; Fetching #<URL "http://beta.quicklisp.org/archive/bordeaux-threads/2019-11-30/bordeaux-threads-v0.8.7.tgz">
; 21.44KB
==================================================
21,951 bytes in 0.06 seconds (340.26KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/alexandria/2019-07-10/alexandria-20190710-git.tgz">
; 52.18KB
==================================================
53,436 bytes in 0.14 seconds (372.74KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-fad/2019-08-13/cl-fad-20190813-git.tgz">
; 24.08KB
==================================================
24,659 bytes in 0.08 seconds (312.74KB/sec)
; Loading "cl-fad"
[package alexandria.1.0.0]........................
[package bordeaux-threads]........................
[package cl-fad]..................................
[package path]....
; Loading "tecgraf-libs"
To load "dexador":
Load 6 ASDF systems:
alexandria asdf bordeaux-threads cl-fad
trivial-features uiop
Install 25 Quicklisp releases:
babel cffi chipz chunga cl+ssl cl-base64 cl-cookie
cl-ppcre cl-reexport cl-utilities dexador fast-http
fast-io flexi-streams local-time proc-parse quri
smart-buffer split-sequence static-vectors
trivial-garbage trivial-gray-streams trivial-mimes
usocket xsubseq
; Fetching #<URL "http://beta.quicklisp.org/archive/usocket/2019-07-10/usocket-0.8.2.tgz">
; 81.49KB
==================================================
83,447 bytes in 0.16 seconds (522.38KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-mimes/2019-07-10/trivial-mimes-20190710-git.tgz">
; 19.74KB
==================================================
20,215 bytes in 0.06 seconds (313.35KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/static-vectors/2019-11-30/static-vectors-v1.8.4.tgz">
; 7.25KB
==================================================
7,420 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/fast-io/2017-10-23/fast-io-20171023-git.tgz">
; 7.88KB
==================================================
8,067 bytes in 0.06 seconds (127.06KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/xsubseq/2017-08-30/xsubseq-20170830-git.tgz">
; 3.91KB
==================================================
4,006 bytes in 0.03 seconds (126.20KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/smart-buffer/2016-06-28/smart-buffer-20160628-git.tgz">
; 3.10KB
==================================================
3,176 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/fast-http/2019-10-07/fast-http-20191007-git.tgz">
; 32.75KB
==================================================
33,540 bytes in 0.03 seconds (1056.58KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-reexport/2015-07-09/cl-reexport-20150709-git.tgz">
; 2.56KB
==================================================
2,621 bytes in 0.01 seconds (170.64KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/split-sequence/2019-05-21/split-sequence-v2.0.0.tgz">
; 10.09KB
==================================================
10,329 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-utilities/2010-10-06/cl-utilities-1.2.4.tgz">
; 22.46KB
==================================================
22,998 bytes in 0.06 seconds (362.24KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/quri/2019-11-30/quri-20191130-git.tgz">
; 68.09KB
==================================================
69,725 bytes in 0.16 seconds (439.30KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/proc-parse/2019-08-13/proc-parse-20190813-git.tgz">
; 8.49KB
==================================================
8,695 bytes in 0.01 seconds (566.08KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/local-time/2019-07-10/local-time-20190710-git.tgz">
; 275.90KB
==================================================
282,522 bytes in 0.19 seconds (1475.40KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-ppcre/2019-05-21/cl-ppcre-20190521-git.tgz">
; 151.38KB
==================================================
155,009 bytes in 0.20 seconds (745.69KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-cookie/2019-10-07/cl-cookie-20191007-git.tgz">
; 4.77KB
==================================================
4,880 bytes in 0.01 seconds (317.71KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl-base64/2015-09-23/cl-base64-20150923-git.tgz">
; 8.39KB
==================================================
8,589 bytes in 0.02 seconds (524.23KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-garbage/2019-05-21/trivial-garbage-20190521-git.tgz">
; 10.19KB
==================================================
10,438 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/flexi-streams/2019-01-07/flexi-streams-20190107-git.tgz">
; 129.83KB
==================================================
132,948 bytes in 0.13 seconds (1038.66KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cffi/2019-07-10/cffi_0.20.1.tgz">
; 254.02KB
==================================================
260,119 bytes in 0.25 seconds (1016.09KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/cl+ssl/2019-11-30/cl+ssl-20191130-git.tgz">
; 51.47KB
==================================================
52,704 bytes in 0.13 seconds (408.48KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/trivial-gray-streams/2018-10-18/trivial-gray-streams-20181018-git.tgz">
; 7.84KB
==================================================
8,024 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/chunga/2018-01-31/chunga-20180131-git.tgz">
; 20.07KB
==================================================
20,552 bytes in 0.06 seconds (318.58KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/chipz/2019-02-02/chipz-20190202-git.tgz">
; 36.24KB
==================================================
37,110 bytes in 0.03 seconds (1169.04KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/babel/2019-11-30/babel-20191130-git.tgz">
; 264.83KB
==================================================
271,183 bytes in 0.19 seconds (1408.66KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/dexador/2019-10-07/dexador-20191007-git.tgz">
; 230.21KB
==================================================
235,731 bytes in 0.25 seconds (917.16KB/sec)
; Loading "dexador"
..................................................
[package babel-encodings].........................
[package babel]...................................
..................................................
[package cffi-sys]................................
[package cffi]....................................
..................................................
[package cffi-features]...............To load "winhttp":
Load 2 ASDF systems:
asdf cffi
Install 1 Quicklisp release:
winhttp
; Fetching #<URL "http://beta.quicklisp.org/archive/winhttp/2019-01-07/winhttp-20190107-git.tgz">
; 13.54KB
==================================================
13,864 bytes in 0.01 seconds (902.60KB/sec)
; Loading "winhttp"
[package winhttp].......
; Loading "dexador"
[package cl-utilities]............................
[package proc-parse]..............................
[package xsubseq].................................
[package impl-specific-gray]......................
[package trivial-gray-streams]....................
[package flexi-streams]...........................
..................................................
..................................................
..................................................
[package smart-buffer]............................
[package fast-http.http]..........................
[package fast-http.error].........................
[package fast-http.byte-vector]...................
[package fast-http.util]..........................
[package fast-http.parser]........................
..................................................
[package fast-http.multipart-parser]..............
[package fast-http]...............................
[package split-sequence]..........................
[package quri.port]...............................
[package quri.uri]................................
[package quri.encode].............................
[package quri.error]..............................
[package quri.util]...............................
[package quri.decode].............................
[package quri.uri.ftp]............................
[package quri.uri.http]...........................
[package quri.uri.ldap]...........................
[package quri.uri.file]...........................
[package quri.etld]...............................
[package quri.domain].............................
[package quri.parser].............................
[package quri]....................................
[package static-vectors]..........................
[package fast-io].................................
[package chunga]..................................
[package cl-ppcre]................................
..................................................
[package local-time]..............................
[package cl-cookie]...............................
[package trivial-mimes]...........................
[package chipz]...................................
[package cl-base64]...............................
[package cl-reexport].............................
[package usocket].................................
[package dexador.encoding]........................
[package dexador.connection-cache]................
[package dexador.decoding-stream].................
[package dexador.keep-alive-stream]...............
[package dexador.util]............................
[package dexador.body]............................
[package dexador.error]...........................
[package dexador.backend.usocket].................
[package dexador.backend.winhttp].................
[package dexador].
; Loading "tecgraf-libs"
To load "zip":
Load 3 ASDF systems:
babel cl-fad trivial-gray-streams
Install 2 Quicklisp releases:
salza2 zip
; Fetching #<URL "http://beta.quicklisp.org/archive/salza2/2013-07-20/salza2-2.0.9.tgz">
; 15.16KB
==================================================
15,525 bytes in 0.01 seconds (1010.74KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/zip/2015-06-08/zip-20150608-git.tgz">
; 20.45KB
==================================================
20,940 bytes in 0.03 seconds (639.04KB/sec)
; Loading "zip"
[package salza2]..................................
[package zip]...........
; Loading "tecgraf-libs"
To load "ironclad":
Load 2 ASDF systems:
asdf bordeaux-threads
Install 2 Quicklisp releases:
ironclad nibbles
; Fetching #<URL "http://beta.quicklisp.org/archive/nibbles/2018-08-31/nibbles-20180831-git.tgz">
; 17.23KB
==================================================
17,647 bytes in 0.06 seconds (277.96KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/archive/ironclad/2019-10-07/ironclad-v0.47.tgz">
; 1418.89KB
==================================================
1,452,945 bytes in 0.41 seconds (3494.81KB/sec)
; Loading "ironclad"
[package nibbles].................................
[package ironclad]................................
[package ironclad-vm].............................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..................................................
..........................
; Loading "tecgraf-libs"
[package tecgraf-libs]
Downloading https://sourceforge.net/projects/iup/files/3.27/Windows%20Libraries/Dynamic/iup-3.27_Win64_dll15_lib.zip...
.
Downloading https://sourceforge.net/projects/canvasdraw/files/5.12/Windows%20Libraries/Dynamic/cd-5.12_Win64_dll15_lib.zip...
Downloading https://sourceforge.net/projects/imtoolkit/files/3.13/Windows%20Libraries/Dynamic/im-3.13_Win64_dll15_lib.zip...
Unpacked to #P"C:/Users/mkennedy/Quicklisp/local-projects/tecgraf-libs/libs/"
Lisp init file:
(ql:quickload "cffi")
(pushnew (asdf:system-relative-pathname "tecgraf-libs" "libs/")
cffi:*foreign-library-directories*)
Linux:
export LD_LIBRARY_PATH="C:/Users/mkennedy/Quicklisp/local-projects/tecgraf-libs/libs/:$LD_LIBRARY_PATH"
LD_LIBRARY_PATH="C:/Users/mkennedy/Quicklisp/local-projects/tecgraf-libs/libs/:$LD_LIBRARY_PATH" lisp ...
Windows:
setx PATH "C:/Users/mkennedy/Quicklisp/local-projects/tecgraf-libs/libs/;%PATH%"
("tecgraf-libs")
*
I see tecgraf-libs has changed and now requires chipz which in turn asks me for having the SSL DLLs installed.
This makes the installation far more cumbersome.
Is this really necessary?