lispnik / iup

Common Lisp CFFI bindings to the IUP Portable User Interface library (pre-ALPHA)
Other
139 stars 7 forks source link

tecgraf-libs now requires SSL libraries #44

Closed defunkydrummer closed 4 years ago

defunkydrummer commented 5 years ago

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?

lispnik commented 5 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

defunkydrummer commented 5 years ago

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.

lispnik commented 5 years ago

Could be a transitive dependency. I will check it out. I appreciate you trying IUP out though. Thank you.

lispnik commented 4 years ago

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.

lispnik commented 4 years ago
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")
*