Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#45739 closed submission (fixed)

submission: reduce

Reported by: mbrethen Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: petrrr, mf2k (Frank Schima)
Port: reduce

Description (last modified by ryandesign (Ryan Schmidt))

A new metaport has been created for reduce, a computer algebra system (CAS). It comprises the following sub-ports:

  • reduce-common: Installs the files that are independent of the Lisp system used.
  • reduce-csl: Installs the Codemist Standard Lisp version of REDUCE.
  • reduce-psl: Installs the Portable Standard Lisp version of REDUCE.
  • reduce-addons: Useful addons for the REDUCE Computer Algebra System.

Issuing 'port install reduce' will install all four sub-ports. Otherwise, the user may install each sub-port as desired.

Note 1: A separate ticket will be issued to make the reduce-algebra port obsolete.

Note 2: This port uses svn for fetch since: 1)I work directly with developers to fix bugs on darwin platform and 2) Binary distributions are not released frequently (the last one was for snow-leopard).

Note 3: This submission addresses the following open tickets: #45299, #39483, #34895, #32973, #32648, #32595 and #32583

Attachments (5)

src-redline.c.diff (1.5 KB) - added by mbrethen 5 years ago.
runcsl.in (54 bytes) - added by mbrethen 5 years ago.
runpsl.in (219 bytes) - added by mbrethen 5 years ago.
reduce-csl.main.log (534.1 KB) - added by mf2k (Frank Schima) 5 years ago.
Portfile (15.2 KB) - added by mbrethen 4 years ago.

Download all attachments as: .zip

Change History (30)

Changed 5 years ago by mbrethen

Attachment: src-redline.c.diff added

Changed 5 years ago by mbrethen

Attachment: runcsl.in added

Changed 5 years ago by mbrethen

Attachment: runpsl.in added

comment:1 Changed 5 years ago by mf2k (Frank Schima)

Keywords: maintainer removed
Port: reduce-algebra removed
Summary: submission: reduce: new port submissionsubmission: reduce
Version: 2.3.2

comment:2 Changed 5 years ago by petrrr

Cc: petr@… added

Cc Me!

comment:3 Changed 5 years ago by mf2k (Frank Schima)

This looks pretty good. But what is the "BINARY" license? No other port has it and I have never heard of it. Ultimately this port is not distributable via Macports because of that.

comment:4 Changed 5 years ago by mf2k (Frank Schima)

Cc: mf2k@… added

Cc Me!

comment:5 Changed 5 years ago by mf2k (Frank Schima)

I see this error building reduce-csl:

--->  Staging reduce-csl into destroot
Error: Failed to destroot reduce-csl: xinstall: Cannot stat: reduce, No such file or directory

Changed 5 years ago by mf2k (Frank Schima)

Attachment: reduce-csl.main.log added

comment:6 in reply to:  3 Changed 4 years ago by mbrethen

Replying to mf2k@…:

This looks pretty good. But what is the "BINARY" license? No other port has it and I have never heard of it. Ultimately this port is not distributable via Macports because of that.

The BINARY license applies to the reduce binaries (not source) that can be downloaded from sourceforge. I have removed this from the Portfile since it is irrelevent.

Last edited 4 years ago by mbrethen (previous) (diff)

comment:7 Changed 4 years ago by mbrethen

texlive-htmlxml is required to build the reduce documentation. Texlive-bin provides the necessary symlinks to mk4ht and htlatex scripts. It was recently fixed(see Ticket #49287).

Last edited 4 years ago by mbrethen (previous) (diff)

comment:8 in reply to:  5 Changed 4 years ago by mbrethen

Replying to mf2k@…:

I see this error building reduce-csl:

--->  Staging reduce-csl into destroot
Error: Failed to destroot reduce-csl: xinstall: Cannot stat: reduce, No such file or directory

The log file isn't real specific and I have not been able to reproduce this error. I have installed it on Mavericks and, more recently, Yosemite.

Last edited 4 years ago by mbrethen (previous) (diff)

comment:9 Changed 4 years ago by ryandesign (Ryan Schmidt)

Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

Is the version correct? This port build svn revision 2744 of the upstream project, which was committed on 2014-10-22, but the version in the portfile says 20101217.

Is autoconf really a library dependency? Usually autoconf is only used at build time.

There's a comment in the portfile that reads "Keep the CSL version of Reduce and PSL in sync." I'm not sure what's meant by this—what specific action one is supposed to take—since, as far as I can see, there is to be only this one single reduce portfile, and it only has a single version line and a single svn.revision line.

comment:10 in reply to:  9 ; Changed 4 years ago by mbrethen

Replying to ryandesign@…:

Is the version correct? This port build svn revision 2744 of the upstream project, which was committed on 2014-10-22, but the version in the portfile says 20101217.


According to their source, they don't use a version numbering system, rather a date. Take a look at their binaries: http://sourceforge.net/projects/reduce-algebra/files/

Is autoconf really a library dependency? Usually autoconf is only used at build time.


It's listed in their README.BUILDING file.

There's a comment in the portfile that reads "Keep the CSL version of Reduce and PSL in sync." I'm not sure what's meant by this—what specific action one is supposed to take—since, as far as I can see, there is to be only this one single reduce portfile, and it only has a single version line and a single svn.revision line.


That just means I'm building both flavors of reduce from the same svn version. It can be removed if you feel it's not necessary.

Last edited 4 years ago by mbrethen (previous) (diff)

comment:11 in reply to:  10 ; Changed 4 years ago by ryandesign (Ryan Schmidt)

Replying to mark.brethen@…:

Replying to ryandesign@…:

Is the version correct? This port build svn revision 2744 of the upstream project, which was committed on 2014-10-22, but the version in the portfile says 20101217.

According to their source, they don't use a version numbering system, rather a date. Take a look at their binaries: http://sourceforge.net/projects/reduce-algebra/files/

Right. So if the revision you're proposing to build with this port was modified on 2014-10-22, shouldn't the port's advertised version be 20141022, not 20101217?

Is autoconf really a library dependency? Usually autoconf is only used at build time.

It's listed in their README.BUILDING file.

Right. So if autoconf is used for building, shouldn't it be in depends_build, not depends_lib?

There's a comment in the portfile that reads "Keep the CSL version of Reduce and PSL in sync." I'm not sure what's meant by this—what specific action one is supposed to take—since, as far as I can see, there is to be only this one single reduce portfile, and it only has a single version line and a single svn.revision line.

That just means I'm building both flavors of reduce from the same svn version. It can be removed if you feel it's not necessary.

Do you feel it's necessary? What action is this comment reminding you to perform? If none, then I would suggest removing the comment.

comment:12 in reply to:  11 ; Changed 4 years ago by mbrethen

Replying to ryandesign@…:

Replying to mark.brethen@…:

Replying to ryandesign@…:

Is the version correct? This port build svn revision 2744 of the upstream project, which was committed on 2014-10-22, but the version in the portfile says 20101217.

According to their source, they don't use a version numbering system, rather a date. Take a look at their binaries: http://sourceforge.net/projects/reduce-algebra/files/

Right. So if the revision you're proposing to build with this port was modified on 2014-10-22, shouldn't the port's advertised version be 20141022, not 20101217?

I didn't think of it that way, rather the svn modifying the date of the last binary release date. Anyway I've changed the port to reflect the port date.

Is autoconf really a library dependency? Usually autoconf is only used at build time.

It's listed in their README.BUILDING file.

Right. So if autoconf is used for building, shouldn't it be in depends_build, not depends_lib?

Also fixed this.

There's a comment in the portfile that reads "Keep the CSL version of Reduce and PSL in sync." I'm not sure what's meant by this—what specific action one is supposed to take—since, as far as I can see, there is to be only this one single reduce portfile, and it only has a single version line and a single svn.revision line.

That just means I'm building both flavors of reduce from the same svn version. It can be removed if you feel it's not necessary.

Do you feel it's necessary? What action is this comment reminding you to perform? If none, then I would suggest removing the comment.

Removed comment.

I added a comment about previous versions of Texlive breaking reduce-common.

Last edited 4 years ago by mbrethen (previous) (diff)

Changed 4 years ago by mbrethen

Attachment: Portfile added

comment:13 Changed 4 years ago by mbrethen

Replaced "eval ... [glob ...]" with "... {*}[glob ...]".

$ port lint reduce
--->  Verifying Portfile for reduce
--->  0 errors and 0 warnings found.

comment:14 in reply to:  12 Changed 4 years ago by ryandesign (Ryan Schmidt)

reduce-csl failed to build:

Makefile:4249: TRACE: ../include/crlibm.h :: 
Makefile:584: .deps/asincos.Po: No such file or directory
Makefile:585: .deps/atan_accurate.Po: No such file or directory
Makefile:586: .deps/atan_fast.Po: No such file or directory
Makefile:587: .deps/crlibm_private.Po: No such file or directory
Makefile:588: .deps/csh_fast.Po: No such file or directory
Makefile:589: .deps/exp-td-standalone.Po: No such file or directory
Makefile:590: .deps/exp-td.Po: No such file or directory
Makefile:591: .deps/expm1-standalone.Po: No such file or directory
Makefile:592: .deps/expm1.Po: No such file or directory
Makefile:593: .deps/log-de.Po: No such file or directory
Makefile:594: .deps/log.Po: No such file or directory
Makefile:595: .deps/log10-td.Po: No such file or directory
Makefile:596: .deps/log1p.Po: No such file or directory
Makefile:597: .deps/log2-td.Po: No such file or directory
Makefile:598: .deps/pow.Po: No such file or directory
Makefile:599: .deps/rem_pio2_accurate.Po: No such file or directory
Makefile:600: .deps/trigo_accurate.Po: No such file or directory
Makefile:601: .deps/trigo_fast.Po: No such file or directory
Makefile:602: .deps/trigpi.Po: No such file or directory
Makefile:603: .deps/triple-double.Po: No such file or directory
make[4]: *** No rule to make target `.deps/triple-double.Po'.  Stop.
make[3]: *** [../include/crlibm.h] Error 2
make[2]: *** [all] Error 2
make[1]: *** [all] Error 2
Building failed with return code 2 for version cslbuild/x86_64-mac_unknown_version-darwin15.0.0
make: *** [all] Error 2

Could we use the 2014-11-30 source tarball snapshot available on sourceforge instead of fetching from svn? It would make re-testing this later so much faster. Fetching 500 MB from a Subversion repository every time I rebuild is very slow.

comment:15 Changed 4 years ago by mbrethen

Are you on Yosemite or El Capitan?

comment:16 Changed 4 years ago by ryandesign (Ryan Schmidt)

El Capitan, 10.11.1.

comment:17 Changed 4 years ago by mbrethen

I suppose we could use the tarball but I don't have a machine with el capitan installed. The svn portions in the portfile will have to be stripped and each stub will download the tarball each time, won't it?

comment:18 Changed 4 years ago by ryandesign (Ryan Schmidt)

If you specify a file in the distfiles variable, like most ports do, then the file is downloaded only once and cached on the client, not to mention that we can automatically mirror it on our mirror servers.

I think the build failure is probably not specific to El Capitan, but rather specific to having the nawk port installed. I've been testing for configure failures in other ports due to nawk. There are many errors in the log like this:

config.status: creating config.h
nawk: illegal statement
 input record number 1, file /opt/local/var/macports/build/_Users_rschmidt_macports_dports_math_reduce/reduce-csl/work/trunk/csl/cslbase/config.h.in
 source line number 135
config.status: error: could not create config.h

I would want to patch the configure script to change the line

for ac_prog in gawk mawk nawk awk

to

for ac_prog in gawk mawk awk

like I've been doing in many other ports today.

comment:19 Changed 4 years ago by mbrethen

Should I wait until further instructions?

comment:20 Changed 4 years ago by mbrethen

I'm seeing build errors for reduce-common using the tar.bz2 source. Also I don't have access to the worksource directory. And when I do a "Get Info" on it, only Macports has read/write privilege. What gives?

comment:21 Changed 4 years ago by ryandesign (Ryan Schmidt)

Ok, for now I'll continue to use the svn-based Portfile you attached here. Assuming it'll build without nawk installed, or with the nawk-avoidance patch added, I'll commit it. Later we can look into upgrading to the latest tarball-based snapshot.

comment:22 Changed 4 years ago by mbrethen

Why do I not have read permission on the worksource directory? This is unusual, I can't even sudo cd to it?

comment:23 Changed 4 years ago by ryandesign (Ryan Schmidt)

Their tarball might have been created to do that.

comment:24 Changed 4 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: assignedclosed

comment:25 Changed 4 years ago by mbrethen

Okay, it looks like they added a build dependency on dvipng, which was causing reduce-common to fail at destroot because the *.png files were nonexistent.

Note: See TracTickets for help on using tickets.