Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate prereq in the new build system #15580

Closed
jdemeyer opened this issue Dec 24, 2013 · 129 comments
Closed

Integrate prereq in the new build system #15580

jdemeyer opened this issue Dec 24, 2013 · 129 comments

Comments

@jdemeyer
Copy link

After downloading Sage 6.0 either from git or from the .tar.gz sdist tarball, the prereq tarball prereq-1.2.tar.gz is missing. This is a huge problem, because many checks are skipped because of this.

Integrating this was probably overlooked in the sage-git build system. I think the best solution is not have prereq as a tarball at all and simply integrate the contents of the former prereq tarball in the git repo.

Depends on #15596

CC: @ohanar @vbraun

Component: distribution

Author: R. Andrew Ohana, Jeroen Demeyer

Branch/Commit: u/jdemeyer/ticket/15580 @ 2e27abb

Reviewer: R. Andrew Ohana, Volker Braun

Issue created by migration from https://trac.sagemath.org/ticket/15580

@jdemeyer jdemeyer added this to the sage-6.1 milestone Dec 24, 2013
@jdemeyer

This comment has been minimized.

@jdemeyer jdemeyer changed the title prereq tarball is missing Integrate prereq in the new build system Dec 24, 2013
@ohanar
Copy link
Member

ohanar commented Dec 24, 2013

comment:2

Actually prereq-1.2.tar.gz should work if you drop it into the upstream directory, but since it was different, it didn't receive any of the extra treatment the other packages got.

@jdemeyer
Copy link
Author

comment:3

Replying to @ohanar:

Actually prereq-1.2.tar.gz should work if you drop it into the upstream directory

OK, I see that. But it's not distributed by default.

@jdemeyer
Copy link
Author

comment:4

If somebody can merge the prereq tarball contents in the git repo, I can easily do the rest.

@ohanar
Copy link
Member

ohanar commented Dec 28, 2013

comment:5

I've exported prereq-1.2's history to the root directory with no cleanup (e.g. there is still the hgignore).


New commits:

0881c74Merge in prereq-1.2
cb5e072Trac #14406: remove sqrtl() and SAGE_FORTRAN/SAGE_FORTRAN_LIB checks
e98db82trac 13385: Remove check for openssl.
e63837bTrac #13329: Add -lcrypto and -ldl (needed for -lssl), support SAGE_LOCAL
48b54aaTrac #13329: small reviewer fixes
ac675c6make dpgk-architecture check error out, its at least in Ubuntu 8.04
73f867dadded openssl and dpkg-architecture check
6b9c3e9Trac #12112: Support --disable-compiler-checks option
ea08e9bInitialization of repository

@ohanar
Copy link
Member

ohanar commented Dec 28, 2013

Branch: u/ohanar/prereq

@ohanar
Copy link
Member

ohanar commented Dec 28, 2013

Commit: 0881c74

@jdemeyer
Copy link
Author

comment:6

I have a patch ready, but I need to rebuild Sage before it can be uploaded...

@jdemeyer
Copy link
Author

Author: R. Andrew Ohana, Jeroen Demeyer

@jdemeyer
Copy link
Author

Changed branch from u/ohanar/prereq to u/jdemeyer/ticket/15580

@jdemeyer
Copy link
Author

comment:8

Not yet ready for review, requires more work.

@jdemeyer
Copy link
Author

Changed branch from u/jdemeyer/ticket/15580 to u/ohanar/prereq

@jdemeyer
Copy link
Author

Changed branch from u/ohanar/prereq to u/jdemeyer/ticket/15580

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 29, 2013

Changed commit from 0881c74 to 143e5e4

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 29, 2013

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

143e5e4Don't use cp -p in sage-clone-source

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 29, 2013

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

68ac77fMerge branch 'u/jdemeyer/ticket/15596' of git://trac.sagemath.org/sage into ticket/15580
c7c0106sage-sdist: copy upstream tarballs using sage-spkg
321a9adMerge remote-tracking branch 'trac/u/ohanar/pillow' into t/15596/sdist_fails_with_capital_p_illow
f005905pillow: depends on setuptools
adc90cePillow -> pillow
8987381remove PIL (it has been replaced by Pillow)
2c055bdPillow: fix patch to work against 2.2.2
6690d97doc: remove now unused environment variables
3778f42Pillow: re-resolve #9864
6df0adbreplace PIL with Pillow

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 29, 2013

Changed commit from 143e5e4 to 68ac77f

@jdemeyer
Copy link
Author

Dependencies: #15596

@ohanar
Copy link
Member

ohanar commented Dec 30, 2013

Reviewer: R. Andrew Ohana

@ohanar
Copy link
Member

ohanar commented Dec 30, 2013

comment:14

Looks fine to me, so long as someone can review my reviewer commit. (It is just restoring a small regression of sage-sdist.)


New commits:

43b696fsage-sdist: don't require sage to be built

@ohanar
Copy link
Member

ohanar commented Dec 30, 2013

Changed branch from u/jdemeyer/ticket/15580 to u/ohanar/prereq

@ohanar
Copy link
Member

ohanar commented Dec 30, 2013

Changed commit from 68ac77f to 43b696f

@ohanar
Copy link
Member

ohanar commented Dec 30, 2013

comment:15

One comment I have is that having a toplevel configure script might confuse those not familiar with sage's odd build system. Maybe we should move it to be under the build directory?

@jdemeyer
Copy link
Author

comment:16

Replying to @ohanar:

One comment I have is that having a toplevel configure script might confuse those not familiar with sage's odd build system. Maybe we should move it to be under the build directory?

My hope is to converge to a more standard build system, so having ./configure at the top-level makes the most sense. And even if it confuses people, doing ./configure && make like the usual packages still works.

@jdemeyer
Copy link
Author

Changed commit from 3e5dfa5 to e1df3ce

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:92

How is that supposed to change anything? The `aclocal.m4' is not in the confball, so you need aclocal to generate it. The job of the "missing" script is to mangle the timestamps as if aclocal has run, but you still need the file whose timestamp is to be changed.

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:93

PS: What running with bash does give you is the proper warning before it errors out:

WARNING: 'aclocal' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make[3]: *** [configure] Error 127

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:94

PPS: any thoughts on enabling AM_MAINTAINER_MODE?

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

Changed branch from u/jdemeyer/ticket/15580 to u/vbraun/ticket/15580

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

Changed commit from e1df3ce to 9c13193

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:96

I guess disabling maintainer mode is only interesting when you actually run the automake-generated makefile. But we probably should, then. I'll put it in for now.

In any case, we should only run autotools from the bootstrap script. As long as we don't use the automake output there are no timestamp issues.


New commits:

a38f919allow disabling of maintainer mode
9c13193only run autotools from the bootstrap script

@jdemeyer
Copy link
Author

comment:97

I disagree with ./sage -f configure since I absolutely don't want configure to act like a spkg. I prefer configure to have as few dependencies as possible. I much prefer to not depend on sage-spkg (and preferably also not on build/install nor sage-env, but that's harder for now).

Also, what was wrong with bootstrapping from the top-level Makefile? Doesn't the missing script work properly? I like the fact that configure gets regenerated automatically when I edit configure.ac.

@jdemeyer
Copy link
Author

comment:98

Replying to @vbraun:

How is that supposed to change anything? The `aclocal.m4' is not in the confball, so you need aclocal to generate it.

OK, I forgot to add that file, no big deal.

@jdemeyer
Copy link
Author

comment:99

Hmm, it seems that missing has changed functionality. Now it doesn't really do anything, except for printing a more verbose error message. Old versions of missing did indeed touch the files.

@jdemeyer
Copy link
Author

Changed branch from u/vbraun/ticket/15580 to u/jdemeyer/ticket/15580

@jdemeyer
Copy link
Author

comment:101

Volker, this patch simply stops using the missing script while keeping the rest of the bootstrap process.


New commits:

2e27abbDon't use "missing"

@jdemeyer
Copy link
Author

Changed commit from 9c13193 to 2e27abb

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:102

bootstrap shouldn't call make to do its business, usually it would run automake to generate the makefile. But we can also disentangle that later if you prefer.

AFAIK we do guarantee that "sage -f" works even before building Sage, so that you can install replacements for certain optional build-time dependencies (e.g. ccache). Not using that mechanism means that "make download" won't work, for example. Not to mention that it duplicates the sagemath upstream url, doesn't verify the checksum, etc. I don't necessarily care so much about using it, just wanted to make sure that you thought about the potential downsides of downloading the confball manually.

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:103

PS: I agree that missing changed and should be treated as implementation details for the autotools, i.e., do not call directly.

@jdemeyer
Copy link
Author

comment:104

Replying to @vbraun:

AFAIK we do guarantee that "sage -f" works even before building Sage, so that you can install replacements for certain optional build-time dependencies (e.g. ccache). Not using that mechanism means that "make download" won't work, for example. Not to mention that it duplicates the sagemath upstream url, doesn't verify the checksum, etc. I don't necessarily care so much about using it, just wanted to make sure that you thought about the potential downsides of downloading the confball manually.

I was thinking of moving towards a more typical "configure + make" model. Then ./sage -f should be guaranteed to work only after ./configure but before make. What we actually want for optional packages would be something like

$ ./configure --enable-ccache --enable-build-gcc --enable-mirror=http://example.com/ --optional-packages=database_gap
$ make

@jdemeyer
Copy link
Author

comment:105

Replying to @vbraun:

bootstrap shouldn't call make to do its business, usually it would run automake to generate the makefile. But we can also disentangle that later if you prefer.

Perhaps you are right. But I would indeed prefer to do that later, especially since #15606 changes the bootstrap process also.

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:106

Replying to @jdemeyer:

$ ./configure --enable-ccache --enable-build-gcc --enable-mirror=http://example.com/ --optional-packages=database_gap

Sounds good to me, but does not have to prevent sage -f from working (with sane defaults) before configure is run. If you want to change the mirror url then you just have to have your own set of autotools.

@jdemeyer
Copy link
Author

comment:107

Replying to @vbraun:

Sounds good to me, but does not have to prevent sage -f from working (with sane defaults) before configure is run.

I'd say: let's see how things evolve. I will not actively prevent sage -f from working.

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

Changed reviewer from R. Andrew Ohana to R. Andrew Ohana, Volker Braun

@vbraun
Copy link
Member

vbraun commented Jan 15, 2014

comment:108

fine with me...

@vbraun
Copy link
Member

vbraun commented Jan 16, 2014

comment:109

Another side effect of treating the confball different:

vbraun@boxen:~/Sage/git$ git clone ...
vbraun@boxen:~/Sage/git$ ./sage -sdist
Sage version 6.1.beta5, release date 2014-01-15
Error: configure tarball '/home/vbraun/Sage/git/upstream/configure-3.tar.gz' does not exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants