~alpine/devel

[alpine-devel] Adélie on Alpine, a retrospective (so far)

Details
Message ID
<59C710E5.40709@adelielinux.org>
Sender timestamp
1506218213
DKIM signature
missing
Download raw message
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi there Alpinists,

We've just released our first alpha build of Adélie Linux built atop
Alpine Linux, and I thought I would share a retrospective of the
things we learned and how we want to continue contributing and
improving Alpine as we move forward in our release cycle.


Alpine is surprisingly portable
===============================

We were thrilled to find how easy it is to port Alpine to new CPU
architectures.  We have successfully built a repo for 32-bit
big-endian PowerPC that allows desktop and server usage with very
minimal effort.  This was actually easier to do than on Gentoo,
despite Gentoo's massive amount of tooling for porting to other
platforms.  We also have had some limited success at porting to 64-bit
big-endian PowerPC; however, we have run in to ABI issues with libffi
that we are working on with upstream.  We have also built an
almost-complete toolchain for MIPS, though we are having issues
building a final GCC (and have discussed this previously in another
thread).


Package updates and testing
===========================

We are very happy to have such a warm and welcoming community in
Alpine that is willing to work with us on improving packages.  I would
like to personally thank everyone involved with reviewing and merging
our many pull requests to add check support and tweak / modernise the
package recipe files.

Moving forward, we have internally discussed moving to a 1:1 mapping
between pull requests and packages, so that the large PRs (such as the
X11 libraries one, a full 36 commits) do not happen again.  This may
cause a bit more noise on the Alpine side but we hope that it will
allow our changes to be more easily reviewed and merged, and take less
time than it would to review a large monolithic PR.  Please do let us
know if this would be okay.


Documentation
=============

We have a few people on our IRC channel that would like to start
contributing packages to Adélie (and very hopefully to Alpine, too)
but they are confused on how to write an APKBUILD properly.  The wiki
is a bit mangled due to its age and how many different people have
edited it.  I have written documentation for many different types of
packages (in fact, that was my day job many years ago), and I would
like to try and write a developer's guide for Adélie.  If there is
interest, I would be very happy to make it a developer's guide for
Alpine as well.

I feel most comfortable with DocBook.  This is a rough outline of the
layout I would like to write for this guide:

1. Preparing your system
 \- Running abuild-keygen
 |- Write abuild.conf
 |- Setting up the directory trees (/var/cache/distfiles, /srv/packages)
2. Git basics
 \- Link to Git official docs
 |- Describe Adélie specific things
 |\ - commit msg formatting (repo/pkg: brief desc of change)
 || - commit signing
 || - multiple remotes
3. Writing your first package
 \- Use something like GNU Hello
 |- Using newapkbuild
 |- Call out vars that all packages have (pkgrel, makedepends, others)
 |- License field
 |- Test suites (and options="!check" if package has no test suite)
4. Deep dive into APKBUILD
 \- Advanced vars like options, checkdepends, _host/_build
 |- Subpackages
 |\ - Optional modules (py-$foo, $foo-guile, and such)
 || - Debug, development, documentation, and language packages
 || - Service packages (-openrc, -s6)
 |- Patching (change 'hello world' to 'hello galaxy' or such?)
 |- More things I find in abuild's source code that I don't know about
 |- Manual installation (when `make install` doesn't exist)
5. Ensuring security
 \- How package signing works
 |- APK key management
 |- Maybe mention stuff about PaX
6. Odds and ends
 \- Options to APK to help you debug packages
7. If you need help
 \- Other sources of documentation
 |- IRC, ML, Twitter, Mastodon
A. APKBUILD reference
 \- Describe each variable
B. abuild reference
 \- abuild man page basically
C. newapkbuild reference
 \- newapkbuild man page basically


Best to you and yours,
- --arw

- -- 
A. Wilcox (awilfox)
Project Lead, Adélie Linux
http://adelielinux.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJZxxDgAAoJEMspy1GSK50UgacP/2qi2fpxwfevUzhwcit9KpEe
Wl08wk1JVWyTCmR8WSi98chBlilGVAviIWscNNdTnJfg24qE3FjfvsRIFYJC2a4s
TSWbfAU9wowGajtCDUClNl5ey2UVG5qLitVomzOckQnLJ3yZaEAl+ZzgR1ek8U4/
T3MqjIXILivQHTulcmWoPcewbsHyHBCwxuGTA9dw/5pN7BsDmdFnYOZPNBuhRliw
JyAQbm3NObyVFk9ZlWQbdssA51vRQMhZLerDEJ7a7yBXPs6hmAz0pyr+2QYCdM6g
pMo1qlx4clIIJWlSo/U901EE7/nWHZbtXqIjIgaft2CDXbua4OTycHkTFexNXzGR
2QhKf0+xviuX5T0b0lAv8ZyJSZRDO2CW18NV+kgaOYgm/x+g4SunczB6Ot62Cefv
W5mwiV33+sOEwD0D8A2bI33HgmHbuREFhL2Im+TZUQn02f/Dv18JapHHN98b4yTZ
fQKYyel95K5zCMkr+IIuI50X/i4PA0fKMJXp/JDeKe1ufPEv/wOtbnIAbUalght/
jYIMU6XeCL7CC7OvdVkCU1DTysM9jVBPLkwvjOcNMV1bFxeBg8OI+8SB1jplRWQS
quE1mzEGkPZvhhePlprmCmILdpqRQ+SRv0usyyffjJS00xDgMY/RY2BYdYP4iUQG
cdwleC9Otlp/QzCJe5u7
=874R
-----END PGP SIGNATURE-----


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)