Developer Documentation: Difference between revisions

From Alpine Linux
(→‎Misc: Create a source map to help developer finding where to modify)
m (fixed words and moved option so easier to follow)
 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
[[Image:package_system.svg|right|link=]]
[[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]].


== Package management ==
== Configuring your development system ==
<!-- 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]] -->
** [[Comparison with other distros]]
** [[apk spec]]
* [[Edge|Upgrading to Edge]]
* [[Alpine local backup|Alpine local backup (lbu)]] ''(Permanently store your modifications in case your box needs reboot)''
** [[Back Up a Flash Memory Installation]]
** [[Manually editing a existing apkovl]]
<!-- [[Replacing a package]] Obsolete? -->
* [[How to setup a Alpine Linux mirror]]
* [[How to use xdelta and download only differential update files]]
* [[How to make a custom ISO image]]
** [[Burning ISOs]]
 
== Init system ==
* [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically launch at next reboot)''
** [[Multiple Instances of Services]]
* [[Writing Init Scripts]]
 
== Development ==
=== Configuring your system ===
* [[Edge|Upgrading to Edge]] <!-- Pkg and Dev and Installation -->
 
<!-- If you edit the following, please coordinate with Installation#Advanced.  Note that these two sections are not exact duplicates. -->
<!-- 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]] <!-- Dev and Installation -->
* [[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 -->
<!-- [[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]]
** [[Creating_an_Alpine_package#Setup_your_system_and_account|Setup your system and account for building packages]]
** [[Abuild_and_Helpers#abuild-keygen|Abuild-keygen]]
** [[Abuild_and_Helpers#abuild-keygen|Abuild-keygen]]
 
<!-- Pkg and Dev and Installation -->
* [[Installing Alpine Linux in a chroot]] <!-- only Installation -->
* [[Installing Alpine Linux in a chroot]]  
** [[Buildlab]] ''(Tool for creating and managing chroots)''
<!-- ** [[Buildlab]] ''(Tool for creating and managing chroots)''-->
* [[Install Alpine on LXC]]
* [[Install Alpine on LXC]]
* Install Alpine on [[Install Alpine on VirtualBox|VirtualBox]], [[Install Alpine on VMware|VMware]], [[Install Alpine on coLinux|coLinux]], [[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]]
* [[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]] ''(Setting up Alpine as a dom0 for Xen hypervisor)''
** [[Xen Dom0 on USB or SD]]
** [[Xen Dom0 on USB or SD]]
Line 42: Line 18:
** [[Xen LiveCD]]
** [[Xen LiveCD]]


* [[Setting up a basic vserver]] <!-- only Installation -->
Use [[Repositories#Upgrading_to_edge|Edge version]] for all build environment options listed above.
* [[Setting up a compile vserver]] for official or for [[Setting up a compile vserver for third party packages|third party]] packages <!-- Dev and Installation -->
*
<!-- [[Create an Alpine 1.9 vserver template]] -->
<!--
* [[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]] -->


=== Building from source and creating packages ===
== Creating packages and patches==


* [[Aports tree]] <!-- <== APKBUILD -->
* [[Creating an Alpine package]]
* [[Abuild and Helpers]] ''(Scripts for packaging)''
  <!-- 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-cpan|Apkbuild-cpan]] -->
   <!-- includes [[Abuild_and_Helpers#apkbuild-pypi|Apkbuild-pypi]] -->
   <!-- includes [[Abuild_and_Helpers#apkbuild-pypi|Apkbuild-pypi]] -->
Line 59: Line 44:
   [[Abuild_helpers#apkgrel|Apkgrel]]
   [[Abuild_helpers#apkgrel|Apkgrel]]
   -->
   -->
* [[Creating an Alpine package]]
** [[Aports tree]] <!-- <== APKBUILD -->
  <!-- includes [[Setup your system and account for building packages]] -->
** [[Development using git:Developer repositories|Developer repositories]]
  <!-- 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]] -->
** [[Package policies]]
** [[Package policies]]
** [[Package Maintainers]]
** [[Package Maintainers]]
* [[Custom Kernel]]
** [[APKBUILD Reference]]
* [[APKBUILD Reference]]
** [[APKBUILD examples]]
* [[APKBUILD examples]]
* [[Creating patches|Creating and submitting patches]]
* [[Alpine package format]]
* [[Apkindex format]]
 
 
* [[Development using git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
** [[Development using git:Basic usage|Basic usage]]
** [[Package Maintainers]]
** [[Creating patches]]
** [[Development using git:Developer repositories|Developer repositories]]
** [[Development using git:Cgit|Cgit]]
** [[Cgit|Another cgit page]]


=== Misc ===
== Development tools ==


* [[Alpine Package Testing Suite]] ''work in progress''
* [[Development using git|Git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
* [[Alpine Release Testing Checklist]]
* [[Cgit|cgit]]
* [[Running glibc programs]]
** [[Development using git:Cgit|Cgit Basics]]
* [[Alpine Source Map by boot sequence]]


== Alpine Configuration Framework ==
== Alpine configuration framework ==
{{Draft|Needs to be organized/consolidated.}}
{{Draft|Needs to be organized/consolidated.}}


Line 106: Line 74:
* [[Writing ACF Controllers]] - Guide for writing a controller  
* [[Writing ACF Controllers]] - Guide for writing a controller  
* [[Writing ACF Models]] - Guide for writing a model
* [[Writing ACF Models]] - Guide for writing a model
* [[ACF css]]
* [[ACF css]]
* [[ACF packages]]
* [[ACF packages]]
Line 117: Line 84:
* [[Managing ACF]]
* [[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 ==


== Alpine-developed Utilities ==
* [[initramfs init]]
* [[Alpine Wall]] - [[How-To Alpine Wall]] - [[Alpine Wall User's Guide]] ''(a new firewall management framework)''
* [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically launch at next reboot)''
** [[Writing Init Scripts]]




[[Category:Development]]
[[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

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