Opened 6 years ago

Closed 6 years ago

#20525 closed defect (fixed)

gap_packages badly broken

Reported by: vdelecroix Owned by:
Priority: blocker Milestone: sage-7.2
Component: packages: optional Keywords:
Cc: vbraun, dimpase Merged in:
Authors: Dima Pasechnik Reviewers: Jeroen Demeyer
Report Upstream: N/A Work issues:
Branch: 9afe2c3 (Commits, GitHub, GitLab) Commit: 9afe2c3e4b7ebd82729d21439d684dbc0fdc5731
Dependencies: Stopgaps:

Status badges

Description (last modified by jdemeyer)

With Sage 7.2.beta6 with gap_packages installed, within a sage --gap session:

gap> LoadPackage("HAPcryst");
#I  polymake command not found. Please set POLYMAKE_COMMAND by hand
----------------------------------------------------------------
Loading  polymaking 0.8.1
(A package for using polymake in GAP)
by Marc Roeder
----------------------------------------------------------------
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  Cryst 4.1.12 (Computing with crystallographic groups)
by Bettina Eick (http://www.icm.tu-bs.de/~beick/),
   Franz Gähler (http://www.math.uni-bielefeld.de/~gaehler/), and
   Werner Nickel (http://www.mathematik.tu-darmstadt.de/~nickel/).
Homepage: http://www.math.uni-bielefeld.de/~gaehler/gap45/packages.php
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  CrystCat 1.1.6 (The crystallographic groups catalog)
by Volkmar Felsch (http://www.math.rwth-aachen.de/~Volkmar.Felsch/) and
   Franz Gähler (http://www.math.uni-bielefeld.de/~gaehler/).
Homepage: http://www.math.uni-bielefeld.de/~gaehler/gap45/packages.php
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  AClib 1.2 (Almost Crystallographic Groups - A Library and Algorithms)
by Karel Dekimpe (http://www.kulak.ac.be/~dekimpe) and
   Bettina Eick (http://www.icm.tu-bs.de/~beick).
Homepage: http://www.icm.tu-bs.de/~beick/so.html
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#I  HAP warning: Set POLYMAKE_PATH manually if needed. 
#I  HAP warning: Set NEATO_PATH manually if needed.
#I  HAP warning: Set DISPLAY_PATH manually if needed.
Error, <opr> is not an operation called from
<compiled or corrupted statement>  called from
<function "local function">( <arguments> )
 called from read-eval loop at line 162 of /usr/local/src/sage-git/local/gap/latest/pkg/Hap1.11/lib/HapCocyclic/gap/ccgroup.gi
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue

A second issue is a mis-installation of guava:

gap> DirectoriesPackagePrograms("guava")[1];
dir("/usr/local/src/sage-git/local/gap/latest/pkg/guava-3.13/bin/x86_64-unknown-linux-gnu-gcc-default64/")

but this directory does not exist, bin is missing below:

$ ls -l /usr/local/src/sage-git/local/gap/latest/pkg/guava-3.13
total 168
-rw-r--r-- 1 jdemeyer jdemeyer 11775 Mar 19 23:17 CHANGES.guava
-rwxr-xr-x 1 jdemeyer jdemeyer  1918 Mar 19 23:17 configure
-rw-r--r-- 1 jdemeyer jdemeyer 51189 Mar 19 23:17 COPYING.guava
drwxr-xr-x 2 jdemeyer jdemeyer  4096 Mar 30 00:32 doc
-rw-r--r-- 1 jdemeyer jdemeyer   368 Mar 19 23:17 gapdoc.g
-rw-r--r-- 1 jdemeyer jdemeyer  2059 Mar 19 23:17 HISTORY.guava
-rw-r--r-- 1 jdemeyer jdemeyer  1364 Mar 19 23:17 init.g
drwxr-xr-x 2 jdemeyer jdemeyer  4096 Mar 30 00:32 lib
-rw-r--r-- 1 jdemeyer jdemeyer 35120 Mar 19 23:17 LICENSE
-rw-r--r-- 1 jdemeyer jdemeyer  2858 Mar 19 23:17 Makefile.in
-rw-r--r-- 1 jdemeyer jdemeyer 11638 Mar 19 23:17 PackageInfo.g
-rw-r--r-- 1 jdemeyer jdemeyer  1420 Mar 19 23:17 read.g
-rw-r--r-- 1 jdemeyer jdemeyer  4882 Mar 19 23:17 README.guava
-rw-r--r-- 1 jdemeyer jdemeyer    98 Mar 19 23:17 README.md
drwxr-xr-x 4 jdemeyer jdemeyer  4096 Mar 30 00:32 src
drwxr-xr-x 2 jdemeyer jdemeyer  4096 Mar 30 00:32 tbl
drwxr-xr-x 2 jdemeyer jdemeyer  4096 Mar 30 00:32 tst

This causes doctest failures:

sage -t --long src/sage/tests/gap_packages.py
**********************************************************************
File "src/sage/tests/gap_packages.py", line 8, in sage.tests.gap_packages
Failed example:
    test_packages(pkgs, only_failures=True)    # optional - gap_packages
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.gap_packages[2]>", line 1, in <module>
        test_packages(pkgs, only_failures=True)    # optional - gap_packages
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/tests/gap_packages.py", line 77, in test_packages
        output = libgap.eval('LoadPackage("{0}")'.format(pkg))
      File "sage/libs/gap/libgap.pyx", line 431, in sage.libs.gap.libgap.Gap.eval (build/cythonized/sage/libs/gap/libgap.c:4183)
        return make_any_gap_element(self, gap_eval(gap_command))
      File "sage/libs/gap/util.pyx", line 288, in sage.libs.gap.util.gap_eval (build/cythonized/sage/libs/gap/util.c:4947)
        raise ValueError('libGAP: '+str(msg).strip())
    ValueError: libGAP: Error, <opr> is not an operation
**********************************************************************
File "src/sage/tests/gap_packages.py", line 47, in sage.tests.gap_packages.test_packages
Failed example:
    test_packages(['GAPDoc'])
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.gap_packages.test_packages[1]>", line 1, in <module>
        test_packages(['GAPDoc'])
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/tests/gap_packages.py", line 77, in test_packages
        output = libgap.eval('LoadPackage("{0}")'.format(pkg))
      File "sage/libs/gap/libgap.pyx", line 431, in sage.libs.gap.libgap.Gap.eval (build/cythonized/sage/libs/gap/libgap.c:4183)
        return make_any_gap_element(self, gap_eval(gap_command))
      File "sage/libs/gap/util.pyx", line 288, in sage.libs.gap.util.gap_eval (build/cythonized/sage/libs/gap/util.c:4947)
        raise ValueError('libGAP: '+str(msg).strip())
    ValueError: libGAP: 
**********************************************************************
File "src/sage/tests/gap_packages.py", line 54, in sage.tests.gap_packages.test_packages
Failed example:
    pkgs = all_installed_packages()
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.gap_packages.test_packages[2]>", line 1, in <module>
        pkgs = all_installed_packages()
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/tests/gap_packages.py", line 109, in all_installed_packages
        for path in libgap.eval('GAP_ROOT_PATHS').sage():
      File "sage/libs/gap/libgap.pyx", line 431, in sage.libs.gap.libgap.Gap.eval (build/cythonized/sage/libs/gap/libgap.c:4183)
        return make_any_gap_element(self, gap_eval(gap_command))
      File "sage/libs/gap/util.pyx", line 288, in sage.libs.gap.util.gap_eval (build/cythonized/sage/libs/gap/util.c:4947)
        raise ValueError('libGAP: '+str(msg).strip())
    ValueError: libGAP: 
**********************************************************************
File "src/sage/tests/gap_packages.py", line 55, in sage.tests.gap_packages.test_packages
Failed example:
    test_packages(pkgs)    # random output
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.gap_packages.test_packages[3]>", line 1, in <module>
        test_packages(pkgs)    # random output
    NameError: name 'pkgs' is not defined
**********************************************************************
File "src/sage/tests/gap_packages.py", line 105, in sage.tests.gap_packages.all_installed_packages
Failed example:
    all_installed_packages()
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.gap_packages.all_installed_packages[1]>", line 1, in <module>
        all_installed_packages()
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/tests/gap_packages.py", line 109, in all_installed_packages
        for path in libgap.eval('GAP_ROOT_PATHS').sage():
      File "sage/libs/gap/libgap.pyx", line 431, in sage.libs.gap.libgap.Gap.eval (build/cythonized/sage/libs/gap/libgap.c:4183)
        return make_any_gap_element(self, gap_eval(gap_command))
      File "sage/libs/gap/util.pyx", line 288, in sage.libs.gap.util.gap_eval (build/cythonized/sage/libs/gap/util.c:4947)
        raise ValueError('libGAP: '+str(msg).strip())
    ValueError: libGAP: 
**********************************************************************
3 items had failures:
   1 of   4 in sage.tests.gap_packages
   1 of   3 in sage.tests.gap_packages.all_installed_packages
   3 of   5 in sage.tests.gap_packages.test_packages
    [9 tests, 5 failures, 4.49 s]
sage -t --long src/sage/coding/linear_code.py
**********************************************************************
File "src/sage/coding/linear_code.py", line 3284, in sage.coding.linear_code.AbstractLinearCode.spectrum
Failed example:
    C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.coding.linear_code.AbstractLinearCode.spectrum[8]>", line 1, in <module>
        C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/coding/linear_code.py", line 3328, in spectrum
        lines = subprocess.check_output([os.path.join(guava_bin_dir, 'wtdist'), input])
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 566, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 710, in __init__
        errread, errwrite)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 1335, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
**********************************************************************
File "src/sage/coding/linear_code.py", line 3292, in sage.coding.linear_code.AbstractLinearCode.spectrum
Failed example:
    C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.coding.linear_code.AbstractLinearCode.spectrum[12]>", line 1, in <module>
        C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/coding/linear_code.py", line 3328, in spectrum
        lines = subprocess.check_output([os.path.join(guava_bin_dir, 'wtdist'), input])
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 566, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 710, in __init__
        errread, errwrite)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 1335, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
**********************************************************************
File "src/sage/coding/linear_code.py", line 3296, in sage.coding.linear_code.AbstractLinearCode.spectrum
Failed example:
    C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.coding.linear_code.AbstractLinearCode.spectrum[14]>", line 1, in <module>
        C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/coding/linear_code.py", line 3328, in spectrum
        lines = subprocess.check_output([os.path.join(guava_bin_dir, 'wtdist'), input])
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 566, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 710, in __init__
        errread, errwrite)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 1335, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
**********************************************************************
File "src/sage/coding/linear_code.py", line 3300, in sage.coding.linear_code.AbstractLinearCode.spectrum
Failed example:
    C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 496, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 858, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.coding.linear_code.AbstractLinearCode.spectrum[16]>", line 1, in <module>
        C.spectrum() == C.spectrum(algorithm="leon")   # optional - gap_packages (Guava package)
      File "/usr/local/src/sage-git/local/lib/python2.7/site-packages/sage/coding/linear_code.py", line 3328, in spectrum
        lines = subprocess.check_output([os.path.join(guava_bin_dir, 'wtdist'), input])
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 566, in check_output
        process = Popen(stdout=PIPE, *popenargs, **kwargs)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 710, in __init__
        errread, errwrite)
      File "/usr/local/src/sage-git/local/lib/python/subprocess.py", line 1335, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
**********************************************************************
1 item had failures:
   4 of  18 in sage.coding.linear_code.AbstractLinearCode.spectrum
    [634 tests, 4 failures, 26.04 s]
----------------------------------------------------------------------
sage -t --long src/sage/tests/gap_packages.py  # 5 doctests failed
sage -t --long src/sage/coding/linear_code.py  # 4 doctests failed
----------------------------------------------------------------------

Attachments (1)

failing_doctests-librae.log (13.0 KB) - added by vdelecroix 6 years ago.

Download all attachments as: .zip

Change History (75)

Changed 6 years ago by vdelecroix

comment:1 Changed 6 years ago by vdelecroix

  • Description modified (diff)

comment:2 Changed 6 years ago by jdemeyer

Are you sure that #20182 has anything to do with this? It seems to me that something broke gap_packages.

comment:3 follow-up: Changed 6 years ago by vdelecroix

Reformulation: this was not visible before #20182.

comment:4 in reply to: ↑ 3 ; follow-up: Changed 6 years ago by jdemeyer

First of all, what is the exact command that you ran to get those doctest failures?

Replying to vdelecroix:

this was not visible before #20182.

Did you actually check this or are you just guessing? I.e. by applying #20182 on top of 7.2.beta5 or reverting #20182 from 7.2.beta6?

comment:5 in reply to: ↑ 4 Changed 6 years ago by jdemeyer

Replying to jdemeyer:

First of all, what is the exact command that you ran to get those doctest failures?

And did you verify that the same exact command on Sage 7.2.beta5 did not give failures?

comment:6 follow-up: Changed 6 years ago by vdelecroix

The exact command I ran was

for pkg in A_LOT_OF_THINGS
do
    sage -p $pkg
done

sage -patchbot

Note that the failing doctests are optional (precisely # optional - gap_packages). The patchbot did not ran those before #20182.

comment:7 in reply to: ↑ 6 Changed 6 years ago by jdemeyer

First of all, using ./sage -p $pkg to install packages is not at all recommended (use ./sage -i $pkg instead). Second, not running make before starting the patchbot is really wrong.

comment:8 Changed 6 years ago by jdemeyer

Do you know the answer to 5?

comment:9 Changed 6 years ago by jdemeyer

For the record, I can reproduce the problem. I'm just not convinced that #20182 is to blame.

comment:10 Changed 6 years ago by jdemeyer

  • Component changed from documentation to packages: optional
  • Description modified (diff)

comment:11 Changed 6 years ago by klee

  • Component changed from packages: optional to documentation
  • Description modified (diff)

Automatic testing of all installed optional packages was introduced in #18558

comment:12 Changed 6 years ago by jdemeyer

  • Cc vbraun dimpase added
  • Component changed from documentation to packages: optional
  • Description modified (diff)
  • Priority changed from major to blocker
  • Summary changed from failing optional doctests to Failing gap_packages doctests

comment:13 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:14 Changed 6 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from Failing gap_packages doctests to gap_packages badly broken

comment:15 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:16 follow-up: Changed 6 years ago by dimpase

  • Description modified (diff)
  • Summary changed from gap_packages badly broken to Failing gap_packages doctests

these tests work for me. Must be patchbot madness...

comment:17 Changed 6 years ago by jdemeyer

  • Summary changed from Failing gap_packages doctests to gap_packages badly broken

comment:18 in reply to: ↑ 16 Changed 6 years ago by jdemeyer

Replying to dimpase:

these tests work for me.

Not for me.

Must be patchbot madness...

No, this is unrelated to the patchbot.

comment:19 Changed 6 years ago by jdemeyer

  • Description modified (diff)

Please don't revert the changes I make to the ticket :-)

Last edited 6 years ago by jdemeyer (previous) (diff)

comment:20 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:21 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:22 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:23 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:24 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:25 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:26 Changed 6 years ago by jdemeyer

  • Description modified (diff)

comment:27 Changed 6 years ago by dimpase

  • Description modified (diff)

ok: ./spkg-install: line 72: cd: /home/scratch/dimpase/sage/sage/local/gap/latest/pkg/guava-3*: No such file or directory

but why?! This is expansion of cd "$PKG_DIR/guava-3*". And it seems to work:

$ cd /home/scratch/dimpase/sage/sage/local/gap/latest/pkg/guava-3*
clpc171[/home/scratch/dimpase/sage/sage/local/gap/latest/pkg/guava-3.13]$ 

comment:28 Changed 6 years ago by dimpase

  • Branch set to public/20525
  • Commit set to 8860e47d4a417760bcceda638e60e6900660b982

guava issue fix - see the commit


New commits:

8860e47guaba path fix

comment:29 Changed 6 years ago by dimpase

  • Status changed from new to needs_review

I cannot reproduce the HAPcryst thing though. I get

$ sage -t --long src/sage/tests/gap_packages.py
Running doctests with ID 2016-05-02-16-39-21-92780109.
Git branch: gappacs
Using --optional=cbc,csdp,database_gap,gap_packages,mpir,python2,sage
Doctesting 1 file.
sage -t --long --warn-long 56.7 src/sage/tests/gap_packages.py
    [10 tests, 3.75 s]
----------------------------------------------------------------------
All tests passed!

As I get 10 tests run as opposed to 9 above, I probably have more packages installed...

and

$ sage --gap
 ┌───────┐   GAP 4.8.3, 19-Mar-2016, build of 2016-04-06 10:34:11 (BST)
 │  GAP  │   http://www.gap-system.org
 └───────┘   Architecture: x86_64-unknown-linux-gnu-gcc-default64
 Libs used:  gmp, readline
 Loading the library and packages ...
 Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0
 Packages:   Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.6, CTblLib 1.2.2, FactInt 1.5.3, GAPDoc 1.5.1, LAGUNA 3.7.0, 
             Polycyclic 2.11, TomLib 1.2.5
 Try '?help' for help. See also  '?copyright' and  '?authors'
gap> LoadPackage("HAPcryst");
#I  polymake command not found. Please set POLYMAKE_COMMAND by hand
----------------------------------------------------------------
Loading  polymaking 0.8.1
(A package for using polymake in GAP)
by Marc Roeder
----------------------------------------------------------------
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  Cryst 4.1.12 (Computing with crystallographic groups)
by Bettina Eick (http://www.icm.tu-bs.de/~beick/),
   Franz Gähler (http://www.math.uni-bielefeld.de/~gaehler/), and
   Werner Nickel (http://www.mathematik.tu-darmstadt.de/~nickel/).
Homepage: http://www.math.uni-bielefeld.de/~gaehler/gap45/packages.php
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  CrystCat 1.1.6 (The crystallographic groups catalog)
by Volkmar Felsch (http://www.math.rwth-aachen.de/~Volkmar.Felsch/) and
   Franz Gähler (http://www.math.uni-bielefeld.de/~gaehler/).
Homepage: http://www.math.uni-bielefeld.de/~gaehler/gap45/packages.php
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading  AClib 1.2 (Almost Crystallographic Groups - A Library and Algorithms)
by Karel Dekimpe (http://www.kulak.ac.be/~dekimpe) and
   Bettina Eick (http://www.icm.tu-bs.de/~beick).
Homepage: http://www.icm.tu-bs.de/~beick/so.html
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#I  HAP warning: Set POLYMAKE_PATH manually if needed. 
#I  MakeReadOnlyGlobal: GradedAlgebraPresentationType no value bound
Loading HAP 1.11.13 ...
----------------------------------------------------------------
This is HAPcryst version 0.1.11
by Marc Roeder
----------------------------------------------------------------
true
gap> 

looks OK to me.

Last edited 6 years ago by dimpase (previous) (diff)

comment:30 follow-up: Changed 6 years ago by vdelecroix

I guess you have polymake working on your computer?

comment:31 follow-up: Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_work

You need to bump the patchlevel of the gap_packages package to ensure the change has effect.

comment:32 Changed 6 years ago by jdemeyer

Also, you better check the result of that cd operation, for example

cd "$PKG_DIR"/guava-3* && ./configure "$GAP_DIR"

comment:33 Changed 6 years ago by jdemeyer

...or use set -e.

comment:34 in reply to: ↑ 30 Changed 6 years ago by dimpase

Replying to vdelecroix:

I guess you have polymake working on your computer?

no, I don't have polymake at all.

comment:35 in reply to: ↑ 31 ; follow-up: Changed 6 years ago by dimpase

Replying to jdemeyer:

You need to bump the patchlevel of the gap_packages package to ensure the change has effect.

why? the tarball is the same, no removed/added/changed patches. Since when a change to spkg-install does need a version change?!

(this is an optional package, so it won't magically rebuild by bumping anything, no?)

Last edited 6 years ago by dimpase (previous) (diff)

comment:36 Changed 6 years ago by git

  • Commit changed from 8860e47d4a417760bcceda638e60e6900660b982 to ca9607d1f7c8c23404449013317e9bf3bed3686c

Branch pushed to git repo; I updated commit sha1. New commits:

ca9607dcheck 'cd.. *' success

comment:37 in reply to: ↑ 35 ; follow-up: Changed 6 years ago by jdemeyer

Replying to dimpase:

Since when a change to spkg-install does need a version change?!

Since you need to fix broken installations of gap_packages. People who install gap_packages today have a broken version of it. Just changing spkg-install doesn't fix that: you need to actually reinstall gap_packages.

comment:38 in reply to: ↑ 37 ; follow-up: Changed 6 years ago by dimpase

Replying to jdemeyer:

Replying to dimpase:

Since when a change to spkg-install does need a version change?!

Since you need to fix broken installations of gap_packages. People who install gap_packages today have a broken version of it. Just changing spkg-install doesn't fix that: you need to actually reinstall gap_packages.

yes, but it won't happen without human interaction, would it?

comment:39 in reply to: ↑ 38 Changed 6 years ago by jdemeyer

Replying to dimpase:

yes, but it won't happen without human interaction, would it?

Installed optional packages are upgraded just like standard packages are. So, running make should be sufficient to rebuild gap_packages if it was built before.

comment:40 Changed 6 years ago by git

  • Commit changed from ca9607d1f7c8c23404449013317e9bf3bed3686c to 44d9d6110f41a520dcd2575a9b717452e8d605df

Branch pushed to git repo; I updated commit sha1. New commits:

44d9d61bump up the version

comment:41 Changed 6 years ago by dimpase

  • Authors set to Dima Pasechnik
  • Status changed from needs_work to needs_review

OK, done.

comment:42 Changed 6 years ago by jdemeyer

  • Description modified (diff)

This fixes the second issue, but not the first.

comment:43 Changed 6 years ago by dimpase

the first issue is not trivial to reproduce. I managed to do so on OSX, and on UGent's sage4. (But all of that works on my laptop and on my desktop). This has to do with selective GAP packages loading, and is an upstream2 bug, as far as I can see. (A bug in a GAP package, that is).

comment:44 Changed 6 years ago by dimpase

OK, I see. If database_gap is installed then the error does not occur (it's because it needs SmallGroup functionality, specifically, the error comes from IdGroup being of wrong type, a function, not an attribute). Looks like a missing dependence in Hap. I will make database_gap a dependency of gap_packages.

comment:45 Changed 6 years ago by git

  • Commit changed from 44d9d6110f41a520dcd2575a9b717452e8d605df to 4a7af2ae235b8c37c259c5792e3aa57ef1d3549a

Branch pushed to git repo; I updated commit sha1. New commits:

4a7af2aHap needs IdGroup being an attribute

comment:46 Changed 6 years ago by dimpase

All works now.


New commits:

4a7af2aHap needs IdGroup being an attribute

comment:47 follow-up: Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_work

Shouldn't this be an order-only dependency | database_gap?

comment:48 Changed 6 years ago by dimpase

I don't understand what this is, an order-only dependency...

comment:50 in reply to: ↑ 47 ; follow-up: Changed 6 years ago by dimpase

  • Status changed from needs_work to needs_review

Replying to jdemeyer:

Shouldn't this be an order-only dependency | database_gap?

I don't think one wants a stale buggy version of database_gap lying around, just because it is an order-only dependence. On a practical side of things, database_gap is updated infrequently, so one would potentially pay very little in efficiency by having it as a normal dependency.

comment:51 in reply to: ↑ 50 ; follow-up: Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_work

Replying to dimpase:

database_gap is updated infrequently, so one would potentially pay very little in efficiency by having it as a normal dependency.

One would pay even less by having it an order-only dependency. You could add a dependency of gap_packages on zn_poly and argue that it doesn't hurt because zn_poly is not updated often. But that's besides the point: I just want the dependencies to correctly reflect reality.

comment:52 follow-up: Changed 6 years ago by jdemeyer

Speaking of dependencies: you should also consider whether gap_packages depends on gap (I don't know if it does?)

comment:53 in reply to: ↑ 52 Changed 6 years ago by dimpase

Replying to jdemeyer:

Speaking of dependencies: you should also consider whether gap_packages depends on gap (I don't know if it does?)

that's right, gap (and libgap) are dependencies, too. I will add them.

comment:54 in reply to: ↑ 51 ; follow-up: Changed 6 years ago by dimpase

Replying to jdemeyer:

Replying to dimpase:

database_gap is updated infrequently, so one would potentially pay very little in efficiency by having it as a normal dependency.

One would pay even less by having it an order-only dependency. You could add a dependency of gap_packages on zn_poly and argue that it doesn't hurt because zn_poly is not updated often. But that's besides the point: I just want the dependencies to correctly reflect reality.

The reality is that if database_gap has a bug, then an output of gap_packages might be wrong. A new release of gap_packages might silently need an newer database_gap, too.

Order-only dependencies are invented to deal with completely different scenarios, IMHO.

comment:55 Changed 6 years ago by git

  • Commit changed from 4a7af2ae235b8c37c259c5792e3aa57ef1d3549a to f0363f2fe1ed8a33a9066fb89c0e608e3d0c11c2

Branch pushed to git repo; I updated commit sha1. New commits:

f0363f2more deps added

comment:56 Changed 6 years ago by dimpase

  • Status changed from needs_work to needs_review

comment:57 in reply to: ↑ 54 Changed 6 years ago by jdemeyer

Replying to dimpase:

A new release of gap_packages might silently need an newer database_gap, too.

Sage always installs the latest version of installed standard and optional packages, so database_gap will always be up-to-date. That's not something which affects the dependencies of gap_packages.

comment:58 Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_info

The question you need to answer is a different one: if database_gap is reinstalled (either because of an upgrade of database_gap of because somebody did sage -f database_gap), should this force a reinstallation of gap_packages?

If the answer is "yes": use a normal dependency

If the answer is "no": use an order-only dependency

comment:59 follow-up: Changed 6 years ago by dimpase

I read the doc you provided, and it said something else:

If package A has an order-only dependency on B, it simply means that B must be built before A can be built. The version of B does not matter, only the fact that B is installed matters. This should be used if the dependency is purely a build-time dependency (for example, a dependency on Python simply because the spkg-install file is written in Python).

Against this background, the answer is that B is a runtime dependency, not a build-time dependency, and thus it should not be order-only.

comment:60 in reply to: ↑ 59 Changed 6 years ago by jdemeyer

Replying to dimpase:

This should be used if the dependency is purely a build-time dependency

That is an if, not if and only if.

It's not because it's not a build-time dependency, that it should not be an order-only dependency.

comment:61 Changed 6 years ago by dimpase

  • Report Upstream changed from N/A to Reported upstream. Developers deny it's a bug.

I do not know all the details to be sure that an order-only dependency is OK. Probably yes, but not 100% certainly.

Also, regarding the upstream opinion on whether it is a bug, see https://github.com/gap-system/gap/issues/775 They think that non-GPL'd libs in database_gap are parts of "GAP core system", whatever they mean.

comment:62 Changed 6 years ago by dimpase

  • Status changed from needs_info to needs_review

comment:63 follow-up: Changed 6 years ago by fbissey

I think it is time for me to crash the party. First I notice that you made gap_packages and database_gap depend on libgap. Only gap is needed.

I think it is time for me to point out that grape includes an old version of nauty and can use either nauty (now a standard package) or bliss (now an optional package). Look at GRAPE_DREADNAUT_EXE in grape/lib/grape.g (and the variable GRAPE_NAUTY and GRAPE_BLISS_EXE in the same file if you are curious). I recommend removal of the configure and other makefiles in spkg-src. The only point of that bit in the grape package is to build the dreadnaut executable from nauty.

I am OK if you want to spin that as a separate ticket.

comment:64 in reply to: ↑ 63 ; follow-up: Changed 6 years ago by dimpase

Replying to fbissey:

I think it is time for me to crash the party. First I notice that you made gap_packages and database_gap depend on libgap. Only gap is needed.

As soon as we start supporting building GAP kernel extensions in libgap, things will change, and libgap will be a real dependence. At the moment, as gap and libgap are updated in lockstep, it does not matter anyway.

I think it is time for me to point out that grape includes an old version of nauty and can use either nauty (now a standard package) or bliss (now an optional package). Look at GRAPE_DREADNAUT_EXE in grape/lib/grape.g (and the variable GRAPE_NAUTY and GRAPE_BLISS_EXE in the same file if you are curious). I recommend removal of the configure and other makefiles in spkg-src. The only point of that bit in the grape package is to build the dreadnaut executable from nauty.

I am OK if you want to spin that as a separate ticket.

I don't see why you want to override GRAPE's author on this. He told be that he keeps old nauty as he did not do a lot of tests with the new one, yet.

comment:65 in reply to: ↑ 64 ; follow-up: Changed 6 years ago by jdemeyer

  • Status changed from needs_review to needs_work

I do not know all the details to be sure that an order-only dependency is OK. Probably yes, but not 100% certainly.

It has always been an order-only dependency (the default dependencies of optional packages is an order-only dependency on every standard package), so I guess it's safe.

As soon as we start supporting building GAP kernel extensions in libgap, things will change

Then the dependencies of database_gap and gap_packages should be changed in that ticket. I don't see the point of adding dependencies just in case they will be needed in the future. It reminds me of somebody adding webassets to sagenb because they planned to use it in the future... which of course never happened.

comment:66 Changed 6 years ago by git

  • Commit changed from f0363f2fe1ed8a33a9066fb89c0e608e3d0c11c2 to 9afe2c3e4b7ebd82729d21439d684dbc0fdc5731

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

9afe2c3more deps added

comment:67 in reply to: ↑ 65 Changed 6 years ago by dimpase

Replying to jdemeyer:

I do not know all the details to be sure that an order-only dependency is OK. Probably yes, but not 100% certainly.

It has always been an order-only dependency (the default dependencies of optional packages is an order-only dependency on every standard package), so I guess it's safe.

we talk about dependency of one optional package on another.


New commits:

9afe2c3more deps added

comment:68 Changed 6 years ago by dimpase

  • Report Upstream changed from Reported upstream. Developers deny it's a bug. to N/A
  • Status changed from needs_work to needs_review

New commits:

9afe2c3more deps added

New commits:

9afe2c3more deps added

comment:69 Changed 6 years ago by dimpase

gap, libgap, gap_packages, and database_gap are tightly interconnected packages, usually updated all together, and I don't see much harm in declaring them to be a bit more interdependent than might be strictly necessary. Especially in absence of clear, and not open to grammatical (mis)interpretations, guidelines on dependencies in Sage.

comment:70 Changed 6 years ago by jdemeyer

  • Reviewers set to Jeroen Demeyer
  • Status changed from needs_review to positive_review

I still think that the current branch is wrong, but let's stop the bikeshedding...

comment:71 follow-up: Changed 6 years ago by dimpase

I think there are files there that do not need that import from future at all. I don't know whether this import makes it python3-incompatible.

comment:72 in reply to: ↑ 71 ; follow-up: Changed 6 years ago by jdemeyer

Replying to dimpase:

I think there are files there that do not need that import from future at all. I don't know whether this import makes it python3-incompatible.

I suppose this comment was meant for a different ticket?

comment:73 in reply to: ↑ 72 Changed 6 years ago by dimpase

Replying to jdemeyer:

Replying to dimpase:

I think there are files there that do not need that import from future at all. I don't know whether this import makes it python3-incompatible.

I suppose this comment was meant for a different ticket?

oops, indeed, sorry...

comment:74 Changed 6 years ago by vbraun

  • Branch changed from public/20525 to 9afe2c3e4b7ebd82729d21439d684dbc0fdc5731
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.