Ticket #1716 (closed bug: fixed)

Opened 4 years ago

Last modified 3 years ago

Parrot won't install when there's a space in the --prefix path

Reported by: moritz Owned by: coke
Priority: normal Milestone:
Component: none Version: 2.5.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

Parrot fails to install when it was configured with --prefix='/tmp/spacey path'. Here's the symptom:

cc -o installable_parrot \
    src/main.o src/install_config.o \
    -Wl,-rpath=/home/moritz/tmp/spacey prefix/lib -L/nocrypt-home/moritz/source/parrot-all/blib/lib -lparrot -lpthread -lm -L/usr/lib  -licuuc -licudata -lpthread -lm -ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline  -L/usr/local/lib -Wl,-E  
cc: prefix/lib: No such file or directory
make: *** [installable_parrot] Error 1

The generated Makefile contains

$(INSTALLABLEPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
    src/install_config$(O) \
    $(PARROT)
	$(LINK) -o $@ \
    src/main$(O) src/install_config$(O) \
    -Wl,-rpath=/home/moritz/tmp/spacey prefix/lib $(ALL_PARROT_LIBS) $(LINKFLAGS)

Seems the rpath needs some escaping/quoting.

Attachments

0001-Allow-spaces-in-install-dir.patch Download (2.4 KB) - added by coke 3 years ago.

Change History

Changed 3 years ago by coke

  • owner set to coke

Changed 3 years ago by coke

Changed 3 years ago by coke

Attached is a patch that seems to fit the bill.

I think it's windows safe, but needs testing.

Most of the paths were fixable in the makefile, but the rpath dirs needed massaging in the config step, as they have a single config param that includes command line args and a (potentially space-containing) path.

Changed 3 years ago by moritz

The patch works fine for me, and if it is applied, I'm fine with closing this ticket.

Changed 3 years ago by whiteknight

  • status changed from new to closed
  • resolution set to fixed

I've tested this patch on Windows and it works well. I just pushed it to master in 05ab1f5. Thanks!

Changed 3 years ago by cosimo

Confirmed. Builds and installs fine in /tmp/My Parrot.

{{ d:\dev\src\parrot>parrot -V This is Parrot version 2.10.1-devel built for i386-MSWin32. Copyright (C) 2001-2010, Parrot Foundation. }}

Note: See TracTickets for help on using tickets.