libgit2-racket / libgit2

Low-level Racket bindings for the libgit2 C library
https://pkgs.racket-lang.org/package/libgit2
MIT License
3 stars 2 forks source link

Native library problem on package-build service #2

Open LiberalArtist opened 1 year ago

LiberalArtist commented 1 year ago

This package currently fails to build on the package build service: see the log below. Since x86_64-linux builds succeed on my local machine and Github CI, it seems like a problem specific to the package build service environment. From this and related notes, my first guess is that it may be using an older Glibc version.

The time is now Sunday, July 9th, 2023 5:24:01am
(/usr/bin/env DISPLAY=:1 PLT_PKG_BUILD_SERVICE=1 PLTUSERHOME=/home/root//user PLT_PKG_BUILD_SERVICE=1 CI=true PLTSTDERR=debug@pkg error PLT_INFO_ALLOW_VARS=;PLT_PKG_BUILD_SERVICE PLTCOMPILEDROOTS=/home/root//zo: /usr/bin/xvfb-run -n 1 /bin/sh -c cd "/home/root/"/racket && bin/racket -MCR "/home/root/"/zo: -l- raco pkg install --jobs 2 -u --auto libgit2)
Resolved "libgit2" via file:///home/root//catalogs/archive/catalog
pkg: catalog response: #hash((author . "philip@philipmcgrath.com clements@racket-lang.org bradley.busching@gmail.com") (checksum . "e65154d775f5089785d8abeb476518927071fada") (dependencies . (("base") ("libgit2-native-libs" #:version "0.1") ("rackunit-lib") ("rackunit-lib") ("rackunit-spec") ("scribble-lib") ("racket-doc"))) (description . "Low-level Racket bindings for the libgit2 C library") (modules . ((lib "libgit2/scribblings/diff.scrbl") (lib "libgit2/scribblings/rebase.scrbl") (lib "libgit2/scribblings/filter.scrbl") (lib "libgit2/include/rebase.rkt") (lib "libgit2/include/branch.rkt") (lib "libgit2/scribblings/pathspec.scrbl") (lib "libgit2/private/buffer.rkt") (lib "libgit2/include/remote.rkt") (lib "libgit2/include/stash.rkt") (lib "libgit2/scribblings/graph.scrbl") (lib "libgit2/scribblings/refspec.scrbl") (lib "libgit2/scribblings/merge.scrbl") (lib "libgit2/include/filter.rkt") (lib "libgit2/include/clone.rkt") (lib "libgit2/include/refs.rkt") (lib "libgit2/include/diff.rkt") (lib "libgit2/scribblings/reflog.scrbl") (lib "libgit2/scribblings/odb.scrbl") (lib "libgit2/include/tag.rkt") (lib "libgit2/scribblings/message.scrbl") (lib "libgit2/test/test-libgit2.rkt") (lib "libgit2/include/transport.rkt") (lib "libgit2/include/ignore.rkt") (lib "libgit2/main.rkt") (lib "libgit2/private/base/utils.rkt") (lib "libgit2/include/object.rkt") (lib "libgit2/scribblings/submodule.scrbl") (lib "libgit2/include/notes.rkt") (lib "libgit2/include/reflog.rkt") (lib "libgit2/scribblings/config.scrbl") (lib "libgit2/scribblings/push.scrbl") (lib "libgit2/include/transaction.rkt") (lib "libgit2/scribblings/buffer.scrbl") (lib "libgit2/scribblings/proxy.scrbl") (lib "libgit2/scribblings/revwalk.scrbl") (lib "libgit2/scribblings/branch.scrbl") (lib "libgit2/scribblings/cred.scrbl") (lib "libgit2/scribblings/trace.scrbl") (lib "libgit2/include/oid.rkt") (lib "libgit2/include/config.rkt") (lib "libgit2/include/trace.rkt") (lib "libgit2/scribblings/note.scrbl") (lib "libgit2/scribblings/ignore.scrbl") (lib "libgit2/include/pack.rkt") (lib "libgit2/include/tree.rkt") (lib "libgit2/include/revparse.rkt") (lib "libgit2/scribblings/global.scrbl") (lib "libgit2/scribblings/checkout.scrbl") (lib "libgit2/scribblings/blob.scrbl") (lib "libgit2/scribblings/revparse.scrbl") (lib "libgit2/scribblings/reset.scrbl") (lib "libgit2/scribblings/repository.scrbl") (lib "libgit2/scribblings/refdb.scrbl") (lib "libgit2/scribblings/revert.scrbl") (lib "libgit2/scribblings/cherrypick.scrbl") (lib "libgit2/include/patch.rkt") (lib "libgit2/include/reset.rkt") (lib "libgit2/private/base/prim.rkt") (lib "libgit2/scribblings/remote.scrbl") (lib "libgit2/scribblings/commit.scrbl") (lib "libgit2/include/merge.rkt") (lib "libgit2/scribblings/describe.scrbl") (lib "libgit2/scribblings/oid.scrbl") (lib "libgit2/scribblings/index.scrbl") (lib "libgit2/include/net.rkt") (lib "libgit2/scribblings/signature.scrbl") (lib "libgit2/scribblings/blame.scrbl") (lib "libgit2/scribblings/fetch.scrbl") (lib "libgit2/scribblings/doc.rkt") (lib "libgit2/private/base/errors.rkt") (lib "libgit2/private/base.rkt") (lib "libgit2/scribblings/patch.scrbl") (lib "libgit2/include/annotated_commit.rkt") (lib "libgit2/include/refspec.rkt") (lib "libgit2/include/blame.rkt") (lib "libgit2/scribblings/clone.scrbl") (lib "libgit2/include/submodule.rkt") (lib "libgit2/scribblings/tree.scrbl") (lib "libgit2/scribblings/strarray.scrbl") (lib "libgit2/include/revert.rkt") (lib "libgit2/include/proxy.rkt") (lib "libgit2/include/odb_backend.rkt") (lib "libgit2/include/strarray.rkt") (lib "libgit2/scribblings/treebuilder.scrbl") (lib "libgit2/include/repository.rkt") (lib "libgit2/include/index.rkt") (lib "libgit2/scribblings/object.scrbl") (lib "libgit2/include/indexer.rkt") (lib "libgit2/include/blob.rkt") (lib "libgit2/include/status.rkt") (lib "libgit2/include/cherrypick.rkt") (lib "libgit2/include/message.rkt") (lib "libgit2/include/graph.rkt") (lib "libgit2/include/odb.rkt") (lib "libgit2/scribblings/refs.scrbl") (lib "libgit2/include/refdb.rkt") (lib "libgit2/include/cred_helpers.rkt") (lib "libgit2/scribblings/stash.scrbl") (lib "libgit2/private/base/define.rkt") (lib "libgit2/scribblings/packbuilder.scrbl") (lib "libgit2/scribblings/tag.scrbl") (lib "libgit2/include/checkout.rkt") (lib "libgit2/include/describe.rkt") (lib "libgit2/include/pathspec.rkt") (lib "libgit2/scribblings/status.scrbl") (lib "libgit2/include/revwalk.rkt") (lib "libgit2/include/signature.rkt") (lib "libgit2/include/commit.rkt") (lib "libgit2/include/types.rkt") (lib "libgit2/scribblings/indexer.scrbl") (lib "libgit2/scribblings/cherrpick.scrbl") (lib "libgit2/scribblings/libgit2.scrbl") (lib "libgit2/scribblings/annotated_commit.scrbl"))) (name . "libgit2") (ring . 1) (source . "file:///home/root/catalogs/archive/pkgs/libgit2.zip") (tags . ("ffi" "git")))
00: Resolved "libgit2-native-libs" via file:///home/root//catalogs/built/catalog
Resolved "rackunit-spec" via file:///home/root//catalogs/built/catalog
pkg: catalog response: #hash((author . "philip@philipmcgrath.com") (checksum . "c28ee823966406d649365a1bdb73a1ee8dfc317a") (dependencies . (("base") ("libgit2-x86_64-linux" #:version "0.2" #:platform #rx"^x86_64-linux(?:-natipkg)?$") ("libgit2-aarch64-macosx" #:version "0.2" #:platform "aarch64-macosx") ("libgit2-x86_64-macosx" #:version "0.2" #:platform "x86_64-macosx") ("libgit2-i386-win32" #:version "0.2" #:platform "win32\\i386") ("libgit2-x86_64-win32" #:version "0.2" #:platform "win32\\x86_64"))) (description . "native libraries for \"libgit2\" (meta-package)") (modules . ()) (name . "libgit2-native-libs") (ring . 1) (source . "file:///home/root/catalogs/built/pkgs/libgit2-native-libs.zip") (tags . ("binary" "git")))
pkg: catalog response: #hash((author . "lexi.lambda@gmail.com") (checksum . "19763735825a1cae23dd6cb9c2d7ad42f1823602") (dependencies . (("base") ("rackunit-lib") ("racket-doc") ("rackunit-doc") ("scribble-lib"))) (description . "BDD test helpers for rackunit") (modules . ((lib "rackunit/scribblings/rackunit-spec.scrbl") (lib "rackunit/spec.rkt"))) (name . "rackunit-spec") (ring . 1) (source . "file:///home/root/catalogs/built/pkgs/rackunit-spec.zip") (tags . ("testing")))
Resolved "libgit2-x86_64-linux" via file:///home/root//catalogs/built/catalog
pkg: catalog response: #hash((author . "philip@philipmcgrath.com") (checksum . "1fce0e99fa352f57b3cbb0b816832370f5c70498") (dependencies . (("base"))) (description . "native libraries for \"libgit2\" on \"x86_64-linux\"") (modules . ()) (name . "libgit2-x86_64-linux") (ring . 1) (source . "file:///home/root/catalogs/built/pkgs/libgit2-x86_64-linux.zip") (tags . ("binary" "git")))
pkg: creating single-collection link to #<path:/home/root//user/.local/share/racket/8.9/pkgs/libgit2-x86_64-linux>
pkg: updating db with "libgit2-x86_64-linux" to '#s((sc-pkg-info pkg-info 3) (catalog "libgit2-x86_64-linux") "1fce0e99fa352f57b3cbb0b816832370f5c70498" #t "libgit2")
pkg: creating single-collection link to #<path:/home/root//user/.local/share/racket/8.9/pkgs/rackunit-spec>
pkg: updating db with "rackunit-spec" to '#s((sc-pkg-info pkg-info 3) (catalog "rackunit-spec") "19763735825a1cae23dd6cb9c2d7ad42f1823602" #t "rackunit")
pkg: creating single-collection link to #<path:/home/root//user/.local/share/racket/8.9/pkgs/libgit2>
pkg: updating db with "libgit2" to '#s((sc-pkg-info pkg-info 3) (catalog "libgit2") "e65154d775f5089785d8abeb476518927071fada" #f "libgit2")
pkg: creating link to #<path:/home/root//user/.local/share/racket/8.9/pkgs/libgit2-native-libs>
pkg: updating db with "libgit2-native-libs" to '#s(pkg-info (catalog "libgit2-native-libs") "c28ee823966406d649365a1bdb73a1ee8dfc317a" #t)
The following uninstalled packages were listed as dependencies
and they were automatically installed:
 dependencies of libgit2:
   libgit2-native-libs
   rackunit-spec
 dependencies of libgit2-native-libs:
   libgit2-x86_64-linux
raco setup: version: 8.9
raco setup: platform: x86_64-linux-natipkg [cs]
raco setup: target machine: any
raco setup: cross-installation: yes
raco setup: installation name: 8.9
raco setup: variants: cs
raco setup: main collects: /home/root/racket/collects/
raco setup: collects paths: 
raco setup:   /home/root/user/.local/share/racket/8.9/collects
raco setup:   /home/root/racket/collects/
raco setup: main pkgs: /home/root/racket/share/pkgs
raco setup: pkgs paths: 
raco setup:   /home/root/racket/share/pkgs
raco setup:   /home/root//user/.local/share/racket/8.9/pkgs
raco setup: links files: 
raco setup:   /home/root/racket/share/links.rktd
raco setup:   /home/root//user/.local/share/racket/8.9/links.rktd
raco setup: compiled-file roots: 
raco setup:   /home/root//zo
raco setup:   same
raco setup: main docs: /home/root/racket/doc
raco setup: --- updating info-domain tables ---                    [5:24:06]
raco setup: updating: /home/root/user/.local/share/racket/8.9/share/info-cache.rktd
raco setup: --- pre-installing collections ---                     [5:24:06]
raco setup: --- installing foreign libraries ---                   [5:24:06]
raco setup: installing: foreign library /home/root/user/.local/share/racket/8.9/lib/libgit2.so.1.4
raco setup: --- installing shared files ---                        [5:24:06]
raco setup: --- compiling collections ---                          [5:24:06]
raco setup: --- parallel build using 2 jobs ---                    [5:24:06]
raco setup: 1 making: <pkgs>/libgit2
raco setup: 0 making: <pkgs>/libgit2-x86_64-linux
raco setup: 0 making: <pkgs>/rackunit-spec
raco setup: 0 making: <pkgs>/rackunit-spec/scribblings
raco setup: 1 making: <pkgs>/libgit2/include
raco setup: 1 making: <pkgs>/libgit2/private
raco setup: 1 making: <pkgs>/libgit2/private/base
raco setup: 1 making: <pkgs>/libgit2/scribblings
raco setup: 1 making: <pkgs>/libgit2/test
raco setup: --- creating launchers ---                             [5:24:37]
raco setup: --- installing man pages ---                           [5:24:37]
raco setup: --- building documentation ---                         [5:24:37]
raco setup: syncing: <pkgs>/rackunit-spec/doc/rackunit-spec
raco setup: 1 running: <pkgs>/libgit2/scribblings/libgit2.scrbl
raco setup: 0 running: <pkgs>/racket-index/scribblings/main/user/local-redirect.scrbl
examples: exception raised in example
  error: "git_oid_fromstr: implementation not found\n  arguments...:\n   \"555c0bd2b220e74e77a2d4ead659ffad79175dfa\""
  context...:
   /home/root/racket/collects/racket/private/more-scheme.rkt:163:2: select-handler/no-breaks
   /home/root/racket/share/pkgs/scribble-lib/scribble/eval.rkt:356:9
   .../private/map.rkt:40:19: loop
   .../private/manual-vars.rkt:219:40
   /home/root/racket/share/pkgs/scribble-lib/scribble/private/manual-vars.rkt:167:0: *deftogether
   body of "/home/root/user/.local/share/racket/8.9/pkgs/libgit2/scribblings/oid.scrbl"

  context...:
   /home/root/racket/collects/setup/parallel-do.rkt:333:4: work-done method in list-queue%
   /home/root/racket/collects/setup/parallel-do.rkt:283:17
   /home/root/racket/collects/setup/parallel-do.rkt:237:4
   /home/root/racket/share/pkgs/racket-index/setup/scribble.rkt:139:0: setup-scribblings
   /home/root/racket/collects/setup/setup.rkt:78:3
   /home/root/racket/collects/pkg/main.rkt:17:0: setup
   body of (submod "/home/root/racket/collects/pkg/main.rkt" main)
   /home/root/racket/collects/raco/raco.rkt:41:0
   body of "/home/root/racket/collects/raco/raco.rkt"
   body of "/home/root/racket/collects/raco/main.rkt"
raco setup: 1 running: <pkgs>/racket-index/scribblings/main/user/release.scrbl
raco setup: 1 running: <pkgs>/racket-index/scribblings/main/user/search.scrbl
raco setup: 1 running: <pkgs>/racket-index/scribblings/main/user/start.scrbl
raco setup: 1 rendering: <pkgs>/racket-index/scribblings/main/user/local-redirect.scrbl
raco setup: 0 rendering: <pkgs>/racket-index/scribblings/main/user/release.scrbl
raco setup: 0 rendering: <pkgs>/racket-index/scribblings/main/user/search.scrbl
raco setup: 1 rendering: <pkgs>/racket-index/scribblings/main/user/start.scrbl
raco setup: --- installing collections ---                         [5:24:54]
raco setup: --- post-installing collections ---                    [5:24:54]
raco setup: --- summary of errors ---                              [5:24:54]
raco setup: error: during building docs for <pkgs>/libgit2/scribblings/libgit2.scrbl
raco setup:   examples: exception raised in example
raco setup:     error: "git_oid_fromstr: implementation not found\n  arguments...:\n   \"555c0bd2b220e74e77a2d4ead659ffad79175dfa\""
raco setup:     context...:
raco setup:      /home/root/racket/collects/racket/private/more-scheme.rkt:163:2: select-handler/no-breaks
raco setup:      /home/root/racket/share/pkgs/scribble-lib/scribble/eval.rkt:356:9
raco setup:      .../private/map.rkt:40:19: loop
raco setup:      .../private/manual-vars.rkt:219:40
raco setup:      /home/root/racket/share/pkgs/scribble-lib/scribble/private/manual-vars.rkt:167:0: *deftogether
raco setup:      body of "/home/root/user/.local/share/racket/8.9/pkgs/libgit2/scribblings/oid.scrbl"
raco setup:   
racket pkg install: packages installed, although setup reported errors
The time is now Sunday, July 9th, 2023 5:24:54am
LiberalArtist commented 1 year ago

The package build service uses the Docker images mflatt/pkg-build-deps-min and mflatt/pkg-build-deps. These are based on Ubuntu 16.04 (Xenial), which has Glibc 2.23: definitely too old for our current .so, which is built against Glibc 2.31. (Thanks to @samdphillips for helping track this down!)

I can pursue more possibilities for building against an older Glibc, but it at least the problem is not related to moving the package source.