Developer Documentation: Difference between revisions

From Alpine Linux
m (Zcrayfish moved page Category talk:Developer Documentation to Developer Documentation over redirect: The original move didn't make sense at all; it is resulting in excessive redirects.)
(added introduction paragraph, rearranged topics, commented out invalid links)
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 ==
== Package management ==
Line 22: Line 23:


== Development ==
== Development ==
* [[Aports tree]] <!-- <== APKBUILD -->
* [[Development using git:Developer repositories|Developer repositories]]
=== Configuring your system ===
=== 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 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]]
* [[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]]
Line 40: Line 43:
** [[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 58: Line 67:
   [[Abuild_helpers#apkgrel|Apkgrel]]
   [[Abuild_helpers#apkgrel|Apkgrel]]
   -->
   -->
* [[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]] -->
** [[Package policies]]
** [[Package policies]]
** [[Package Maintainers]]
** [[Package Maintainers]]
* [[Custom Kernel]]
** [[APKBUILD Reference]]
* [[APKBUILD Reference]]
** [[APKBUILD examples]]
* [[APKBUILD examples]]
** [[Alpine package format]]
* [[Alpine package format]]
** [[Apkindex format]]
* [[Apkindex format]]
* [[Creating patches|Creating and submitting patches]]


=== Tools ===


* [[Development using git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
* [[Development using git|Git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
** [[Development using git:Basic usage|Basic usage]]
* [[Cgit|cgit]]
** [[Package Maintainers]]
** [[Development using git:Cgit|Cgit Basics]]
** [[Creating patches]]
** [[Development using git:Developer repositories|Developer repositories]]
** [[Development using git:Cgit|Cgit]]
** [[Cgit|Another cgit page]]


=== Misc ===
=== Misc ===
Line 88: Line 87:
* [[Alpine Source Map by boot sequence]]
* [[Alpine Source Map by boot sequence]]
* [[Testing modified install images and packages]]
* [[Testing modified install images and packages]]
* [[Custom Kernel]]


== Alpine Configuration Framework ==
== Alpine Configuration Framework ==
Line 105: Line 105:
* [[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 116: Line 115:
* [[Managing ACF]]
* [[Managing ACF]]


 
== Alpine Wall  ==
== Alpine-developed Utilities ==
* [[Alpine Wall]]  
* [[Alpine Wall]] - [[How-To Alpine Wall]] - [https://git.alpinelinux.org/awall/about/ Alpine Wall User's Guide] ''(a firewall management framework)''
* [[How-To Alpine Wall]]  
* [https://git.alpinelinux.org/awall/about/ Alpine Wall User's Guide] ''(a firewall management framework)''


== Alpine Design Docs ==
== Alpine Design Docs ==

Revision as of 05:15, 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.

Package management

Init system

Development

Configuring your system

Creating packages and patches

Tools

Misc

Alpine Configuration Framework

This material is work-in-progress ...

Needs to be organized/consolidated.
(Last edited by Prabuanand on 18 Feb 2025.)

Alpine Wall

Alpine Design Docs