Opened 11 years ago

Closed 11 years ago

#8861 closed defect (fixed)

sagenb-0.8.p1.spkg: broken dependencies, requires internet conn. to build

Reported by: GeorgSWeber Owned by: GeorgSWeber
Priority: blocker Milestone: sage-4.4.2
Component: build Keywords:
Cc: was, timdumol Merged in: sage-4.4.2.alpha0
Authors: Tim Dumol Reviewers: Minh Van Nguyen, Georg S. Weber
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by mvngu)

This was first noted by John Cremona. On a computer that is not connected to the internet, the build fails:

Processing sagenb-0.8-py2.6.egg
removing '/home/john/sage-4.4.1.rc0/local/lib/python2.6/site-packages/sagenb-0.8-py2.6.egg'
(and everything under it)
creating /home/john/sage-4.4.1.rc0/local/lib/python2.6/site-packages/sagenb-0.8-py2.6.egg
Extracting sagenb-0.8-py2.6.egg to
/home/john/sage-4.4.1.rc0/local/lib/python2.6/site-packages
sagenb 0.8 is already the active version in easy-install.pth
Installing jmol script to /home/john/sage-4.4.1.rc0/local/bin
Installing sage3d script to /home/john/sage-4.4.1.rc0/local/bin

Installed /home/john/sage-4.4.1.rc0/local/lib/python2.6/site-packages/sagenb-0.8-py2.6.egg
Processing dependencies for sagenb==0.8
Searching for mechanize<0.2dev
Reading http://pypi.python.org/simple/mechanize/
Download error: [Errno -2] Name or service not known -- Some packages
may not be found!
Reading http://pypi.python.org/simple/mechanize/
...

On a computer with internet connection, one finds in the install.log:

Processing dependencies for zope.testbrowser==3.8.1
Searching for mechanize<0.2dev
Reading http://pypi.python.org/simple/mechanize/
Reading http://wwwsearch.sourceforge.net/mechanize/
Best match: mechanize 0.1.11
Downloading http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.tar.gz
Processing mechanize-0.1.11.tar.gz
Running mechanize-0.1.11/setup.py -q bdist_egg --dist-dir /tmp/easy_install-XXPn64/mechanize-0.1.11/egg-dist-tmp-fxjRAP
no previously-included directories found matching 'docs-in-progress'
Removing mechanize 0.2.0 from easy-install.pth file
Adding mechanize 0.1.11 to easy-install.pth file

...

So the solution seems to be pretty easy:

Make a new sagenb-0.8.p2.spkg, by throwing out "mechanize-0.2.0.tar.gz" under /src/, adding back the old "mechanize-0.1.11.zip", and finally adjusting the corresponding line 6 in the spkg-install file.

Apply this spkg:

Change History (11)

comment:1 Changed 11 years ago by GeorgSWeber

  • Description modified (diff)
  • Summary changed from sagenb-0.8.p0.spkg: broken dependencies, requires internet conn. to build to sagenb-0.8.p1.spkg: broken dependencies, requires internet conn. to build

(corrected numbering of the package cited)

comment:2 follow-up: Changed 11 years ago by GeorgSWeber

  • Milestone changed from sage-4.4.1 to sage-4.4.2
  • Status changed from new to needs_work

I just couldn't resist and did exactly that, the spkg is here:

http://sage.math.washington.edu/home/weberg/spkg/sagenb-0.8.p2.spkg

I note this still as "needs work" for three reasons: 1. My own test is not done yet --- one needs to do it on a computer *without* internet connection (I'll do overnight and report tomorrow).

2. The sagenb spkg inexplicably misses the required hg repository (to able to monitor changes in spkg-install for example).

3. In the file SPKG.txt, adding a note about testing on a computer without internet connection seems appropriate.

comment:3 in reply to: ↑ 2 Changed 11 years ago by timdumol

  • Status changed from needs_work to needs_review

Thanks for the quick work!

Replying to GeorgSWeber:

I just couldn't resist and did exactly that, the spkg is here:

http://sage.math.washington.edu/home/weberg/spkg/sagenb-0.8.p2.spkg

I note this still as "needs work" for three reasons: 1. My own test is not done yet --- one needs to do it on a computer *without* internet connection (I'll do overnight and report tomorrow).

2. The sagenb spkg inexplicably misses the required hg repository (to able to monitor changes in spkg-install for example).

The sagenb spkg is automatically generated by src/sagenb/spkg-dist, therefore the hg repository is actually in src/sagenb.

3. In the file SPKG.txt, adding a note about testing on a computer without internet connection seems appropriate.

Done.

I've posted the version with the changes in the hg repo here: http://sage.math.washington.edu/home/timdumol/sagenb-0.8.p2.spkg

comment:4 Changed 11 years ago by GeorgSWeber

  • Status changed from needs_review to needs_work

I goofed it. I r-eadded "mechanize.0.1.11.zip", and in the file spkg-install, changed the version number in the corresponding line. But then, the line 6 reads "easy_install mechanize-0.1.11.tar.gz". Since there is now ...tar.gz, but "only" a ...zip, the install blows up exactly as before, if there is not internet connection.

I changed the line to end with ...zip instead, and everything went fine (on a MacIntel? with OS X 10.4.11), even all doctests pass!

But since that computer has no internet connection, I wasn't able to upload that yet.

Tim, your version of the spkg also still suffers from this flaw, so I fear this ticket is back to "needs_work" again.

comment:5 Changed 11 years ago by timdumol

  • Status changed from needs_work to needs_review

I checked the spkg I posted, and I don't see any problem.

timdumol@tim-pc sagenb-0.8]$ ls src/
sagenb/                    zope.i18nmessageid-3.5.2.zip
ClientForm-0.2.10.tar.gz   zope.interface-3.6.1.tar.gz
mechanize-0.1.11.tar.gz    zope.schema-3.6.3.zip
pytz-2010h.zip             zope.testbrowser-3.8.1.tar.gz
zope.event-3.5.0-1.tar.gz

comment:6 Changed 11 years ago by timdumol

And the contents of spkg-install:

cd src
easy_install pytz-2010h.zip
easy_install zope.i18nmessageid-3.5.2.zip
easy_install zope.event-3.5.0-1.tar.gz
easy_install ClientForm-0.2.10.tar.gz
easy_install mechanize-0.1.11.tar.gz
easy_install zope.interface-3.6.1.tar.gz
easy_install zope.schema-3.6.3.zip
easy_install zope.testbrowser-3.8.1.tar.gz
cd sagenb
python setup.py install

comment:7 Changed 11 years ago by mvngu

  • Description modified (diff)
  • Reviewers set to Minh Van Nguyen

A trivial point. When uncompressed, Tim's updated spkg has this name:

[mvngu@sage sagenb]$ ls
sagenb-0.7.2.spkg  sagenb-0.7.5.1.spkg  sagenb-0.7.5.2.spkg  sagenb-0.8.p2.spkg
[mvngu@sage sagenb]$ tar -jxf sagenb-0.8.p2.spkg
[mvngu@sage sagenb]$ ls
sagenb-0.7.2.spkg    sagenb-0.7.5.2.spkg  sagenb-0.8.p2.spkg
sagenb-0.7.5.1.spkg  sagenb-0.8

Notice the directory name sagenb-0.8. It should be sagenb-0.8.p2. An updated package with directory name conforming to the Developer's Guide is available at

http://sage.math.washington.edu/home/mvngu/spkg/standard/sagenb/sagenb-0.8.p2.spkg

This is essentially Tim's spkg, but I changed the name as per above instructions, prior to tar gzip2 compressing the updated spkg.

comment:8 Changed 11 years ago by GeorgSWeber

Tim, Minh, you both are right, of course!

comment:9 Changed 11 years ago by GeorgSWeber

  • Authors set to Tim Dumol
  • Reviewers changed from Minh Van Nguyen to Minh Van Nguyen, Georg S. Weber
  • Status changed from needs_review to positive_review

OK, using the (slightly altered) version that Minh posted from Tim's p2 spkg, I found out the following:

  • this spkg solves the original problem, i.e. does not need an internet connection to build (I tested this "on top" of a full sage-4.4.1 build, forcing sagenb to be rebuilt)
  • all sagenb doctests still pass
  • the notebook starts up and passes some smoke tests
  • the mercurial repository is clean, and the spkg is based upon the previous version 0.8.p1 (i.e. the last patch applied by Mike Hansen for some t2 issue IIRC should be still in)
  • the changes made look sane (esp. about "== 0.1.11" w.r.t. the mechanize version)
  • the one reviewer comment about testing has been incorporated into the SPKG.txt

I now understand the sagenb spkg better, i.e. that the file "spkg-install" is being generated, and that the dependencies under src/ are being downloaded during a standard generation of some new version of this spkg. So the discrepancy that crept in my goofed attempt just cannot occur this way. What I disliked, is that this did lead also to the following updates of certain dependencies in between sagenb-0.8.p1.spkg and sagenb-0.8.p2.spkg:

  • zope.event-3.4.1.tar.gz --> zope.event-3.5.0-1.tar.gz
  • zope.i18nmessageid-3.5.1.tar.gz --> zope.i18nmessageid-3.5.2.zip
  • zope.interface-3.5.3.tar.gz --> zope.interface-3.6.1.tar.gz
  • zope.schema-3.6.1.tar.gz --> zope.schema-3.6.3.zip

Personally, in the light of my other findings and tests above, I do not consider this as critical, assuming that sagenb does not use any "bleeding edge" functionality of the above four zope packages, that would be affected by these updates. If somebody thinks I'm wrong here, then please feel free to switch the status back to "needs_work".

comment:10 Changed 11 years ago by timdumol

Zope very rarely makes backward incompatible changes to its API (afaik), so I think it's reasonably safe to update automatically. Any problems will be spotted during testing, anyways. Otherwise, we can change the dependencies to '==' instead of '>='.

comment:11 Changed 11 years ago by mvngu

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