maintainer for alpine linux racket package (cloud containers and handhelds)

37 views
Skip to first unread message

Neil Van Dyke

unread,
Nov 13, 2018, 10:30:27 PM11/13/18
to Racket-Users List
Alpine Linux is now popular for "cloud containers", and is also the
basis for mainline Linux for smartphones and tablets.

An official Alpine package with the latest DrRacket would be a big win
to help people start playing with DrRacket on some handhelds, without
the agony of building it themselves on their handheld (or trying to
cross-compile it on their own desktops).

Once we have DrRacket packages, I'd like to have people use Racket to
build out apps and user interface for these open source handhelds,
eventually replacing most of the C and C++ code.

So... Does anyone want to join Alpine package maintainer guild, to
maintain Alpine package(s) for the latest Racket releases?

For 6.12, the necessary patches are small, the same as for the
stripped-down Racket-Minimal package (you don't need or want
"paxmark.patch"):

https://git.alpinelinux.org/cgit/aports/tree/testing/racket?id=de35722a3295116d8e64305c01a1168932b56f26

I've successfully built and run DrRacket on Alpine in the normal Racket
way on the devices, using only the above MUSL, LibreSSL, and Makefile
bash-ism patches.  It was enough of a headache that people will need
pre-compiled Alpine packages (they'll have enough headache getting a
minimal Linux install on a handheld, at this early point).  I want to
shift that compute to Alpine's presumably more powerful build servers,
and shift any remaining headache to a heroic Racketeer

https://en.wikipedia.org/wiki/Alpine_linux
https://en.wikipedia.org/wiki/PostmarketOS
https://www.neilvandyke.org/postmarketos/

Tony Garnock-Jones

unread,
Nov 14, 2018, 6:19:37 AM11/14/18
to Racket Users
I recently experimented with Alpine packages for Racket 7.x, minimal and full, but ran out of steam when I realised I didn't know whether "minimal" and "full" even make sense in context. Is there a need for an "ultra minimal"?

Anyway, APKBUILD etc (partially cribbed from Jakub Jirutka's Racket 6.12 APKBUILD) available here: https://github.com/tonyg/racket-alpine

There's also a couple of Dockerfiles for dockerized alpine-based Racket 7.

I haven't concentrated on the DrRacket/graphical portions at all.

Tony

Neil Van Dyke

unread,
Nov 14, 2018, 7:20:54 AM11/14/18
to Racket Users
For the handhelds, especially in this phase when everyone using it will
be a developer... probably most of which devices will have at least 16GB
of flash and 2GB of RAM... I think upstream's ~600MB installed default
Racket contents (including DrRacket and manuals and everything) is a
good match.  (Later, we might need a minimal runtime, such as to target
lower-spec devices like smartwatches, or to deploy
less-programmer-friendly apps, but that seems easy, if we get to that
point.)

For people who are using Alpine right now, on non-handhelds, because
they need penny-pinching like BusyBox... maybe they need even more
minimal contents option than upstream Racket-Minimal.  I don't know that
that's specific to Alpine (there's also OpenWrt, future containers of
(ahem) Blue Tie Enterprise Linux, and others).  So maybe this can be
solved in the same way for all of those, someday, working with
upstream.  Until then, Racket-Minimal contents is a great start.

A volunteer who wants to join the Alpine Linux guild, learn their
rituals and secret handshakes, and represent Racket well, would do a
great service.


Tony Garnock-Jones wrote on 11/14/18 6:19 AM:
> <https://en.wikipedia.org/wiki/Alpine_linux>
> https://en.wikipedia.org/wiki/PostmarketOS
> <https://en.wikipedia.org/wiki/PostmarketOS>
> https://www.neilvandyke.org/postmarketos/
> <https://www.neilvandyke.org/postmarketos/>
>

Tony Garnock-Jones

unread,
Nov 14, 2018, 7:36:03 AM11/14/18
to ne...@neilvandyke.org, racket...@googlegroups.com
Here are the packages as built by the scripts I linked previously:

~/src/racket-alpine/packages/racket-alpine/x86_64$ ls -la
total 77392
drwxr-xr-x 2 tonyg tonyg     4096 Aug 29 13:27 .
drwxr-xr-x 3 tonyg tonyg     4096 Aug 29 13:08 ..
-rw-r--r-- 1 tonyg tonyg     1319 Aug 29 13:27 APKINDEX.tar.gz
-rw-r--r-- 1 tonyg tonyg 66637726 Aug 29 13:27 racket-7.0-r0.apk
-rw-r--r-- 1 tonyg tonyg  1632592 Aug 29 13:27 racket-dev-7.0-r0.apk
-rw-r--r-- 1 tonyg tonyg     6706 Aug 29 13:27 racket-doc-7.0-r0.apk
-rw-r--r-- 1 tonyg tonyg  9324919 Aug 29 13:08 racket-minimal-7.0-r0.apk
-rw-r--r-- 1 tonyg tonyg  1625139 Aug 29 13:08 racket-minimal-dev-7.0-r0.apk
-rw-r--r-- 1 tonyg tonyg     2714 Aug 29 13:08 racket-minimal-doc-7.0-r0.apk

The "full" package is about 70MB. That includes DrRacket. That "doc" package looks pretty broken. I suspect it's a bunch of misc readmes etc; I don't know if the main documentation is included in the "full" package.

I just tried the following, and it worked kind of ok:
  • docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix racket-alpine /bin/sh
  • inside the container,
    • apk add gtk+ ttf-freefont
    • export DISPLAY=:0.0
    • drracket
which makes me think adding another Dockerfile for quickly spinning up a fresh DrRacket instance might be a worthwhile thing to do as well. Hmm.

Tony


--
You received this message because you are subscribed to a topic in the Google Groups "Racket Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/racket-users/vHt_XYomKg8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to racket-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Reply all
Reply to author
Forward
0 new messages