mirror of
https://github.com/Snigdha-OS/documentation.git
synced 2025-09-06 19:15:12 +02:00
49 lines
36 KiB
HTML
49 lines
36 KiB
HTML
<!doctype html>
|
||
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-dev_guide/pkgbuild" data-has-hydrated="false">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="generator" content="Docusaurus v3.1.1">
|
||
<title data-rh="true">PKGBUILD Template | SNIGDHA OS - DOCS</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://snigdhaos.org/documentation/img/docusaurus-social-card.jpg"><meta data-rh="true" name="twitter:image" content="https://snigdhaos.org/documentation/img/docusaurus-social-card.jpg"><meta data-rh="true" property="og:url" content="https://snigdhaos.org/documentation/dev_guide/pkgbuild"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="PKGBUILD Template | SNIGDHA OS - DOCS"><meta data-rh="true" name="description" content="Snigdha OS has it's own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template."><meta data-rh="true" property="og:description" content="Snigdha OS has it's own PKGBUILD template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the PKGBUILD template."><link data-rh="true" rel="icon" href="/documentation/img/snigdhaos-icon-docs.ico"><link data-rh="true" rel="canonical" href="https://snigdhaos.org/documentation/dev_guide/pkgbuild"><link data-rh="true" rel="alternate" href="https://snigdhaos.org/documentation/dev_guide/pkgbuild" hreflang="en"><link data-rh="true" rel="alternate" href="https://snigdhaos.org/documentation/dev_guide/pkgbuild" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/documentation/blog/rss.xml" title="SNIGDHA OS - DOCS RSS Feed">
|
||
<link rel="alternate" type="application/atom+xml" href="/documentation/blog/atom.xml" title="SNIGDHA OS - DOCS Atom Feed"><link rel="stylesheet" href="/documentation/assets/css/styles.b4fa5040.css">
|
||
<script src="/documentation/assets/js/runtime~main.865477bf.js" defer="defer"></script>
|
||
<script src="/documentation/assets/js/main.a134f30e.js" defer="defer"></script>
|
||
</head>
|
||
<body class="navigation-with-keyboard">
|
||
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/documentation/"><div class="navbar__logo"><img src="/documentation/img/snigdhaos-face.svg" alt="Snigdha OS Docs Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/documentation/img/snigdhaos-face.svg" alt="Snigdha OS Docs Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">DOCUMENTATION | SNIGDHA OS</b></a></div><div class="navbar__items navbar__items--right"><div class="navbarSearchContainer_Bca1"></div><a href="https://snigdhaos.org/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Home<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://snigdha-os.github.io/snigdhaos-status/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Status<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="http://snigdha-os.github.io/documentation/privacy_policy" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Privacy Policy<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><a href="https://github.com/Snigdha-OS/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link navbar__icon navbar__github"><i class="fa fa-github"></i></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/introduction">Introduction</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/">Introduction</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/name_and_story">Story & Name</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/code_of_conduct">Code Of Conduct</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/release_notes">Release Notes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/reporting_bugs">Reporting Bugs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/faqs">Frequently Asked</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/contributing">Contribution Guidelines</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/coding-standard">Coding Standard</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/introduction/motivation">Aim & Motivation</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/before-installation">Before Installation</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/before_installation/system_requirements">System Requirements</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/before_installation/imporatnt_notes">Important Notes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/before_installation/internet_connection">Internet Connection</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/installation">Installation</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/download_snigdha_os">Download Snigdha OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/making_bootable_usb">Make Bootable USB</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/live_env">Live Environment</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/offline_install">Offline Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/online_install">Online Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/start_installation">Install Snigdha OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/installation/virtualbox_installation">Virtualbox</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/post-installation">Post Installation</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/post_installation/language">Language</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/post_installation/update">Update Snigdha OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/post_installation/customization">Customize Snigdha OS</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/post_installation/install_packages">Install Packages</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/user-guide">User Guide</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/user_guide/cheetsheet">Cheetsheet/Shortcuts</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/user_guide/aur">Installing with AUR</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/troubleshoot">Troubleshoot</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/troubleshoot/wifi">Troubleshoot: Wifi</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/troubleshoot/bluetooth">Troubleshoot: Bluetooth</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/troubleshoot/sound">Troubleshoot: Sound</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/troubleshoot/display">Troubleshoot: Display</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/packages">Packages</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/packages/snigdhaos_welcome">Welcome</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/packages/snigdhaos_blackbox">Blackbox</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--active" href="/documentation/category/developers-guide">Developers Guide</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/dev_guide/build_source">Build From Source</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/documentation/dev_guide/pkgbuild">PKGBUILD Template</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/dev_guide/gpg_key">Generate GPG Key</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/dev_guide/deploy_packages">Upload & Deploy Packages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/dev_guide/install_keyring">Install Keyrings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/dev_guide/write">Writing Documentation</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link" href="/documentation/category/tools">Tools</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/documentation/tools/dns">Tool: DNS Enum</a></li></ul></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/documentation/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/documentation/category/developers-guide"><span itemprop="name">Developers Guide</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">PKGBUILD Template</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>PKGBUILD Template</h1>
|
||
<p>Snigdha OS has it's own <code>PKGBUILD</code> template for building packages. We follow the the template so that we can maintain the packages in a better way. If you are building packages for Snigdha OS, then it will be a good option to follow the <code>PKGBUILD</code> template.</p>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-is-pkgbuild">What is PKGBUILD?<a href="#what-is-pkgbuild" class="hash-link" aria-label="Direct link to What is PKGBUILD?" title="Direct link to What is PKGBUILD?"></a></h2>
|
||
<p>In Arch Linux or Snigdha OS, <code>PKGBUILD</code> is a script used to build packages. It contains metadata about the package as well as instructions on how to compile or otherwise obtain the necessary files to create a package. <code>PKGBUILD</code> scripts are used with the <code>makepkg</code> utility to create packages in the Arch Linux package format (<code>.pkg.tar.xz</code>). But in <strong>Snigdha OS</strong> our package format will be <strong><code>.pkg.tar.zst</code></strong>.</p>
|
||
<p><strong>PKGBUILD</strong> typically includes information such as the package name, version, dependencies, build instructions, and optional parameters. They allow users to easily create custom packages from source code or other files, which can then be installed using the package manager (<code>pacman</code>).</p>
|
||
<p>Using <code>PKGBUILD</code> scripts provides a standardized and reproducible way to create packages, ensuring consistency across the Arch Linux ecosystem. Additionally, the Arch User Repository (AUR) relies heavily on <code>PKGBUILD</code> scripts submitted by users to build and distribute packages that are not available in the official repositories. Since <strong>Snigdha OS</strong> also comes in <strong>Arch Linux</strong> ecosystem, we also rely on Arch User Repository for packages.</p>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="a-simple-pkgbuild">A simple PKGBUILD<a href="#a-simple-pkgbuild" class="hash-link" aria-label="Direct link to A simple PKGBUILD" title="Direct link to A simple PKGBUILD"></a></h2>
|
||
<p>Writing a <code>PKGBUILD</code> for Arch Linux and Snigdha OS involves several key steps. Below is a basic example of a <code>PKGBUILD</code> for a fictitious application called "exampleapp." This example assumes that "exampleapp" is a simple Python application with a <code>setup.py</code> file for installation.</p>
|
||
<div class="language-PKGBUILD language-pkgbuild codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-pkgbuild codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Maintainer: Your Name <your_email@example.com></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgname=exampleapp</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgver=1.0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgrel=1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgdesc="A simple example application"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">arch=('any')</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">url="https://example.com/exampleapp"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">license=('MIT')</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">depends=('python')</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">source=("https://example.com/exampleapp/exampleapp-${pkgver}.tar.gz")</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">build() {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> cd "${srcdir}/exampleapp-${pkgver}"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> python setup.py build</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">package() {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> cd "${srcdir}/exampleapp-${pkgver}"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> python setup.py install --root="${pkgdir}/" --optimize=1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Checksums, uncomment these lines and provide the correct checksums:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># sha256sums=('SKIP')</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
|
||
<p>Here's a breakdown of the sections:</p>
|
||
<ol>
|
||
<li>
|
||
<p><strong>Metadata</strong>: This section defines metadata about the package, including its name (<code>pkgname</code>), version (<code>pkgver</code>), release number (<code>pkgrel</code>), description (<code>pkgdesc</code>), architecture (<code>arch</code>), URL (<code>url</code>), and license (<code>license</code>). These fields are essential for identifying and describing the package.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Dependencies</strong>: The <code>depends</code> array lists the runtime dependencies required for the package to function correctly. You should include any libraries or packages that your application relies on.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Source</strong>: The <code>source</code> array specifies where to download the source code for the application. In this example, the source is assumed to be a tarball available at a URL. You may need to adjust this section based on the source code's location and format.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Build() function</strong>: This function contains the commands needed to build the package. It typically involves navigating to the source directory (<code>${srcdir}</code>) and running build commands specific to your application. In this example, we're assuming a Python application with a <code>setup.py</code> file, so we use <code>python setup.py build</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Package() function</strong>: This function contains the commands needed to install the package into the package directory (<code>${pkgdir}</code>). It typically involves navigating to the source directory and running installation commands. Here, we're assuming a Python application with a <code>setup.py</code> file, so we use <code>python setup.py install</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Checksums</strong>: Uncomment the <code>sha256sums</code> array and provide the correct checksum for the source tarball. This ensures that the source hasn't been tampered with.</p>
|
||
</li>
|
||
</ol>
|
||
<p>Once you've written the <code>PKGBUILD</code>, save it to a file named <code>PKGBUILD</code> and place it in a directory with the same name as the package. You can then use the <code>makepkg</code> command to build the package:</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">$ makepkg</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
|
||
<p>This command will generate a <code>.pkg.tar.zst</code> file containing the built package, which you can then install using <code>pacman</code>.</p>
|
||
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="snigdha-os-pkgbuild">Snigdha OS PKGBUILD<a href="#snigdha-os-pkgbuild" class="hash-link" aria-label="Direct link to Snigdha OS PKGBUILD" title="Direct link to Snigdha OS PKGBUILD"></a></h2>
|
||
<p>Here is the PKGBUILD Template we follow specifically for Snigdha OS.</p>
|
||
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Maintainer: Your Name <your_email@provider.com></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgname=</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">org=Snigdha-OS # The username/organization username where you upload the Source Code. </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">branch=master # Your GitHub/GitLab/Gitea repository branch. Possible values: master, main, devlopment</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgver= # Initiate it with 1.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgrel= # Initiate it with 1.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgdesc='' # A short description of your package.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">arch=('') # Possible options: any,x86_64, arm64 etc.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">url="" # Your package source code URL </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">license=('') # Possible options: MIT, GPL, AGPL, custom</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">makedepends=('') # Dependency it install or run the package</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">source=("") # The source of the package </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sha256sums=('') # checksums</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">install=$pkgname.install # Further instuction after installing/building the package.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pkgver() {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># Since we maintain the package version with the github repository commit count an the last commit, we use pkgver() function.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># It is a good option the maintain the package version. Somtimes I forgot to change the version.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">package() {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> # Your package function goes here with instructions to build the package. </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/Snigdha-OS/documentation/tree/master/docs/dev_guide/pkgbuild.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/documentation/dev_guide/build_source"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Build From Source</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/documentation/dev_guide/gpg_key"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Generate GPG Key</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-pkgbuild" class="table-of-contents__link toc-highlight">What is PKGBUILD?</a></li><li><a href="#a-simple-pkgbuild" class="table-of-contents__link toc-highlight">A simple PKGBUILD</a></li><li><a href="#snigdha-os-pkgbuild" class="table-of-contents__link toc-highlight">Snigdha OS PKGBUILD</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">© 2024 SNIGDHA OS. ALL RIGHTS RESERVED.</div></div></div></footer></div>
|
||
</body>
|
||
</html> |