Developer Documentation: Difference between revisions

From Alpine Linux
(Reorganizing the Developer docs)
m (fixed words and moved option so easier to follow)
 
(77 intermediate revisions by 22 users not shown)
Line 1: Line 1:
= Developer Documentation =
[[Image:package_system.svg|right|link=]]
Documentation how to build and modify the Alpine distro.
This page has pointers to various resources about Alpine Linux from a developer perspective. Set up the [[Setting up the build environment on HDD|build environment]] and start contributing to Alpine Linux by either [[Creating an Alpine package|creating packages]] or by [[Creating patches|submitting patches]].
 
== Configuring your development system ==
<!-- If you edit the following, please coordinate with Installation#Advanced.  Note that these two sections are not exact duplicates. -->
* [[Setting up the build environment on HDD|Setting up the build environment on HDD]] <!-- Dev and Installation -->
<!-- [[Setting up the build environment 1.7]] Obsolete, only Dev
** [[Creating_an_Alpine_package#Setup_your_system_and_account|Setup your system and account for building packages]]
** [[Abuild_and_Helpers#abuild-keygen|Abuild-keygen]]
<!-- Pkg and Dev and Installation -->
* [[Installing Alpine Linux in a chroot]]
<!-- ** [[Buildlab]] ''(Tool for creating and managing chroots)''-->
* [[Install Alpine on LXC]]
* [[Install Alpine on VMware|VMware]], [[Qemu]], <!-- includes [[Install Alpine in Qemu]], [[Running Alpine in Qemu Live mode]], [[Running Alpine Linux As a QEMU networked Guest]] --> or [[Install Alpine on Amazon EC2|Amazon EC2]]
* [[Xen Dom0]] ''(Setting up Alpine as a dom0 for Xen hypervisor)''
** [[Xen Dom0 on USB or SD]]
** [[Create Alpine Linux PV DomU]]
** [[Xen LiveCD]]
 
Use [[Repositories#Upgrading_to_edge|Edge version]] for all build environment options listed above.
*
<!--
* [[Setting up a basic vserver]] 
* [[Setting up a compile vserver]] for official or for [[Setting up a compile vserver for third party packages|third party]] packages
[[Create an Alpine 1.9 vserver template]] -->
 
== Creating packages and patches==
 
* [[Creating an Alpine package]]
  <!-- includes [[Setup your system and account for building packages]] -->
  <!-- includes [[Newapkbuild]]
      To create the actual APKBUILD file, newapkbuild can give you a template to start with.
      It will create a directory with the given package name, place an example/template APKBUILD
      file to the given directory, and fill some variables if those are provided. -->
  <!-- includes [[Local_APK_cache]] -->
** [[Abuild and Helpers]] ''(Scripts for packaging)''
  <!-- includes [[Abuild_and_Helpers#apkbuild-cpan|Apkbuild-cpan]] -->
  <!-- includes [[Abuild_and_Helpers#apkbuild-pypi|Apkbuild-pypi]] -->
  <!--
  [[Abuild_and_Helpers#buildrepo|Buildrepo]]
  [[Abuild_and_Helpers#abuild-sign|Abuild-sign]]
  [[Abuild_and_Helpers#abuild-tar|Abuild-tar]]
  [[Abuild_and_Helpers#abump|Abump]]
  [[Abuild_helpers#apkgrel|Apkgrel]]
  -->
** [[Aports tree]] <!-- <== APKBUILD -->
** [[Development using git:Developer repositories|Developer repositories]]
** [[Package policies]]
** [[Package Maintainers]]
** [[APKBUILD Reference]]
** [[APKBUILD examples]]
* [[Creating patches|Creating and submitting patches]]
 
== Development tools ==
 
* [[Development using git|Git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
* [[Cgit|cgit]]
** [[Development using git:Cgit|Cgit Basics]]
 
== Alpine configuration framework ==
{{Draft|Needs to be organized/consolidated.}}


* [[Alpine Package Testing Suite]]
* [[Alpine Configuration Framework Design]] (Why ACF is the way it is)
* [[Alpine Configuration Framework Design]] (Why ACF is the way it is)
* [[Development using git]]
* [[Installing Alpine on a virtual machine]]
* [[Writing User Documentation for ACF]]
* [[Writing User Documentation for ACF]]
* [[ACF mvc.lua reference|mvc.lua reference]] - mvc.lua is the core of ACF
* [[ACF mvc.lua example|mvc.lua example]] - build a simple (command-line) application
* [[ACF acf www-controller.lua reference|acf www-controller reference]] - ACF www application functions
* [[ACF acf www example|acf www-controller example]] - webify the above examples
* [[ACF how to write]] - Step by step howto for writing acfs
* [[ACF core principles]] - Things that are standard across the application
* [[LuaPosix]] - Documentation for the Lua Posix functions
* [[ACF Libraries]] - Document the libraries and common functions
* [[Writing ACF Views]] - Guide for writing a view
* [[Writing ACF Controllers]] - Guide for writing a controller
* [[Writing ACF Models]] - Guide for writing a model
* [[ACF css]]
* [[ACF packages]]
* [[APKBUILD examples:ACF]]
* [[Apk.lua]]
* [[Changing passwords for ACF]]
* [[Generating SSL certs with ACF]]
* [[Generating SSL certs with ACF 1.9]]
* [[Getting started with ACF development]]
* [[Managing ACF]]
== Alpine Wall  ==
* [[Alpine Wall]]
* [[How-To Alpine Wall]]
* [https://git.alpinelinux.org/awall/about/ Alpine Wall User's Guide] ''(a firewall management framework)''
== Design documents ==
* [[Architecture]]
* [[Apk spec|APK specification]] - includes Apkindex format and Alpine package format
* [[Alpine Configuration Framework Design]]


== Alpine 'edge' build system ==
== Misc ==  
* [[Alpine Release Testing Checklist]]
* [[Alpine Source Map by boot sequence]]
* [[Testing modified install images and packages]]
* [[Custom Kernel]]
* [[Comparison with other distros]]


* [[General_description_of_the_build_system]]
== Package management ==
* [[Setting up the build environment]] ''(Lists the available build doc's)''
 
** [[Setting_up_the_build_environment_on_HDD]] ''(Alpine on HDD)''
<!-- If you edit the following, please coordinate with Tutorials_and_Howtos#Post-Install and Installation#Post-Install.  Note that these three sections are not exact duplicates. -->
** [[Setting_up_the_build_environment_in_chroot]] ''(In a chroot environment)''
* [[Alpine Linux package management|Package Management (apk)]] ''(How to add/remove packages on your Alpine)'' <!--
* [[Creating an Alpine package]]
  [[Alpine Linux package management#Local_Cache|How to enable APK caching]] -->  <!-- includes [[Local APK cache]] -->
* [[Alpine local backup|Alpine local backup (lbu)]] ''(Permanently store your modifications in case your Diskless box needs reboot)''


== Misc. References ==
== Init system ==
Other useful references.


* http://www.metoffice.gov.uk/research/nwp/external/fcm/doc/user_guide/working_practices.html - Some guidelines on use of Trac and SVN
* [[initramfs init]]
* [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically launch at next reboot)''
** [[Writing Init Scripts]]




== Obsolete docs ==
[[Category:Development]]
* [[Setting_up_the_build_environment_1.9]]
* [[Setting up the build environment 1.7]]
* [[Newbie Guide to Building an apk]]
* [[Creating patches]]

Latest revision as of 10:33, 16 June 2025

This page has pointers to various resources about Alpine Linux from a developer perspective. Set up the build environment and start contributing to Alpine Linux by either creating packages or by submitting patches.

Configuring your development system

Use Edge version for all build environment options listed above.

Creating packages and patches

Development tools

Alpine configuration framework

This material is work-in-progress ...

Needs to be organized/consolidated.
(Last edited by Prabuanand on 16 Jun 2025.)

Alpine Wall

Design documents

Misc

Package management

Init system