The Source Code

The code is stored inside a git tree which contains all branches and releases.

All repositories can be browsed online through GitHub.

Getting The LibreMesh Code

Any LibreMesh development happens in the lime-packages git repository which can be browsed on GitHub or downloaded using git:

git clone https://github.com/libremesh/lime-packages.git
cd lime-packages

The Web Presence

The pages you’re reading are generated from text files using the AsciiDoc suite plus Jekyll. Any changes made to the projects web site will be reflected in our web git repository.

In order to generate these pages locally:

git clone https://github.com/libremesh/lime-web.git
cd lime-web && bundle install
bundle exec jekyll serve

For more details, check the README on Github.

If you would like to contribute to the documentation then please send patches to our mailing list and use the prefix "doc:" in the patches subject.

Please use the AsciiDoc syntax for contributions on the web page.

Submitting Patches

We accept pull requests via GitHub. But patches can also be submitted via the dev mailing list.

Compiling LibreMesh from source code

First of all you need to get the OpenWrt source code

Download OpenWrt source code
git clone https://git.openwrt.org/openwrt/openwrt.git
Enter OpenWrt build root
cd openwrt
Checkout OpenWrt stable release
git checkout v18.06.2

Now you have the OpenWrt source code, building OpenWrt has a bunch of dependencies on your system, if you are unsure about your system having all the dependencies installed you can check if the following commands fails and look at the error messages, reading the build system installation page on OpenWrt wiki may help you too.

Optionallly attempt to run a few OpenWrt build tools to spot missing dependencies
scripts/feeds update -a
scripts/feeds install -a
make V=s menuconfig
make V=s

Now that you have your system ready, you can procede with:

Add LibreMesh repositories to the OpenWrt feeds
cp feeds.conf.default feeds.conf

cat << EOF >> feeds.conf

src-git libremesh https://github.com/libremesh/lime-packages.git;master
src-git libremap https://github.com/libremesh/libremap-agent.git;master
EOF
Update the packages from the feeds
scripts/feeds update -a
scripts/feeds install -a
Run the configuration menu
make menuconfig

Deselect problematic packages:

  • Base system → dnsmasq

  • Base system → firewall

  • Network → odhcpd

  • Network → odhcpd-ipv6only

Optionally deselect unused packages:

  • Network → ppp

  • Kernel modules → Network Support → kmod-ppp

Select LibreMesh packages:

  • LiMe → dnsmasq-distributed-hosts

  • LiMe → dnsmasq-lease-share

  • LiMe → lime-app

  • LiMe → lime-hwd-openwrt-wan

  • LiMe → lime-proto-anygw

  • LiMe → lime-proto-babeld

  • LiMe → lime-proto-batadv

  • LiMe → lime-proto-wan

  • LiMe → lime-system

  • LiMe → smonit

Save and exit

Finally compile the images
make -j$(nproc)

If everything goes well you should find the produced binaries inside the bin/ directory