greghendershott / frog

Frog is a static blog generator implemented in Racket, targeting Bootstrap and able to use Pygments.
916 stars 96 forks source link

Work around reprovide-lang upstream issue #260

Closed winny- closed 2 years ago

winny- commented 2 years ago

Ran into this when building a website with frog while using the racket/racket:8.3-full docker image. The work around is to only install the reprovide-lang-lib. Hopefully upstream comes up with a fix but this will address the issue with frog in particular.

https://github.com/AlexKnauth/reprovide-lang/issues/14

winny- commented 2 years ago

How to reproduce:

$ docker run -ti --rm racket/racket:8.3-full raco pkg install --auto frog
Resolving "frog" via https://download.racket-lang.org/releases/8.3/catalog/
Resolving "frog" via https://pkg-build.racket-lang.org/server/built/catalog/
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/frog.zip
00: Resolving "find-parent-dir" via https://download.racket-lang.org/releases/8.3/catalog/
01: Resolving "markdown" via https://download.racket-lang.org/releases/8.3/catalog/
02: Resolving "reprovide-lang" via https://download.racket-lang.org/releases/8.3/catalog/
03: Resolving "threading-lib" via https://download.racket-lang.org/releases/8.3/catalog/
00: Resolving "find-parent-dir" via https://pkg-build.racket-lang.org/server/built/catalog/
03: Resolving "threading-lib" via https://pkg-build.racket-lang.org/server/built/catalog/
02: Resolving "reprovide-lang" via https://pkg-build.racket-lang.org/server/built/catalog/
01: Resolving "markdown" via https://pkg-build.racket-lang.org/server/built/catalog/
Resolving "threading-doc" via https://download.racket-lang.org/releases/8.3/catalog/
Resolving "threading-doc" via https://pkg-build.racket-lang.org/server/built/catalog/Downloading https://pkg-build.racket-lang.org/server/built/pkgs/find-parent-dir.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/markdown.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/reprovide-lang.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/threading-lib.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/threading-doc.zip
01: Resolving "parsack" via https://download.racket-lang.org/releases/8.3/catalog/
01: Resolving "parsack" via https://pkg-build.racket-lang.org/server/built/catalog/
Resolving "sexp-diff-lib" via https://download.racket-lang.org/releases/8.3/catalog/
Resolving "sexp-diff-lib" via https://pkg-build.racket-lang.org/server/built/catalog/Downloading https://pkg-build.racket-lang.org/server/built/pkgs/parsack.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/sexp-diff-lib.zip
Resolving "reprovide-lang-lib" via https://download.racket-lang.org/releases/8.3/catalog/
Resolving "reprovide-lang-lib" via https://pkg-build.racket-lang.org/server/built/catalog/
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/reprovide-lang-lib.zip
01: Resolving "lang-file-lib" via https://download.racket-lang.org/releases/8.3/catalog/
01: Resolving "lang-file-lib" via https://pkg-build.racket-lang.org/server/built/catalog/
Resolving "syntax-macro-lang" via https://download.racket-lang.org/releases/8.3/catalog/
Resolving "syntax-macro-lang" via https://pkg-build.racket-lang.org/server/built/catalog/
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/lang-file-lib.zip
Downloading https://pkg-build.racket-lang.org/server/built/pkgs/syntax-macro-lang.zipThe following uninstalled packages were listed as dependencies
and they were automatically installed:
 dependencies of frog:
   find-parent-dir
   markdown
   reprovide-lang
   threading-lib
   threading-doc
 dependencies of markdown:
   parsack
   sexp-diff-lib
 dependencies of reprovide-lang:
   reprovide-lang-lib
 dependencies of reprovide-lang-lib:
   lang-file-lib
   syntax-macro-lang
raco setup: version: 8.3
raco setup: platform: x86_64-linux-natipkg [cs]
raco setup: target machine: ta6le
raco setup: installation name: 8.3
raco setup: variants: cs
raco setup: main collects: /usr/share/racket/collects/
raco setup: collects paths: 
raco setup:   /root/.local/share/racket/8.3/collects
raco setup:   /usr/share/racket/collects/
raco setup: main pkgs: /usr/share/racket/pkgs
raco setup: pkgs paths: 
raco setup:   /usr/share/racket/pkgs
raco setup:   /root/.local/share/racket/8.3/pkgs
raco setup: links files: 
raco setup:   /usr/share/racket/links.rktd
raco setup:   /root/.local/share/racket/8.3/links.rktd
raco setup: compiled-file roots: 
raco setup:   same
raco setup:   /usr/lib/racket/compiled
raco setup: main docs: /usr/share/racket/doc
raco setup: --- updating info-domain tables ---                    [0:34:09]
raco setup: updating: /root/.local/share/racket/8.3/share/info-cache.rktd
raco setup: --- pre-installing collections ---                     [0:34:09]
raco setup: --- installing foreign libraries ---                   [0:34:09]
raco setup: --- installing shared files ---                        [0:34:09]
raco setup: --- compiling collections ---                          [0:34:09]
raco setup: --- parallel build using 8 jobs ---                    [0:34:09]
raco setup: 7 making: <pkgs>/find-parent-dir/find-parent-dir
raco setup: 6 making: <pkgs>/frog/example
raco setup: 6 making: <pkgs>/frog/frog
raco setup: 5 making: <pkgs>/lang-file-lib/lang-file
raco setup: 4 making: <pkgs>/markdown/markdown
raco setup: 3 making: <pkgs>/parsack/parsack (parsack)
raco setup: 2 making: <pkgs>/reprovide-lang-lib/reprovide
raco setup: 1 making: <pkgs>/reprovide-lang/reprovide
raco setup: 0 making: <pkgs>/sexp-diff-lib/sexp-diff
raco setup: 1 making: <pkgs>/reprovide-lang/reprovide/scribblings
raco setup: 5 making: <pkgs>/lang-file-lib/lang-file/test
raco setup: 7 making: <pkgs>/syntax-macro-lang/syntax
raco setup: 7 making: <pkgs>/syntax-macro-lang/tests
raco setup: 7 making: <pkgs>/syntax-macro-lang/tests/syntax
raco setup: 7 making: <pkgs>/syntax-macro-lang/tests/syntax/macro-lang
raco setup: 0 making: <pkgs>/threading-doc/scribblings
raco setup: 7 making: <pkgs>/threading-lib/threading
raco setup: 1 making: <pkgs>/reprovide-lang/reprovide/test
raco setup: 2 making: <pkgs>/reprovide-lang-lib/reprovide/require-transformer
raco setup: 3 making: <pkgs>/parsack/parsack/examples
raco setup: 2 making: <pkgs>/reprovide-lang-lib/reprovide/require-transformer/privateraco setup: 1 making: <pkgs>/reprovide-lang/reprovide/test/example-directory
raco setup: 1 making: <pkgs>/reprovide-lang/reprovide/test/other-subdir
open-input-file: cannot open module file
  module path: /home/root/user/.local/share/racket/8.3/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt
  path: /home/root/user/.local/share/racket/8.3/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt
  system error: no such file or directory; rkt_err=3
  compilation context...:
   /root/.local/share/racket/8.3/pkgs/reprovide-lang/reprovide/test/other-subdir/indirect-glob-in.rkt
  context...:
   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:685:0: compile-zo*
   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:451:15
   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:440:12: build
   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:411:0: maybe-compile-zo   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:209:0: compile-root
   /usr/share/racket/collects/compiler/private/cm-minimal.rkt:105:4
   /usr/share/racket/collects/setup/parallel-build.rkt:332:9
   /usr/share/racket/collects/setup/parallel-do.rkt:455:25
   /usr/share/racket/collects/setup/parallel-do.rkt:441:20: loop
raco setup: 3 making: <pkgs>/parsack/parsack/examples/tests
raco setup: 3 making: <pkgs>/parsack/parsack/tests
raco setup: 6 making: <pkgs>/frog/frog/config
raco setup: 6 making: <pkgs>/frog/frog/config/lang
raco setup: 6 making: <pkgs>/frog/frog/config/private
raco setup: 6 making: <pkgs>/frog/frog/private
raco setup: 6 making: <pkgs>/frog/frog/private/enhance-body
raco setup: 6 making: <pkgs>/frog/frog/private/enhance-body/add-doc-links
raco setup: 6 making: <pkgs>/frog/frog/private/enhance-body/syntax-highlight
raco setup: 6 making: <pkgs>/frog/frog/private/upgrade
raco setup: --- creating launchers ---                             [0:34:12]
raco setup: --- installing man pages ---                           [0:34:12]
raco setup: --- building documentation ---                         [0:34:12]
raco setup: syncing: <pkgs>/frog/frog/doc/frog
raco setup: syncing: <pkgs>/markdown/markdown/doc/markdown
raco setup: syncing: <pkgs>/parsack/parsack/doc/parsack
raco setup: syncing: <pkgs>/reprovide-lang/reprovide/doc/reprovide
raco setup: syncing: <pkgs>/threading-doc/scribblings/doc/threading
raco setup: 2 running: <pkgs>/racket-index/scribblings/main/user/local-redirect.scrblraco setup: 5 running: <pkgs>/racket-index/scribblings/main/user/release.scrbl
raco setup: 1 running: <pkgs>/racket-index/scribblings/main/user/search.scrbl
raco setup: 7 running: <pkgs>/racket-index/scribblings/main/user/start.scrbl
raco setup: 3 rendering: <pkgs>/racket-index/scribblings/main/user/local-redirect.scrbl
raco setup: 2 rendering: <pkgs>/racket-index/scribblings/main/user/release.scrbl
raco setup: 1 rendering: <pkgs>/racket-index/scribblings/main/user/search.scrbl
raco setup: 0 rendering: <pkgs>/racket-index/scribblings/main/user/start.scrbl
raco setup: --- installing collections ---                         [0:34:16]
raco setup: --- post-installing collections ---                    [0:34:16]
raco setup: --- summary of errors ---                              [0:34:16]
raco setup: error: during making for <pkgs>/reprovide-lang/reprovide/test/other-subdir
raco setup:   open-input-file: cannot open module file
raco setup:     module path: /home/root/user/.local/share/racket/8.3/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt
raco setup:     path: /home/root/user/.local/share/racket/8.3/pkgs/reprovide-lang/reprovide/test/example-directory/a.rkt
raco setup:     system error: no such file or directory; rkt_err=3
raco setup:     compiling: <pkgs>/reprovide-lang/reprovide/test/other-subdir/indirect-glob-in.rkt
raco pkg install: packages installed, although setup reported errors
AlexKnauth commented 2 years ago

Since I don't know much about how Docker interacts with the filesystem and Racket's compilation, who would know where to look for ways of making glob-in compatible with Docker? Or failing that, where to look for ways of telling raco setup and raco test to disable that indirect-glob-in test only within Docker?

greghendershott commented 2 years ago

Thank you; merged.