rugged will not be linked correctly when built in a path containing a whitespace, problem with pkg-config?

Aperta
#772 0 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
c, cmake, ruby
Ambito
build-system

Direzione di ricerca

La riproduzione esegue ext/rugged/extconf.rb e compila la libgit2 inclusa in vendor/libgit2; inizia tracciando il modo in cui questo punto di ingresso passa i percorsi a pkg-config e CMake. Riproduci la build da una directory il cui percorso contiene spazi e confrontala con i comandi manuali di pkg-config. Il lavoro è completato quando la build esegue correttamente il linking da un percorso di questo tipo, oppure quando il comportamento della dipendenza è documentato con un cambiamento attuabile al progetto identificato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Rugged will not be linked correctly when you build it in a path containing a whitespace, you will get undefined symbol errors.

git submodule update --init
Submodule 'vendor/libgit2' (https://github.com/libgit2/libgit2.git) registered for path 'vendor/libgit2'
Cloning into '/home/wiebelt/Projects/spa tie/rugged/vendor/libgit2'...
Submodule path 'vendor/libgit2': checked out '838a2f2918b6d9fad8768d2498575ff5d75c35f0'
mkdir -p tmp/x86_64-linux/rugged/2.5.3
cd tmp/x86_64-linux/rugged/2.5.3
/usr/bin/ruby -I. ../../../../ext/rugged/extconf.rb
checking for gmake... yes
checking for cmake... yes
checking for pkg-config... yes
-- cmake .. -DBUILD_CLAR=OFF -DTHREADSAFE=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=-fPIC -DCMAKE_BUILD_TYPE=RelWithDebInfo
-- /usr/bin/gmake
Package /home/wiebelt/Projects/spa was not found in the pkg-config search path.
Perhaps you should add the directory containing `/home/wiebelt/Projects/spa.pc'
to the PKG_CONFIG_PATH environment variable
Package '/home/wiebelt/Projects/spa', required by 'virtual:world', not found
Package 'tie/rugged/ext/rugged/../../vendor/libgit2/build/libgit2.pc', required by 'virtual:world', not found
checking for -lgit2... yes
checking for git2.h... yes
creating Makefile
cd -
cd tmp/x86_64-linux/rugged/2.5.3
/usr/bin/gmake
gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I../../../../ext/rugged -DHAVE_GIT2_H "-I/home/wiebelt/Projects/spa tie/rugged/ext/rugged/../../vendor/libgit2/include" -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -g -Wall -Wno-comment -m64 -o rugged.o -c ../../../../ext/rugged/rugged.c
... and it will compile just fine ...

When i run pkg-config by hand it seems like it does not handle quotes (single or double), using a backslash to escape the whitespace doesn't work either.

pkg-config --libs --static "/var/lib/jenkins/bui ld/rugged/ext/rugged/../../vendor/libgit2/build/libgit2.pc"
Package /var/lib/jenkins/bui was not found in the pkg-config search path.
Perhaps you should add the directory containing `/var/lib/jenkins/bui.pc'
to the PKG_CONFIG_PATH environment variable
No package '/var/lib/jenkins/bui' found
Failed to open 'ld/rugged/ext/rugged/../../vendor/libgit2/build/libgit2.pc': No such file or directory
No package 'ld/rugged/ext/rugged/../../vendor/libgit2/build/libgit2.pc' found

So it seems like it's a bug in pkg-config but i dont know enough of that tool to know for sure, is it being used correctly? Could someone help file a bug report there?

Lingua principale
C
Stelle
2.3k
Fork
293
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di libgit2/rugged

Tutte le issue di libgit2/rugged

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.