• Stars
    star
    981
  • Rank 46,371 (Top 1.0 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VyOS image build scripts

VyOS toplevel build

For the most up-to-date documentation, please read the online build guide at docs.vyos.io.

What is VyOS

VyOS is an open source operating system for network devices (routers, firewalls and so on). If you want to use it in your network, check out download and installation instructions at https://docs.vyos.io/en/latest/installation/index.html

If you want to modify VyOS and/or join its development, read on.

About this repository

VyOS is a GNU/Linux distribution based on Debian. Just like any other distribution, it consists of multiple packages.

Some packages are taken from the upstream, while other are modified or written from scratch by VyOS developers. Every package maintained by the VyOS team has its own git repository. VyOS image build is therefore a multi-step process. Packages are compiled first, then an ISO is built from Debian packages and our own packages.

This is the top level repository that contains links to repositories with VyOS specific packages (organized as Git submodules) and scripts and data that are used for building those packages and the installation image.

Repository Structure

There are several directories with their own purpose:

  • build/ Used for temporary files used for the build and for build artifacts
  • data/ Data required for building the ISO (e.g. boot splash/configs)
  • packages/ This directory has two meanings. First it can hold arbitrary *.deb packages which will be embeded into the resulting ISO, but it also holds Jenkins Pipeline definitions for required VyOS packages. Among other things those packages will be: Linux Kernel, FRR, Netfiler...
  • scripts/ Scripts that are used for the build process
  • tools/ Scripts that are used for maintainer's tasks automation and other purposes, but not during ISO build process
  • vars/ Jenkins Pipeline library for reusable functions

Building VyOS

In order to have a single manual and not maintining multiple copies the instructions on how to build VyOS either in a Docker container or natively can be found in our Documentation - Build VyOS.

Development Branches

The default branch that contains the most recent VyOS code is called current rather than master. We know it's confusing, but it's not easy to fix. In a nutshell, the code we inherited from Vyatta Core had its master branch so out of sync with everything it was beyond any repair. Vyatta developers used to create a new branch not when a release is ready for code freeze, but rather before starting to work on a new release. This is hard to change in existing code, so this is just the way it is, for now.

All new code goes to the current branch. When it's time for a code freeze, a new branch is created for the release, and new code from current is backported to the release branch as needed.

In packages that originate from VyOS the master branch is kept in sync with current, but we still use current as default branch for uniformity. When the last legacy package is gone, we will switch to using the master branch and retire current.

Post-1.2.0 branches are named after constellations sorted by area from smallest to largest. There are 88 of them, here's the complete list.

  • VyOS 1.2: crux (Southern Cross)
  • VyOS 1.3: equuleus (Little Horse)
  • VyOS 1.4: sagitta (Arrow)
  • ...

More Repositories

1

vyos-1x

VyOS command definitions, scripts, and utilities
Python
407
star
2

vyos-documentation

VyOS readthedocs
Python
189
star
3

vyos-vm-images

Jinja
84
star
4

vyos.vyos

Ansible Network Collection for VyOS
Python
69
star
5

python-vyos-mgmt

A Python library for managing VyOS routers
Python
56
star
6

vyos-nightly-build

Scheduled ISO nightly builds for current branch
51
star
7

vyos

VyOS 2.0 development repository
Python
39
star
8

vyatta-cfg-system

Vyatta system-level configuration templates/scripts
Shell
38
star
9

vyatta-cfg

Vyatta configuration system
C++
29
star
10

vyconf

Software appliance configuration framework
OCaml
25
star
11

ipaddrcheck

An IPv4 and IPv6 validation utility for use in scripts
C
20
star
12

vyatta-cfg-firewall

Configuration templates and scripts for the firewall subsystem.
Perl
13
star
13

vyatta-bash

Vyatta shell based on GNU Bourne Again SHell
C
12
star
14

vyatta-cfg-vpn

Vyatta VPN configuration
Perl
12
star
15

vyos-utils-misc

Miscellaneous utilities and scripts for VyOS
Perl
11
star
16

vyos-cloud-init

Python
11
star
17

vyatta-cfg-quagga

Vyatta configuration templates and scripts for Quagga/FRR
Perl
10
star
18

vyatta-op

Vyatta bash completion for operational commands
Perl
10
star
19

vyos1x-config

OCaml library for parsing, manipulating, and exporting VyOS configs
OCaml
10
star
20

conntrack-tools

conntrack-tools i.e. conntrack and conntrackd
C
9
star
21

vyatta-cluster

Vyatta configuration/operational commands for clustering
Perl
9
star
22

vyatta-wanloadbalance

vyatta wan load balance project
C++
9
star
23

libvyosconfig

Shared library for VyOS config files parsing and manipulation
OCaml
8
star
24

vyos-opennhrp

VyOS version of OpenNHRP
C
7
star
25

vyatta-nat

Vyatta configuration/operational commands for NAT
Perl
6
star
26

vyatta-config-mgmt

Vyatta config management config & op templates/scripts
Perl
6
star
27

libnss-mapuser

Package for mapping radius users to local users
C
5
star
28

vyatta-op-vpn

Vyatta VPN operations mechanism
Perl
5
star
29

vyos-ansible-old

Ansible Network Collection for VyOS
Python
4
star
30

vyos-integration-test

Shell
4
star
31

vyos-salt-minion

Python
4
star
32

community.vyos.net

VyOS community website
Sass
4
star
33

vyos-automation

HCL
4
star
34

live-boot

Roff
3
star
35

cve-checker

VyOS security vulnerability checker
Python
3
star
36

uncron

Simple job queue service
OCaml
3
star
37

vyos-strongswan

C
3
star
38

vyatta-cfg-qos

Configuration templates and scripts for QoS
Perl
3
star
39

vyatta-op-qos

Operation templates and scripts for QoS
Perl
3
star
40

vyos-live-build

Shell
2
star
41

vyos-utils

Auxilliary utilities for VyOS (validators, etc.)
OCaml
2
star
42

vyatta-biosdevname

Vyatta version of the biosdevname utility
Shell
2
star
43

vyatta-conntrack

Vyatta configuration/operational commands for Conntrack
Perl
2
star
44

vyatta-zone

Vyatta zone-policy package
Perl
2
star
45

vyos-xe-guest-utilities

xe-guest-utilities debianized for vyos
Go
2
star
46

vyos-world

VyOS metapackage
2
star
47

vyos-ansible-collection

Ansible Network Collection for VyOS
Python
2
star
48

vyatta-op-firewall

Operatation command templates and scripts for the firewall subsystem.
Perl
2
star
49

vyos-infrastructure

Various scripts and automations for VyOS infrastructure tasks
Python
2
star
50

openvpn-duo-plugin

Python
1
star
51

infinitytier

Fork of ZeroTier
C++
1
star
52

libmnl

libmnl minimalistic netfilter library
Shell
1
star
53

initramfs-tools

Vyatta fork of initramfs-tools
Shell
1
star
54

vyos-http-api-tools

Python
1
star
55

vyos-nhrp

VyOS nhrp cfg and op package
Perl
1
star