Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 510480 - sci-mathematics/maxima-5.38.1 keyword request
Summary: sci-mathematics/maxima-5.38.1 keyword request
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Keywording (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Science Mathematics related packages
Depends on: 622120
  Show dependency tree
Reported: 2014-05-16 11:39 UTC by Andrey Grozin
Modified: 2020-06-21 11:19 UTC (History)
1 user (show)

See Also:
Package list:
sci-mathematics/maxima ~arm
Runtime testing required: ---
nattka: sanity-check+

dev-lisp:ecls-13.5.1-r1:20140530-102126.log (dev-lisp:ecls-13.5.1-r1:20140530-102126.log,35.31 KB, text/plain)
2014-06-19 19:09 UTC, Markus Meier
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Grozin gentoo-dev 2014-05-16 11:39:00 UTC
Now gcl is keyworded ~arm (#509842), and maxima can be built on arm.

One pecularity of the maxima ebuild: it can build maxima with any (non-empty) subset of 6 lisps, depending on USE flags; if no lisp USE flags are given, it defaults to sbcl. On arm, only gcl is available. Therefore, it is necessary to specify the USE flag gcl for emerging maxima.

It would be good to use FEATURES=test to run self-tests, though this may take a lot of time on a slow processor.
Comment 1 Markus Meier gentoo-dev 2014-06-19 19:09:05 UTC
Created attachment 379276 [details]

I didn't forget about this one, but there are a few issues... The following packages are needed to (properly) keyword sci-mathematics/maxima on arm:


dev-lisp/ecls fail to build here. For me it looks like there's a bundled ffi that seems to be failing... log attached.

Portage 2.2.10 (default/linux/arm/13.0/armv5te/desktop, gcc-4.8.2, glibc-2.19, 3.9.2 armv5tel)
System uname: Linux-3.9.2-armv5tel-with-gentoo-2.2
KiB Mem:      513632 total,    186708 free
KiB Swap:    2104508 total,   1760396 free
Timestamp of tree: Sat, 14 Jun 2014 10:30:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p47
dev-lang/python:          2.7.6-r1, 3.2.5-r4, 3.3.5, 3.4.0
dev-util/ccache:          3.1.9-r3
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.4_p6-r1, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.7.3-r1, 4.8.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.14 (virtual/os-headers)
sys-libs/glibc:           2.19
Repositories: gentoo
CFLAGS="-O2 -march=armv5te -pipe"
CONFIG_PROTECT="/etc /usr/lib/python2.7/site-packages/buildbot/status/web /usr/share/config /usr/share/gnupg/qualified.txt /var/spool/munin-async/.ssh"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=armv5te -pipe"
EMERGE_DEFAULT_OPTS="--quiet-build=n --jobs=2 --keep-going"
FCFLAGS="-O2 -pipe -march=armv5te"
FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe -march=armv5te"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="X a52 aac acl acpi alsa apache2 arm berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif gpm graphite gtk iconv jpeg lcms libnotify mad mng modules mp3 mp4 mpeg ncurses nls nptl ogg opengl pam pango pcre pdf png policykit ppds qt3support qt4 readline sdl semantic-desktop session spell ssl startup-notification svg tcpd test threads tiff truetype udev udisks unicode upower usb vorbis wxwidgets xcb xml xv xvid zlib" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4 php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_1 python3_2 python3_3" RUBY_TARGETS="ruby19 ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="exynos fbdev omap omapfb dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Comment 2 Andrey Grozin gentoo-dev 2014-06-20 16:07:03 UTC
Things are not *that* bad. It is sufficient to have at least 1 lisp (out of 6 supported ones) to compile maxima. And now we have gcl, this is sufficient. No need to have ecls or sbcl.
The USE flags gcl, cmucl, clozurecl are masked in base/use.mask, and unmasked only in selected arches. I'll do the same with sbcl, ecls, clisp. Also, I'll edit the maxima ebuild slightly. If a user specifies none of these 6 USE flags, the default lisp is used; currently, it's sbcl. I'll make the default lisp on arm to be gcl.
After I'll do this change, there will be no need to keyword ecls, sbcl, and hence also asdf and uiop on arm.
Also rlwrap is not needed. It is needed if maxima is built with some lisp which does not support readline itself. But gcl supports readline. After the mentioned change in the maxima ebuild it will not depend on rlwrap on arm (it will depend on it only under some USE flags which are masked on arm).
You are absolutely right that imaxima is needed, and it also needs auctex. I think it wouldn;t be too difficult to keyword them.
By the way, the lisp system sbcl has been ported to arm very recently: arm support has appeared in its latest version 1.2.0. I plan to commit an sbcl-1.2.0 ebuild within a few days. After that, it will be possible to try it on sbcl. But this may be non-trivial, sbcl is a rather strange beast (it's not a C program compiled by gcc, unlike, say, gcl; sbcl bootstraps itself). But let's not try do do everything at once and immediately. sbcl can wait.
To summarize: I'll do some changes in masking/unmasking USE flags and in the maxima ebuild; after that, you'll need to keyword only maxima, imaxima, and auctex.
Comment 3 Andrey Grozin gentoo-dev 2014-08-03 08:31:43 UTC
Sorry for the long delay, was busy with other things :-(
I've just committed a modified maxima-5.33.0.ebuild. If the user gives none of the lisp USE flags, the default lisp is used. Now, on arm the default lisp is gcl. All lisp USE flags except gcl are masked on arm. So, on arm maxima can never depend on any other lisp. Also, rlwrap now showld not be needed on arm.
If there are any problems with keywording imaxima and auctex, we can trivially mask the USE flag emacs for maxima in package.use.mask, and they will not be needed. Then you can keyword just 1 package, maxima. But if auctex and imaxima work on arm (and there are no reasons why they shouldn't), you can keyword all 3 of them, and avoid masking the emacs USE flag.
Comment 4 Markus Meier gentoo-dev 2014-09-27 11:45:50 UTC
Andrey, thanks for your work on this one. The new ebuilds (still) build fine on my arm box! There still seems to be a problem with sbcl and rlwrap dependencies:

$ ekeyword ~arm maxima-5.34.1.ebuild 
WARNING: 'portageq portdir' is deprecated. Use 'portageq repositories_configuration' instead.
--- maxima-5.34.1.ebuild	2014-09-14 12:05:32.000000000 +0200
+++	2014-09-27 13:41:33.565047532 +0200
@@ -15 +15 @@
-KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"

$ repoman full --include-arches="arm"

RepoMan scours the neighborhood...
>>> Creating Manifest for /home/maekke/cvs/gentoo-x86/sci-mathematics/maxima
  dependency.bad                3
   sci-mathematics/maxima/maxima-5.34.1.ebuild: DEPEND: ~arm(default/linux/arm/13.0) ['dev-lisp/sbcl:=', 'app-misc/rlwrap']
   sci-mathematics/maxima/maxima-5.34.1.ebuild: PDEPEND: ~arm(default/linux/arm/13.0) ['app-emacs/imaxima']
   sci-mathematics/maxima/maxima-5.34.1.ebuild: RDEPEND: ~arm(default/linux/arm/13.0) ['dev-lisp/sbcl:=', 'app-misc/rlwrap']
  repo.eapi.deprecated          5
   sci-mathematics/maxima/maxima-5.18.1.ebuild: 2
   sci-mathematics/maxima/maxima-5.26.0.ebuild: 3
   sci-mathematics/maxima/maxima-5.27.0-r1.ebuild: 3
   sci-mathematics/maxima/maxima-5.28.0.ebuild: 3
   sci-mathematics/maxima/maxima-5.29.1.ebuild: 3

Note: use --include-dev (-d) to check dependencies for 'dev' profiles

Please fix these important QA issues first.
RepoMan sez: "Make your QA payment on time and you'll never see the likes of me."

Do I need to mask some flags or is there anything else I am missing?
Comment 5 Andrey Grozin gentoo-dev 2015-11-27 12:49:46 UTC
In recent versions DEPEND and RDEPEND were in fact wrong. I've fixed this in maxima-5.37.3-r1. If I add ~arm to maxima-5.37.3-r1 and app-emacs/imaxima-1.0-r3, repoman full says everything's all right. Please check that maxima actually compiles on arm and keyword it (together with imaxima) ~arm.

A personal question, sorry: I plan to buy a good tablet, maybe samsung galaxy tab s2. I heard that it's possible to install Gentoo on top of Android, because top-level directories in / don't intersect. Where can I read more about it? Is it neccessary to root the tablet? Will I have a Gentoo ~arm device on which I'll be able to compile and test packages?
Comment 6 Andrey Grozin gentoo-dev 2015-12-23 16:28:09 UTC
Starting from 5.37.3-r3, there is no separate package app-emacs/imaxima. So, you only need to keyword sci-mathematics/maxima-5.37.3-r3, nothing else. (Of course, if there are problems with maxima with USE=emacs, this USE flag can be masked on arm.)