No description
Find a file
Ariadne Conill 6730db5468
Merge pull request #127 from ifupdown-ng/bugfix/multicall-getopt
multicall: fix inappropriate use of getopt in the multicall stub
2020-11-19 03:33:19 -07:00
.github/workflows CI: install scdoc 2020-10-24 08:43:51 -06:00
cmd multicall: do not call getopt_long() inside the stub applet 2020-11-19 03:18:23 -07:00
dist example config: document auto_executor_selection setting 2020-11-04 11:21:42 -07:00
doc doc: ifparse: chase --yaml-raw -> -F yaml-raw change 2020-11-13 21:53:41 -07:00
executor-scripts executors: drop set -e, closes #121 2020-11-02 08:53:30 -07:00
libifupdown yaml-writer: constify 2020-11-13 21:35:12 -07:00
tests tests: add getopt regression test for multicall stub 2020-11-19 03:28:51 -07:00
.gitignore ifctrstat: Initial structure for new applet 2020-08-14 11:27:43 -05:00
CODE_OF_CONDUCT.md add code of conduct 2020-07-18 04:51:25 -06:00
COPYING initial commit 2020-07-18 01:17:51 -06:00
Kyuafile tests: start working on testing capabilities 2020-07-18 19:46:32 -06:00
Makefile doc: add ifparse manual page 2020-11-12 02:28:02 -07:00
README.md doc: Update build section in README 2020-10-14 00:12:24 +02:00

ifupdown-ng

ifupdown-ng is a network device manager that is largely compatible with Debian ifupdown, BusyBox ifupdown and Cumulus Networks' ifupdown2.

For more information read the admin guide.

Dependency Resolution

Dependency resolution example

ifupdown-ng uses a dependency resolver to determine interface bring-up order in a deterministic way.

This is accomplished through a combination of manual hinting using the requires keyword and dependency learning using native executors.

For compatibility with some legacy ifupdown executors, we also provide the requires keyword under other environment variables in some cases.

Caveats

  • ifupdown2 python plugins are not supported at this time. An executor could be written to handle them.

  • ifupdown-ng retains compatibility with /etc/network/if-X.d scripts, but will prefer using executors in /usr/libexec/ifupdown-ng where appropriate.

Building

On musl systems, simply do make and make install to build and install.

On glibc systems, you must install libbsd-dev or equivalent and additionally define LIBBSD_CFLAGS and LIBBSD_LIBS:

# instal packages
apt install build-essential libbsd0 libbsd-dev

# build ifupdown-ng
make LIBBSD_CFLAGS="$(pkg-config --cflags libbsd-overlay)" LIBBSD_LIBS="$(pkg-config --cflags --libs libbsd-overlay)"
make install

To run the tests, do make check. Running the checks requires kyua (apk add kyua, not packaged for Debian).

To build the documentation, do make docs and make install_docs. Building the documentation requires scdoc (apk add scdoc / apt install scdoc).

Discussion

Discuss ifupdown-ng on IRC: irc.as7007.net #ifupdown-ng