Developer Documentation: Difference between revisions

From Alpine Linux
(removed duplicates and moved links)
 
(34 intermediate revisions by 14 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]]
* [[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 boot at next reboot)''
** [[Multiple Instances of Services]]
* [[Writing Init Scripts]]
 
 
== Development ==
=== Configuring your system ===
* [[Edge|Upgrading to Edge]] <!-- Pkg and Dev and Installation -->
* [[Setup your system and account for building packages]] <!-- included in [[Creating an Alpine package]] -->
 
<!-- 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]]
* [[Installing Alpine Linux in a chroot]] <!-- only Installation -->
** [[Abuild_and_Helpers#abuild-keygen|Abuild-keygen]]-->
 
* [[Repositories#Upgrading_to_edge|Upgrading to Edge]] <!-- Pkg and Dev and Installation -->
* 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]]
* [[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]] ''(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 ===
* [[Aports tree]] <!-- <== APKBUILD -->
* [[Abuild]]
* [[Abuild tree|Abuild tree - Helpful scripts for Packaging]]
* [[Creating an Alpine package]]
* [[Creating an Alpine package]]
   <!-- includes [[Setup your system and account for building packages]] -->
   <!-- includes [[Setup your system and account for building packages]] -->
   <!-- includes [[Newapkbuild]]
   <!-- includes [[Newapkbuild]]
       To create the actual APKBUILD file newapkbuild can serve you a template to start with.
       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  
       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. -->
       file to the given directory, and fill some variables if those are provided. -->
** [[Apkbuild-cpan]]
  <!-- includes [[Local_APK_cache]] -->
** [[Apkbuild-pypi]]
** [[Abuild and Helpers]] ''(Scripts for packaging)''
 
  <!-- includes [[Abuild_and_Helpers#apkbuild-cpan|Apkbuild-cpan]] -->
* [[Buildrepo]]
  <!-- includes [[Abuild_and_Helpers#apkbuild-pypi|Apkbuild-pypi]] -->
* [[Abuild-keygen]] [[Creating keys for package signing]]
  <!--
* [[Abuild-sign]]
  [[Abuild_and_Helpers#buildrepo|Buildrepo]]
* [[Abuild-tar]]
  [[Abuild_and_Helpers#abuild-sign|Abuild-sign]]
* [[Abump]] [[Apkgrel]]
  [[Abuild_and_Helpers#abuild-tar|Abuild-tar]]
 
  [[Abuild_and_Helpers#abump|Abump]]
* [[Alpine package format]]
  [[Abuild_helpers#apkgrel|Apkgrel]]
* [[Apkindex format]]
  -->
* [[Package policies]]
** [[Aports tree]] <!-- <== APKBUILD -->
 
** [[Development using git:Developer repositories|Developer repositories]]
* [[APKBUILD Reference]]
** [[Package policies]]
* [[APKBUILD examples]]
 
* [[Development using git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
** [[Development using git:Basic usage|Basic usage]]
** [[Package Maintainers]]
** [[Package Maintainers]]
** [[Creating patches]]
** [[APKBUILD Reference]]
** [[Development using git:Developer repositories|Developer repositories]]
** [[APKBUILD examples]]
** [[Development using git:Cgit|Cgit]]
* [[Creating patches|Creating and submitting patches]]
** [[Cgit|Another cgit page]]


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


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


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


Line 102: 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 113: 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)''
== Design documents ==
* [[Architecture]]
* [[Apk spec]]
* [[Apkindex format]]
* [[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 05:38, 18 February 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 18 Feb 2025.)

Alpine Wall

Design documents

Misc

Package management

Init system