Developer Documentation: Difference between revisions

From Alpine Linux
m (Change links to Repositories page)
m (updated wikilinks)
 
(11 intermediate revisions by 5 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]]
* [[Repositories#Upgrading_to_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 ==
* [[initramfs init]]
* [[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 ===
* [[Repositories#Upgrading_to_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]] <!-- 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]]-->
 
* [[Repositories#Upgrading_to_edge|Upgrading to Edge]] <!-- 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]]
** [[Create Alpine Linux PV DomU]]
** [[Create Alpine Linux PV DomU]]
** [[Xen LiveCD]]
** [[Xen LiveCD]]
<!--
* [[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]] -->


* [[Setting up a basic vserver]] <!-- only Installation -->
== Creating packages and patches==
* [[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]] -->


=== Building from source and creating packages ===
* [[Creating an Alpine package]]
 
  <!-- includes [[Setup your system and account for building packages]] -->
* [[Aports tree]] <!-- <== APKBUILD -->
  <!-- includes [[Newapkbuild]]
* [[Abuild and Helpers]] ''(Scripts for packaging)''
      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 60: Line 41:
   [[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 107: Line 71:
* [[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 118: Line 81:
* [[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)''


== Alpine-developed Utilities ==
== Design documents ==
* [[Alpine Wall]] - [[How-To Alpine Wall]] - [[Alpine Wall User's Guide]] ''(a new firewall management framework)''
* [[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]]


== Alpine Design Docs ==
* [[Architecture]]
* [[File Formats]]


[[Category:Development]]
[[Category:Development]]

Latest revision as of 05:14, 24 March 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

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 24 Mar 2025.)

Alpine Wall

Design documents

Misc

Package management

Init system