Using core tools of Evolinx


Requirements



To note


  • P_ROOT = Project root location ( the folder where environment is repo synced )
  • REPO_TYPE = core / extra / extra32 and etc
  • we also target x86_64 arch here with pkgbuild's

What will this guide cover


  • Building packages ( more detailed than the env setup guide has )
  • Adding updated/created packages to repo ( guide will show how its done to stable repo of evolinx "basically template how-to" )

Creating/Updating packages


Editing PKGBUILD
  • PKGBUILD files are located at: $P_ROOT/internal/pkgbuild/x86_64/{REPO_TYPE}
  • This is pretty much straight forward, though theres a requirement to have package folder with same name as pkgname=
glibc/PKBBUILD

---
pkgname=glibc
pkgver=666.666.666
...
---
  • and why? as build/toolset has package location search built this way for easier way to look up the PKGBUILD locations
Building the specific/multiple packages ( NATIVE )
  • Lets say you added/updated new package called librsvg
  • Then open up a terminal in $P_ROOT and execute this
// single package
$ ./envsetup -b librsvg

// Multiple packages ( pretty simple )
$ ./envsetup -b librsvg qt5
  • When package compile is done then new package is located at P_ROOT/out/pkgs/x86_64/REPO_TYPE/librsvg-2.57.0-1-x86_64.pkg.tar.gz
Building the specific/multiple packages ( DOCKER / Clean env build )
  • This is also pretty straight forward but with more options to build packages in clean environment

  • meaning that packages wouldnt have extra linkages for other deps that user/dev may have installed to the system

  • extra linkages cause other users to have segfaults or worse like missing .so file in system

  • Also all done packages will be in the same place as before without docker compile

  • Building with CORE docker image ( this is plain base-chroot docker env with some compilers included )

// -d option says the toolset to use docker for compiling
$. /envsetup -d -b librsvg
  • Building with KDE docker image ( this is base-chroot + qt5 and qt6 container, meant for packages that depend on qt* package ), it makes compiling these packages bit faster so qt packages wouldnt be needed to be reinstalled
// As seen then we have specified --kde arg before -d ( this is needed so -d can see the specified --kde option )
$ ./envsetup --kde -d -b kconfig

Adding created/updated packages to the repo


  • As of the recent new projects called repo_helper then adding newly made packages is easier and faster

  • This example here also supposes that you have all the repos like in evolinx available

  • run_update_all.sh ( contents)

ALLOW_LOGS=yes

if [ "$ALLOW_LOGS" == "yes" ]; then
    export SILENCE="&> /dev/null"
else
    export SILENCE=""
fi

repo="core cross_tools extra extra32 games gnome kde layers pentest perl proprietary python server xfce"
for repos in ${repo}
do
    echo "Running pkg update for $repos"
    echo " "

    cd $repos

    ./repo_update $SILENCE

    cd ..
done
  • the guide
$ cd repo/evolinx/

// This script cd's into all specified repos and runs ./repo_update ( seen at: http://files.martinvlba.eu/evolinx/core/ )
$ ./run_update_all.sh