#799: Configure should explicitly check for symbolic link capability on Linux
---------------------------------+------------------------------------------
Reporter: Austin_Hastings | Type: bug
Status: new | Priority: minor
Milestone: | Component: configure
Version: 1.3.0 | Severity: medium
Keywords: ntfs symbolic links | Lang:
Patch: | Platform: linux
---------------------------------+------------------------------------------
Comment(by jkeenan):
Replying to [comment:2 Austin_Hastings]:
I created the following patch:
{{{
Index: config/gen/makefiles/root.in
===================================================================
--- config/gen/makefiles/root.in (revision 39874)
+++ config/gen/makefiles/root.in (working copy)
@@ -894,7 +894,7 @@
#IF(win32 and cc==gcc): -Wl,--out-implib=libparrot.lib \
$(O_FILES) $(C_LIBS) $(ICU_SHARED)
#IF(win32): if exist [email protected] mt.exe -nologo -manifest [email protected]
-outputresource:$@;2
-#IF(libparrot_shared_alias): ( cd @blib_dir@ ; ln -sf
@libparrot_shared@ @libparrot_shared_alias@ )
+#IF(libparrot_shared_alias): ( cd @blib_dir@ ; $(CP) @libparrot_shared@
@libparrot_shared_alias@ )
$(INSTALLABLECONFIG) : $(SRC_DIR)/install_config$(O) $(PARROT_CONFIG)
$(PBC_TO_EXE)
@@ -2215,7 +2215,7 @@
###############################################################################
release : MANIFEST MANIFEST.generated
- [ -d parrot-$(VERSION) ] || ln -s $(CUR_DIR) parrot-$(VERSION)
+ [ -d parrot-$(VERSION) ] || $(CP) $(CUR_DIR) parrot-$(VERSION)
@$(RM_F) MANIFEST.real
mv MANIFEST MANIFEST.real
grep -v DEVELOPING MANIFEST.real > MANIFEST
}}}
On a regular Linux system, I then configured Parrot with
`--prefix=/topdir/pseudoinstall` so I could observe what happens during an
installation. I then called `make && make install && make install-dev`.
I confirmed that something worked by switching to ''topdir/pseudoinstall''
and calling `./bin/parrot --version`, with favorable results. However, I
don't know what else should be tested to demonstrate this works.
> [snip]
>
> I also have this one:
{{{
> release : MANIFEST MANIFEST.generated
> [ -d parrot-$(VERSION) ] || ln -s $(CUR_DIR) parrot-$(VERSION)
> @$(RM_F) MANIFEST.real
> mv MANIFEST MANIFEST.real
> grep -v DEVELOPING MANIFEST.real > MANIFEST
> $(PERL) -lane
'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' MANIFEST | \
> tar -zcv -T - -f parrot-$(VERSION).tar.gz
> mv MANIFEST.real MANIFEST
> rm parrot-$(VERSION)
}}}
>
> But I have never tried `make release` so it doesn't impact me. (Yet.)
I, too, have never really tried `make release`. When I did so -- in the
same sandbox where I had just configured and built -- I did '''not''' get
good results:
{{{
$ make release
[ -d parrot-1.3.0-devel ] || /usr/local/bin/perl -MExtUtils::Command -e cp
. parrot-1.3.0-devel
mv MANIFEST MANIFEST.real
grep -v DEVELOPING MANIFEST.real > MANIFEST
/usr/local/bin/perl -lane
'print"parrot-1.3.0-devel/$F[0]"unless!length||/#/' MANIFEST | \
tar -zcv -T - -f parrot-1.3.0-devel.tar.gz
tar: parrot-1.3.0-devel/CREDITS: Cannot stat: Not a directory
tar: parrot-1.3.0-devel/ChangeLog: Cannot stat: Not a directory
tar: parrot-1.3.0-devel/Configure.pl: Cannot stat: Not a directory
...
}}}
Now, it's quite likely I'm not calling `make release` correctly. But, in
any event, I wouldn't advise immediately applying my patch, if only
because we're having a lot of discussion now about `make install` issues
and I don't know where this problem/patch fit into that.
kid51
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/799#comment:4>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets