#16629: sage-fix-pkg-checksums munches build/pkgs/<packagename>/checksums
-------------------------------------+-------------------------------------
       Reporter:  charpent           |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  minor              |    Milestone:  sage-6.3
      Component:  build              |   Resolution:
       Keywords:                     |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/charpent/sage_fix_pkg_checksums_munches_build_pkgs__packagename__checksums| 
 d941afd9150164e979b7df98b2e574cdacd78053
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by charpent):

 Replying to [comment:8 vbraun]:
 > I've got various tarball versions of most packages. I don't want to
 delete them because I might want to go back to an older ticket. Yet I get:
 > {{{
 > (sage-sh) vbraun@localhost:upstream$ sage-fix-pkg-checksums
 > atlas-3.10.1.20140128.tar.bz2
 > Version mismatch between tarball 3.10.1.20140128 and directory
 build/pkgs/atlas.
 > Newer version ? You must put 3.10.1.20140128.p0 in package-version.txt.
 > }}}
 Hmmm... Now we have a conflict on intended usage(s) (and therefore
 designs) :
 * The `builg/pkgs/<pkgname>/...` structure implies at most one version per
 package name.
 * The relevant snippet of the
 [http://www.sagemath.org/doc/developer/packaging.html#checksums
 Developer's guide] hints at a "batch" usage of `src/bin/sage-fix-pkg-
 checksums.`
 So far, that's consistent with `upstream/` as '''the''' set of active (i.
 e. built by Sage's build system) Sage's external packages source tarballs.
 * Your intended usage amounts to use `upstream/` as '''a''' cache of
 potential external packages, the set of '''active''' Sage external
 packages being determined otherwise.
     a. This might be the `build/pkgs/*/package-version.txt` set, in which
 case the `sage-fix-pkg-checksums` script should loop over this set and try
 to find a relevant tarball. At most, it might spit a warning (or fail)
 when no such tarball exists.
     b. It might be an external file listing each package and the relevant
 version. That makes `build/pkgs/<pkgname>/package-version.txt` redundant
 (and a possible source of conflicts).
 The case 1. is consistent, but needs a script like `sage-fix-one-pkg-
 checksum-Volkers-style` to generate the right checksums. As said before,
 the current batch-style script should loop on the `build/pkgs/...` tree.

 In any case, it appears that the consistency of the proposed change (use
 `upstream/` as a cache and not as a reference set) needs modifying the use
 of this script (and, quite possibly, the rest of the build subsystem for
 external packages). Since I do not yet know my way in this system, fixing
 this is, for now, out of my reach. At a minimum, I need advice from
 someone knowing what it does.

 By the way, what is wrong with an external (`.gitignore`d) directory and
 `mv` ing the right tarball at the right time ? An even lazier solution is,
 of course, to symlink the right tarball in `upstream/`, but I doubt one
 can get `git` to follow this transparently.

 Since we are playing redesigning this subsystem, may I ask why we have to
 have `package-version.txt` and `checksums.ini` to describe different
 attribtes of the same tarball ? Why not one file ?

--
Ticket URL: <http://trac.sagemath.org/ticket/16629#comment:9>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to