[OpenIndiana-discuss] building software in OI

Tony Brian Albers tba at kb.dk
Mon Oct 12 08:23:07 UTC 2020


Hi Andreas,

What an excellent answer!

Thank you very much, I'll give it a shot.

/tony

On 10/09/20 04:50 PM, Andreas Wacknitz wrote:
> Am 09.10.20 um 16:05 schrieb Tony Brian Albers:
>> Hi,
>>
>> OK, this might just be me being dumb, but I can't find any info on how
>> to build applications from source to/on OI anywhere.
>>
>> If, for instance, I want to build xeyes, where do I find the necessary
>> header files etc? It's easy to get a hold of gcc etc. but I'm really
>> struggling finding -devel packages(like xorg-devel in Linux i.e.)
>>
>> Am I missing something obvious? I'm not a programmer, and the OI wiki's
>> description of oi-userland just confuses me. The github description
>> doesn't help either. It's vogon to me.
>>
>> TIA for any pointer/suggestions
>>
>> /tony
>>
> Hi Tony,
> 
> The recommended way to build applications on OI has been documented on
> our new (yet unfinished) Hipster Handbook in "Building with
> oi-userland": https://docs.openindiana.org/dev/userland/
> 
> A more precise formulation would be "build and deploy applications on
> OI" because when you have
> built a software eg. by compiling and linking all sources, you won't
> stop there but go on and create a package of it.
> 
> Using a fork of oi-userland will also make it possible for you to
> contribute to OI's development.
> 
> I assume that you are familiar with Github and have already an account
> there. If you don't you can only create
> local clones (no fork on Github).
> 
> The (simplified) steps look like this:
> 
> 1. Create your own fork of oi-userland
> (https://github.com/OpenIndiana/oi-userland) on GitHub by means of the
> "fork" button in the upper right corner.
>      You just have to answer some question in the following dialog.
> 
> 2. Create a local clone of it on your computer (copy the URI of your
> fork in your buffer via the green "Code" button in your Github fork):
>      cd <work directory for your oi work>
>      # Clone your own fork on Github. This creates a git remote with the
> name "origin":
>      git clone <paste the URI of your fork of oi-userland>
>      cd oi-userland
>      # Add OI's repository as a remote under the name "upstream"
>      git remote add upstream https://github.com/OpenIndiana/oi-userland.git
>      # Get everything from OI's repository:
>      git fetch upstream && git merge upstream/oi/hipster
>      # Prepare system:
>      gmake setup
> 
> 3. After you have successfully created a local clone of oi-userland with
> the remotes "origin" and "upstream" you are ready for working on it.
>      As a first step you should make yourself with the structure and
> contents of the repository.
>      There is a "doc" with valuable information to read (depending on
> your level of knowledge you will not grasp all at once).
>      The most important subfolder is "components" which holds a folder
> for every package of the repository (in the leave folders).
>      For every software you want to update or add to the repository
> follow the next steps:
> 3.1 cd <work directory of your oi work>
>        git pull upstream   # Make sure to sync with the newest from OI
>        git checkout -b <branch name for your work>  # Always create a
> new branch for your work, eg. "git checkout -b nodejs-update"
>        cd components   # All package "source descriptions" are either
> located here or in a sub folder
>        cd <folder of your application>   # eg. "cd runtime/node14". It
> may be necessary to create a new folder if you are starting from scratch
> for a new application
>        <create necessary files, like Makefile, <package manifest>, ...>
> 3.2 When you are done with your changes run one of the following
> commands (look at doc/makefile-targets.txt for explanations and more
> targets). Fix errors :)
>        gmake build
>        gmake sample-manifest
>        gmake publish  # This creates a new package revision in your
> local repository
> 3.3 When you are done with everything you will add all new or changed
> files and commit it to your repository:
>          git add <files>
>          git commit -m "<enter a commit message here>" # This will add a
> commit on your local repository in the active branch (from3.1).
>        When you want to publish your additions/changes the next step
> would be to upload your commit(s) to your own fork on Github:
>          git push origin <branch name>:<branch name>   # eg. "git push
> origin nodejs-update:nodejs-update"
> 3.4 If you want to add to OI's repository you can create a Pull Request
> (PR) when you log in to Github.
> 
> 
> It will take some time to get familiar with this but I think it's worth
> the efforts.
> 
> Andreas
> 
> _______________________________________________
> openindiana-discuss mailing list
> openindiana-discuss at openindiana.org
> https://openindiana.org/mailman/listinfo/openindiana-discuss


-- 
Tony Albers - Systems Architect - IT Development Royal Danish Library, 
Victor Albecks Vej 1, 8000 Aarhus C, Denmark
Tel: +45 2566 2383 - CVR/SE: 2898 8842 - EAN: 5798000792142


More information about the openindiana-discuss mailing list