Developer Documentation: Difference between revisions
|  (Created page with '= Developer Documentation = Documentation how to build and modify the Alpine distro.  * Alpine Package Testing Suite * Alpine Configuration Framework Design (Why ACF is t...') | Prabuanand (talk | contribs)  m (fixed words and moved option so easier to follow) | ||
| (78 intermediate revisions by 22 users not shown) | |||
| Line 1: | Line 1: | ||
| =  | [[Image:package_system.svg|right|link=]] | ||
| 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 Configuration Framework Design]] (Why ACF is the way it is) | * [[Alpine Configuration Framework Design]] (Why ACF is the way it is) | ||
| * [[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]] | |||
| == Misc ==  | |||
| * [[Alpine Release Testing Checklist]] | |||
| * [[Alpine Source Map by boot sequence]] | |||
| * [[Testing modified install images and packages]] | |||
| * [[Custom Kernel]] | |||
| * [[Comparison with other distros]] | |||
| ==  | == Package management == | ||
| * [[ | <!-- 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. --> | ||
| * [[Alpine Linux package management|Package Management (apk)]] ''(How to add/remove packages on your Alpine)'' <!--  | |||
| * [[ |   [[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)'' | |||
| == Init system == | |||
| * [[initramfs init]] | |||
| * [[ | * [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically launch at next reboot)'' | ||
| * [[ | ** [[Writing Init Scripts]] | ||
| * [[ | |||
| [[Category:Development]] | |||
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
- Setting up the build environment on HDD
- Installing Alpine Linux in a chroot
- Install Alpine on LXC
- VMware, Qemu, or Amazon EC2
- Xen Dom0 (Setting up Alpine as a dom0 for Xen hypervisor)
Use Edge version for all build environment options listed above.
Creating packages and patches
Development tools
Alpine configuration framework
|  Needs to be organized/consolidated. | 
- Alpine Configuration Framework Design (Why ACF is the way it is)
- Writing User Documentation for ACF
- mvc.lua reference - mvc.lua is the core of ACF
- mvc.lua example - build a simple (command-line) application
- acf www-controller reference - ACF www application functions
- 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
- Alpine Wall User's Guide (a firewall management framework)
Design documents
- Architecture
- APK specification - includes Apkindex format and Alpine package format
- Alpine Configuration Framework Design
Misc
- Alpine Release Testing Checklist
- Alpine Source Map by boot sequence
- Testing modified install images and packages
- Custom Kernel
- Comparison with other distros
Package management
- Package Management (apk) (How to add/remove packages on your Alpine)
- Alpine local backup (lbu) (Permanently store your modifications in case your Diskless box needs reboot)
Init system
- initramfs init
- Init System (OpenRC) (Configure a service to automatically launch at next reboot)