[racket-dev] advice on the 6.x build system.
At Fri, 17 Oct 2014 07:43:17 +0200, David Bremner wrote:
> Matthew Flatt <mflatt at cs.utah.edu> writes:
>
> >
> > That said, is there a particular reason that basing the build on the
> > git repo would be better?
> >
>
> One reason is that I need I need to track from release to release the
> files that are removed from the racket source by debian for
> licensing-related reasons. Currently this looks like:
>
> ╰─ (git)-[new-master]-% git diff --stat dfsg..upstream
> .../drdr/static/jquery-1.6.2.min.js | 18 +
> .../resources/js/libs/gumby.min.js | 1 +
> .../js/libs/jquery-1.9.1.min.js | 5 +
> .../libs/jquery.mobile.custom.min.js | 3 +
> .../js/libs/modernizr-2.6.2.min.js | 4 +
> .../resources/js/plugins.js | 8 +
> .../racket/benchmarks/common/maze.sch | 680 ++
> .../racket/benchmarks/common/maze2.sch | 695 ++
> .../common/psyntax-input.txt | 4296 ++++++++++++
> .../benchmarks/common/typed/maze2.rktl | 772 ++
> .../racket-test/tests/xml/xmltest.zip | Bin 0 -> 107060 bytes
Happily, none of those are the main-distribution bundles. I don't think
that's a coincidence, and in any case, it should be a goal that we
don't include troublesome files in the distribution.
> A second reason is that I want to be able to able to backport patches to
> older releases of racket running on Debian. This is much easier if I
> can just use "git cherry-pick".
I can see that `git cherry-pick` is more convenient than creating patch
files, at least until we split the Racket repo. In the near future,
when the main distribution is spread out over 60-90 repos, then it
sounds less convenient.
> A third reason (related) is that from time to time I need to test the
> Debian packaging of an as yet unreleased racket version, e.g. to check
> if a build failure is fixed in the upcoming 6.1.1 branch.
The daily snapshot builds have the same shape as a release, as do the
test builds at http://pre-release.racket-lang.org/. So, I think a source
build will be available when you need one.
Also, you can always create your own source bundle from the git repo by
using `make installer SOURCE_MODE=--source`. That begs the question of
what it means to use a source distribution instead the repo, but the
point is that `make installer` is likely to change shape in the near
future, while the source distribution is not (so a build based on the
source distribution may be a more reusable component.)
You can add a "FWIW" in front of all of those, since you know the
constraints and problems of Debian packaging better. I just worry about
the mismatch between the idea of "get a Racket distribution from a
single git repo" versus the more distributed and package-based
direction that we're heading.
Meanwhile, I haven't answered your original question. Can you remind me
of the specific steps that I'd need to follow to try the script that
you sent before?