Opened 7 years ago

Closed 7 years ago

#13344 closed defect (fixed)

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

Reported by: dimpase Owned by: tbd
Priority: major Milestone: sage-5.4
Component: porting: Cygwin Keywords:
Cc: jpflori, AlexanderDreyer 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:

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 7 years ago by dimpase

  • Cc jpfiori added

comment:2 Changed 7 years ago by dimpase

  • Cc jpflori added; jpfiori removed

comment:3 follow-up: Changed 7 years ago by jpflori

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 7 years ago by dimpase

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 follow-up: Changed 7 years ago by jpflori

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 7 years ago by jpflori

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 ; follow-up: Changed 7 years ago by 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

comment:8 Changed 7 years ago by jpflori

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 7 years ago by dimpase

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 follow-up: Changed 7 years ago by 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).

Your Cygwin log is similar to mine.

comment:11 in reply to: ↑ 10 ; follow-up: Changed 7 years ago by dimpase

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 7 years ago by dimpase

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 7 years ago by AlexanderDreyer

  • Cc AlexanderDreyer 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 follow-up: Changed 7 years ago by 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)

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 ; follow-up: Changed 7 years ago by AlexanderDreyer

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 7 years ago by jpflori

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 7 years ago by jpflori

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

comment:18 Changed 7 years ago by jdemeyer

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

comment:19 follow-up: Changed 7 years ago by jdemeyer

  • Status changed from new to needs_review

comment:20 in reply to: ↑ 19 Changed 7 years ago by dimpase

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

comment:21 Changed 7 years ago by jpflori

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

comment:22 Changed 7 years ago by jpflori

  • Authors set to Jean-Pierre Flori, Alexander Dreyer, Jeroen Demeyer
  • Reviewers set to Dmitrii Pasechnik, Jean-Pierre Flori
  • Status changed from needs_review to positive_review

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

comment:23 Changed 7 years ago by jdemeyer

  • Dependencies set to #13237
  • Milestone changed from sage-5.3 to sage-pending

comment:24 Changed 7 years ago by jdemeyer

  • Milestone changed from sage-pending to sage-5.4

comment:25 Changed 7 years ago by jdemeyer

  • Merged in set to sage-5.4.beta0
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.