Setting up development area
Requirements
- ( REQUIRED!!! ) For compiling and testing i highly recommend to use Evolinx system itself
- Use VM if you dont want to use Evolinx natively
- Good enough Desktop/Laptop to compile big projects
- Some common sense to understand things and how do they work
- Probably custom repo locally or globally to keep stuff up and organized
Setting up development area with tools
Choosing a place to develop in
- I strongly suggest to make separate ( Non admin ) user and use that user for development ( this keeps things clean )
- Now lets keep going ( guessing that new user is made and logged into )
- Open terminal and go into ~ ( home dir )
$ cd ~/Desktop
$ mkdir -p EVOLINX && cd EVOLINX
- Lets install required packages so we can go straight into cloning afterwards
- This step needs sudo access so be sure to edit /etc/sudoers file ( if not done earlier )
$ bottle -Syu --needed base-devel make cmake docker ninja meson llvm clang bash libisofs libisoburn fakeroot repo
- Cloning repos and running basic setup
- folder called tools/ will be the main head of the system for development
- it will
- compile packages ( natively )
- compile packages ( in docker env, so packages are clean compiled with no broken linkage to native system libs that dev may forgot to list in PKGBUILD )
- make iso images
// Initializing the project
$ repo init -u https://git.evolinx.eu/Evolinx/internal_manifest.git -b master
// Sync the env
$ repo sync --force-sync
$ ln -sf build/toolset/envsetup.sh envsetup
- Now lets see what the toolset can do
- Lets run help menu and see what it can provide
$ ./envsetup -h
- Heres a reference image how the output should look like

- Now lets test compile one of the packages as a test
- Lets say to you made changes to bottle and you wanna test it
- For that you made a fork in github and pushed changes there
- Now to test compile you need to change PKGBUILD src URL
- now run this in EVOLINX folder ( it will be the root folder for everything )
$ kwrite internal/pkgbuild/x86_64/core/bottle/PKGBUILD
# And change
source=(git+https://git.evolinx.eu/Evolinx/bottle.git#commit=$commitid)
# to
source=(git+https://git.evolinx.eu/newuser/bottle.git#commit=$commitid)
-
Now run this to test compile
-
If it compiled as needed then output of the pkg will locate in out/pkgs/x86_64/core/
-
Also you will see this, it means that
- Container that was used to compile bottle gets reset to original state and only if compile of bottle was success
- because compiling packages in docker gets bloated by that specific pkg dep list that is needed for compiling this pkg
- and if you compile other pkg also in that dirty container then that second pkg may get linked to old pkg dep that we don't want ( breaks everything " segmentation fault's" )
