Opened 10 years ago

Closed 10 years ago

#13344 closed defect (fixed)

on CYGWIN, Singular LIB files get copied to SAGELOCAL/lib

Reported by: Dima Pasechnik Owned by: tbd
Priority: major Milestone: sage-5.4
Component: porting: Cygwin Keywords:
Cc: Jean-Pierre Flori, Alexander Dreyer Merged in: sage-5.4.beta0
Authors: Jean-Pierre Flori, Alexander Dreyer, Jeroen Demeyer Reviewers: Dmitrii Pasechnik, Jean-Pierre Flori
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #13237 Stopgaps:

Status badges

Description

On CYGWIN, the Singular LIB files, i.e. files with code in Singular language, normally installed to SAGELOCAL/share/singular/, also get copied to SAGELOCAL/lib/. This, apart from being plainly wrong, is breaking the installation of pyOpenSSL, as mentioned in comments on #13339.

Change History (25)

comment:1 Changed 10 years ago by Dima Pasechnik

Cc: jpfiori added

comment:2 Changed 10 years ago by Dima Pasechnik

Cc: Jean-Pierre Flori added; jpfiori removed

comment:3 Changed 10 years ago by Jean-Pierre Flori

I agree that's wrong. did you check that everything was ok on a Linux install? I won't have any at hand before tomorrow.

Quite strangely my install log says:

./mkinstalldirs /home/jp/sage-5.2/local/share/singular
mkdir /home/jp/sage-5.2/local/share/singular
for file in `pwd`/LIB/*.lib; do \
  /usr/bin/install -c -m 644  $file /home/jp/sage-5.2/local/share/singular; \
done

while make install-nolns in Singular And then

./mkinstalldirs /home/jp/sage-5.2/local/LIB
for file in `pwd`/LIB/*.lib; do \
  /usr/bin/install -c -m 644  $file /home/jp/sage-5.2/local/LIB; \
done

while make install-libsingular in Singular.

I guess some Makefile is broken for Cygwin as in #12089.

comment:4 in reply to:  3 Changed 10 years ago by Dima Pasechnik

Replying to jpflori:

I agree that's wrong. did you check that everything was ok on a Linux install?

It's OK on MacOSX and on Linux.

comment:5 Changed 10 years ago by Jean-Pierre Flori

Could you post the install logs here please? I should have a Linux install in a few minutes, but that could be useful.

comment:6 Changed 10 years ago by Jean-Pierre Flori

The problem should be that we call

$MAKE slibdir="$SAGE_LOCAL/share/singular" install-nolns

but

$MAKE install-libsingular

although that does not explain the discrepancy between Cygwin and other systems.

comment:7 in reply to:  5 ; Changed 10 years ago by Dima Pasechnik

Replying to jpflori:

Could you post the install logs here please? I should have a Linux install in a few minutes, but that could be useful.

here is a log of Linux install:

http://boxen.math.washington.edu/home/dima/tmp/singular-3-1-3-3.p6.log

comment:8 Changed 10 years ago by Jean-Pierre Flori

And maybe make install-nolns is rerun as a dependency of make install-libsingular on Cygwin, but not on the other systems where it may be considered uptodate?

comment:9 in reply to:  7 Changed 10 years ago by Dima Pasechnik

Replying to dimpase:

Replying to jpflori:

Could you post the install logs here please? I should have a Linux install in a few minutes, but that could be useful.

here is a log of Linux install:

http://boxen.math.washington.edu/home/dima/tmp/singular-3-1-3-3.p6.log

and from my (unfinished, but completed for Singular) Cygwin install: http://boxen.math.washington.edu/home/dima/tmp/singular-3-1-5.p1.log

comment:10 Changed 10 years ago by Jean-Pierre Flori

Indeed, you only have:

g++ -shared -shared -o libsingular.so \
	iparith.o mpsr_Tok.o claptmpl.o \
	grammar.o scanner.o attrib.o blackbox.o eigenval_ip.o extra.o fehelp.o feOpt.o ipassign.o ipconv.o ipid.o iplib.o ipprint.o ipshell.o newstruct.o lists.o sdb.o fglm.o interpolation.o silink.o ssiLink.o subexpr.o janet.o wrapper.o libparse.o sing_win.o gms.o pcv.o maps_ip.o walk.o walk_ip.o cntrlc.o misc_ip.o calcSVD.o pipeLink.o Minor.o MinorProcessor.o MinorInterface.o bigintm.o pyobject_setup.o bbcone.o bbfan.o denom_list.o minpoly.o  slInit_Dynamic.o -lkernel -L../kernel -L../factory -L../libfac -L/usr/local/src/sage/sage-5.2/local/lib -lsingfac -lsingcf -lntl -lreadline -lgmp -lomalloc
./mkinstalldirs /usr/local/src/sage/sage-5.2/local/include/singular
for file in *.so; do \
	  /usr/bin/install -c  $file /usr/local/src/sage/sage-5.2/local/lib; \
	done

but that's an old spkg, I'd like to also check the later ones (I could also look into the old spkg sources but i'm lazy).

Your Cygwin log is similar to mine.

comment:11 in reply to:  10 ; Changed 10 years ago by Dima Pasechnik

Replying to jpflori:

Indeed, you only have:

g++ -shared -shared -o libsingular.so \
	iparith.o mpsr_Tok.o claptmpl.o \
	grammar.o scanner.o attrib.o blackbox.o eigenval_ip.o extra.o fehelp.o feOpt.o ipassign.o ipconv.o ipid.o iplib.o ipprint.o ipshell.o newstruct.o lists.o sdb.o fglm.o interpolation.o silink.o ssiLink.o subexpr.o janet.o wrapper.o libparse.o sing_win.o gms.o pcv.o maps_ip.o walk.o walk_ip.o cntrlc.o misc_ip.o calcSVD.o pipeLink.o Minor.o MinorProcessor.o MinorInterface.o bigintm.o pyobject_setup.o bbcone.o bbfan.o denom_list.o minpoly.o  slInit_Dynamic.o -lkernel -L../kernel -L../factory -L../libfac -L/usr/local/src/sage/sage-5.2/local/lib -lsingfac -lsingcf -lntl -lreadline -lgmp -lomalloc
./mkinstalldirs /usr/local/src/sage/sage-5.2/local/include/singular
for file in *.so; do \
	  /usr/bin/install -c  $file /usr/local/src/sage/sage-5.2/local/lib; \
	done

but that's an old spkg, I'd like to also check the later ones (I could also look into the old spkg sources but i'm lazy).

I'm currently building your 3-1-5.p1 on MacOSX. I'll see what I get soon, and post the log, too.

Your Cygwin log is similar to mine.

comment:12 in reply to:  11 Changed 10 years ago by Dima Pasechnik

Replying to dimpase:

I'm currently building your 3-1-5.p1 on MacOSX. I'll see what I get soon, and post the log, too.

the problem is reproducible on MacOSX, too. I got all these singular's lib-files in SAGELOCAL/lib, too

http://boxen.math.washington.edu/home/dima/tmp/singular-3-1-5.p1.macosx.log

comment:13 Changed 10 years ago by Alexander Dreyer

Cc: Alexander Dreyer added

I checked the Makefile sources. Indeed, $MAKE install-libsingular shares a dependency of $MAKE install-nolns. Whether it will be rebuilt or not might depend on the actual make implementation, so I'll recommend to add slibdir="$SAGE_LOCAL/share/singular" to all calls of make. (Unfortunately slibdir is not a configurable variable.) Perhaps we should add it to $MAKE?

comment:14 Changed 10 years ago by Jean-Pierre Flori

Adding slibdir to the second make invocation would please me.

Adding it to MAKE seems a little bit invasive to me, although it might be the only sensible way to be sure that the share dir is correctly set when make is used (for Singular, but imagine we also happen to use make for something else... ok that's exagerated)

Too bad there is no configure option to set slibdir, maybe this is worth an upstream fix? I see that a bunch of other directories can be tweaked at configure time.

comment:15 in reply to:  14 ; Changed 10 years ago by Alexander Dreyer

Replying to jpflori:

Adding slibdir to the second make invocation would please me.

Adding it to MAKE seems a little bit invasive to me, although it might be the only sensible way to be sure that the share dir is correctly set when make is used (for Singular, but imagine we also happen to use make for something else... ok that's exagerated)

Ok course, I intended to changes this locally in the spkg's spkg-install only. If you're sure that this is enough than it's better to do it (even more locally ;-) ) in the second invocation only.

Too bad there is no configure option to set slibdir, maybe this is worth an upstream fix? I see that a bunch of other directories can be tweaked at configure time.

There is an ongoing rewrite of the building system, so this will be done anyway. (Don't beat me for a schedule, Singular refactors many things currently.)

comment:16 in reply to:  15 Changed 10 years ago by Jean-Pierre Flori

Ok course, I intended to changes this locally in the spkg's spkg-install only. If you're sure that this is enough than it's better to do it (even more locally ;-) ) in the second invocation only.

Yeah I understood you wanted to do it locally, and I indeed would prefer to keep it as local as possible.

There is an ongoing rewrite of the building system, so this will be done anyway. (Don't beat me for a schedule, Singular refactors many things currently.)

Great, good luck.

comment:17 Changed 10 years ago by Jean-Pierre Flori

I can confirm that on Linux I get an horrible LIB directory plenty of lib files :)

comment:18 Changed 10 years ago by Jeroen Demeyer

This should be fixed by #13237. This ticket still needs_review for the fact that #13237 fixes it.

comment:19 Changed 10 years ago by Jeroen Demeyer

Status: newneeds_review

comment:20 in reply to:  19 Changed 10 years ago by Dima Pasechnik

Replying to jdemeyer: I can confirm that #13237 fixes the issue on MacOSX 10.6.8.

comment:21 Changed 10 years ago by Jean-Pierre Flori

The updated spkg installs cleanly on my Linux and Cywgin install as well.

comment:22 Changed 10 years ago by Jean-Pierre Flori

Authors: Jean-Pierre Flori, Alexander Dreyer, Jeroen Demeyer
Reviewers: Dmitrii Pasechnik, Jean-Pierre Flori
Status: needs_reviewpositive_review

And I'm happy with the changes in the spkg related to this ticket.

comment:23 Changed 10 years ago by Jeroen Demeyer

Dependencies: #13237
Milestone: sage-5.3sage-pending

comment:24 Changed 10 years ago by Jeroen Demeyer

Milestone: sage-pendingsage-5.4

comment:25 Changed 10 years ago by Jeroen Demeyer

Merged in: sage-5.4.beta0
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.