-
Notifications
You must be signed in to change notification settings - Fork 53
Contributing to Optware ng
This page briefly describes how you can contribute your patches to Optware-ng. For some starter guidelines on creating new packages see Adding a package to Optware ng
The official Optware-ng build machine (see http://jenkins.nas-admin.org/view/Optware) runs 64bit Ubuntu 16.04LTS with the following modifications:
-
Additional packages:
sudo apt install ant bc build-essential git subversion cvs texinfo m4 libglib2.0-dev \ flex bison yasm libxml2-dev ruby intltool unicode-data rcs gperf python-mako \ scons itstool libxml2-utils icon-naming-utils g++-multilib doxygen \ libgdk-pixbuf2.0-dev txt2man xmlto xsltproc docbook docbook-xsl asciidoc \ gcj-jdk cmake libncurses5-dev libx11-dev fakechroot p7zip-full lzip po4a
-
OpenJDK-7:
sudo add-apt-repository --yes ppa:openjdk-r/ppa && sudo apt update sudo apt install openjdk-7-jdk openjdk-7-jre
-
Java 8 (from Oracle):
sudo add-apt-repository --yes ppa:webupd8team/java && sudo apt update sudo apt install oracle-java8-installer
-
texinfo 4.13a (built and installed from source):
mkdir -p /tmp/texinfo && cd /tmp/texinfo curl -O http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz tar xvf texinfo-4.13a.tar.gz cd texinfo-4.13 ./configure && make && sudo make install
-
library fix-up (using symbolic links; needed for old
emacs
host build):for f in $(cd /usr/lib/x86_64-linux-gnu; ls *crt*.o); do sudo ln -s x86_64-linux-gnu/${f} /usr/lib/${f} done
You can either clone Optware-ng sourcecode directly with git clone https://github.com/Optware/Optware-ng.git
, or, if you plan to contribute to Optware-ng:
- Create yourself a github account, if you haven't got one already
- Fork Optware-ng repo
- Pull your fork with
git clone https://github.com/<you>/Optware-ng.git
- Push your local changes to your fork
- Send pull request(s) to Optware-ng
I can highly recommend smartgit as a git client with good github support. See here for a simple way to install it on Ubuntu
From your cloned Optware-ng source tree run these commands to setup a target:
$ make <platform>-target
$ cd <platform>; make directories toolchain ipkg-utils
where <platform>
is one of these: https://github.com/Optware/Optware-ng/blob/master/Optware_targets_list
All further commands should be issued from <platform>
dir.
Official build machine currently has 10 Cores and runs builds with make -j10
. Most of the Optware-ng packages respect -j
make switch and build with as many parallel jobs as requested, so you can make paralleled builds as well by appending make
command with -j<jobs>
.
$ make <package1> <package2> ...
$ make <package1>-ipk <package2>-ipk ...
$ make index
This will copy all built ipks to packages
dir and index them (create Packages*
indexes)
$ make
This will first make ipks for all packages for the target, and then index them. After successful build feed will be available in packages
dir.