Hi Ok, so far I have this:
Depends: ${misc:Depends}, ${shlibs:Depends}, libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgd2-xpm, libgmp10, libgmpxx4ldbl, libgsl0ldbl, libjpeg-turbo8, libmpfr4, libpng12-0, libppl13, libppl-c4, libpython2.7, libreadline6, libsqlite3-0, libssl1.0.0, libstdc++6, libtinfo5, libx11-6, libxau6, libxcb1, libxdmcp6, libxpm4, zlib1g Recommends: openssl, build-essential, gfortran, libgfortran3, imagemagick, dvipng, texlive, texlive-pictures, icedtea-plugin Suggests: m4, openssh-client, git Regards, Jan On 20 April 2014 15:29, Jan Groenewald <j...@aims.ac.za> wrote: > Hi > > > On 20 April 2014 14:50, leif <not.rea...@online.de> wrote: > >> Jan Groenewald wrote: >> >>> On 19 April 2014 17:15, leif <not.rea...@online.de >>> <mailto:not.rea...@online.de>> wrote: >>> >>> Depends: build-essential, gfortran [probably also m4] >>> >>> >>> Are build-essential and m4 not only from-source build dependencies? I >>> would maybe move them to Suggests: Is there runtime functionality, a >>> function you would call in the notebook, that would need build-essential >>> and m4? >>> >> >> Most probably not m4 (it's only needed in Sage to [re]build MPIR/GMP >> IIRC), but any Cython code, e.g. also in a notebook cell, needs >> build-essentials. >> >> > OK, so Depends or Recommends: build-essentials, Suggests: m4 > > >> >> >> Note the PPA is not ideal for installing optional packages. The relevant >>> folders are owned by root, so the sage -i must be run as root, which is >>> bad practice. >>> >> >> So you'd have to sudo 'sage -b' as well? > > > Everything. That is of course not recommended. > > I would suggest the best way to save over downloading the source code > again, is to > cp -R /usr/lib/sagemath/ ~/ > and then work further from there with alias mysage='~/sagemath/sage' > > But if you're developing, you may have enough bandwidth. > > >> (gfortran already depends on libgfortran3.) >>> >>> >>> Right, gfortran and (or only) libgfortran are runtime dependencies for >>> some functionality? >>> >> >> Unless one wants to rebuild some packages using Fortran, I think >> libgfortran is sufficient, but there may be doctests trying to run the >> Fortran compiler, or scripts checking its presence, as well. > > > doctests only run when you're doing make test? > So perhaps Recommends: gfortran and Depends: libgfortran3 > Recommends will be installed on almost all systems. > > > > >> It looks like it suggests on gfortran-multilib which depends on >> libgfortran-4.8-multilib, >> > > I don't think multilib stuff makes any sense (unless you e.g. ship the >> optional KaSH3 package, which contains an x86 pre-built binary, but that's >> statically linked). >> >> >> >> Are there runtime functionalities, that is functions that will not work >>> if imagemagick and openssh-client is not installed? >>> >> >> Not sure about the former, but presumably yes. >> > > Looks like at least animate() depends on imagemagick. > > >> >> OpenSSH client is for example needed to interact with Sage's git-trac. > > > I guess normal users might do that to file a bug... openssh-client is > already default on ubuntu-desktop though. So it does not really matter. It > could go in Suggests. > > > >> >> >> >> (Note that openssh-client already depends on OpenSSL. We could >>> still require it, but then I'd use libssl-dev.) >>> >>> >>> I think libssl1 should at least be Suggests and perhaps Recommends. The >>> PPA is really meant for a stanadalone laptop, not a server, but we teach >>> our students how to start a secure server when SSHing into a computer >>> lab desktop so they can connect from their laptop, which might become a >>> general use case for us, or for example, to connect from a tablet. >>> >> >> Well, for the PPA, you should IMHO build Sage's Python with libssl-dev >> present, then libssl will be a runtime dependency, since Sage doesn't ship >> it. Or copy Trusty's versions into $SAGE_LOCAL/lib... ;-) >> [Then including the optional PyOpenSSL into the build would also make >> sense.] > > > The PPA does not build anything. It copies the upstream binaries into > place. > However the Sage's Python is built in waterfall (the buildbot buildslave > system) that is how it will be. > I guess this could use further discussion. As far as I can tell the sage > binaries are built able to use the system-wide for notebook(secure=True) so > we should Depends or Recommends: openssl. I'm not familiar with the extra > use of pyopenssl you mention above, or why copying ssl into LOCAL/lib will > help any further functionality. > > >> >> >> >> The PPA is not really meant for developers, but I guess that is fine. I >>> certainly run the PPA and a from source next to each other to compare >>> when there are bugs. I might be the only one. >>> >> >> My impression is that at least /some/ Sage developers prefer to use the >> PPA (or pre-built binaries) on their netbooks or (low-end) notebooks. And >> on ARM machines ... X-) > > > I would still suggest cp -R /usr/lib/sagemath ~/ for any development, > leaving the PPA in /usr/lib untouched. > > I guess developers are more comfortable adding what they need > afterwards... but in general I might not mind Recommending rather than > Suggesting if most the community wants something. > > I run > 1) PPA > 2) binary from sagmath.org > 3) source compile > > next to each other... for comparison to see if the PPA is to blame for > something. I would not personally copy the PPA installation to compile from > source -- it will not isolate an error. > > But the ARM is a good use case. > > > >> >> >> >> In the future, I'd also require libreadline-dev, but unfortunately >>> currently Sage doesn't even try to use a system-wide one (instead of >>> its meanwhile outdated version 6.2, asking for trouble at least on >>> other distros like Arch Linux and OpenSuSE). >>> >>> I feel like all of these should move to Recommends, so they get >>> installed by default through the apt-get and software centre, but a >>> sysadm could --without-recommends them if they want. >>> >> >> Well, you should check (e.g. with ldd) what (system) libraries your >> binaries depend on; those of course should be in "Depends:". >> > > > I can add these. Many are standard ubuntu installs. > > 0 jan@osprey:/usr/lib/sagemath/local/bin$for i in `ldd * |egrep ' > /lib|/usr/lib'|awk '{print $3}'|sort -u`; do dpkg -S $i; done|awk -F: > '{print $1}'|sort -u > libc6 > libexpat1 > libfontconfig1 > libfreetype6 > libgcc1 > libgd2-xpm > libgmp10 > libgmpxx4ldbl > libgsl0ldbl > libjpeg-turbo8 > libmpfr4 > libpng12-0 > libppl13 > libppl-c4 > libpython2.7 > libreadline6 > libsqlite3-0 > libssl1.0.0 > libstdc++6 > libtinfo5 > libx11-6 > libxau6 > libxcb1 > libxdmcp6 > libxpm4 > zlib1g > 0 jan@osprey:/usr/lib/sagemath/local/bin$ > > > > > >> >> But I don't know whether or which Sage packages (such as readline) you >> replace by system ones. >> >> >> >> Note, the only Build-Depends for the PPA DEB package, is actually only >>> debhelper. It really just copies a compiled binary into place, as one >>> would wiht a binary pacakge. The PPA is a stopgap for a few years until >>> debianization is complete ;) It was way to hard to make a >>> sagemath-monolithic that actually builds all the components through a >>> debian rules file. And that is REALLY not the debian way. >>> >> >> Yep, but as mentioned, as soon as Cython is involved, "using" Sage needs >> build tools. >> >> >> -leif >> >> P.S.: Beat the Ubuntu guys for not releasing fixed versions of >> Ubuntu/Linaro GCC 4.6.3 for Precise. (They still ship the broken 1ubuntu5 >> IIRC, although the fixes had been there two years ago.) > > > Precise or Trusty? > > Regards, > Jan > -- > .~. > /V\ Jan Groenewald > /( )\ www.aims.ac.za > ^^-^^ > -- .~. /V\ Jan Groenewald /( )\ www.aims.ac.za ^^-^^ -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.