From 011bf3b9f4ef9470ae97fd2b93857a2bdd4f94cb Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 26 Dec 2019 12:19:23 +0100 Subject: [PATCH] README: consolidate with INSTALL and rewrite Signed-off-by: Jason A. Donenfeld --- README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++--- src/INSTALL | 48 ---------------------------------- src/Makefile | 5 +--- 3 files changed, 71 insertions(+), 55 deletions(-) delete mode 100644 src/INSTALL diff --git a/README.md b/README.md index b8301e2..db5a4d5 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,77 @@ -# WireGuard — fast, modern, secure kernel VPN tunnel -#### by [Jason A. Donenfeld](mailto:Jason@zx2c4.com) of [Edge Security](https://www.edgesecurity.com/) +# [wireguard-tools](https://git.zx2c4.com/wireguard-tools/about/) — tools for configuring [WireGuard](https://www.wireguard.com/) -WireGuard is a novel VPN that runs inside the Linux Kernel and utilizes **state-of-the-art cryptography**. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. It runs over UDP. +This supplies the main userspace tooling for using and configuring WireGuard +tunnels, including the +[`wg(8)`](https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8) and +[`wg-quick(8)`](https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8) +utilities. This project supports Linux, OpenBSD, FreeBSD, macOS, Windows, and +Android. **More information may be found at [WireGuard.com](https://www.wireguard.com/).** +## Building + + $ cd src + $ make + +On Linux, [`libmnl`](https://netfilter.org/projects/libmnl/index.html) is +required. On Windows, the [MinGW](http://www.mingw.org/) compiler is required. +On other platforms, only a sane libc is required. + +## Installing + + # make install + +This command takes into account several environment variables: + + * `PREFIX` default: `/usr` + * `DESTDIR` default: + * `BINDIR` default: `$(PREFIX)/bin` + * `LIBDIR` default: `$(PREFIX)/lib` + * `MANDIR` default: `$(PREFIX)/share/man` + * `BASHCOMPDIR` default: `$(PREFIX)/share/bash-completion/completions` + * `RUNSTATEDIR` default: `/var/run` + * `PKG_CONFIG` default: `pkg-config` + + * `WITH_BASHCOMPLETION` default: [auto-detect] + * `WITH_WGQUICK` default: [auto-detect] + * `WITH_SYSTEMDUNITS` default: [auto-detect] + +The first section is rather standard. The second section is not: + + * `WITH_BASHCOMPLETION` decides whether or not bash completion files for the + tools are installed. This is just a nice thing for people who have bash. + If you don't have bash, or don't want this, set the environment variable + to `no`. If you'd like to force its use, even if bash-completion isn't + detected in `DESTDIR`, then set it to `yes`. + + * `WITH_WGQUICK` decides whether or not the wg-quick(8) script is installed. + This is a very quick and dirty bash script for reading a few extra + variables from wg(8)-style configuration files, and automatically + configures the interface. If you don't have bash, you probably don't want + this at all. Likewise, if you already have a working network management + tool or configuration, you probably want to integrate wg(8) or the direct + WireGuard API into your network manager, rather than using wg-quick(8). + But for folks who like simple quick and dirty scripts, this is nice. If you'd + like to force its use, even if bash isn't detected in DESTDIR, then set it + to `yes`. + + * `WITH_SYSTEMDUNITS` decides whether or not systemd units are installed for + wg-quick(8). If you don't use systemd, you certainly don't want this, and + should set it to `no`. If systemd isn't auto-detected, but you still would + like to install it, set this to `yes`. + +If you're a simple `make && make install` kind of user, you can get away with +not setting these variables and relying on the auto-detection. However, if +you're writing a package for a distro, you'll want to explicitly set these, +depending on what you want. + +## `contrib/` + +The `contrib/` subdirectory contains various scripts and examples. Most of these +are not immediately useful for production use, but should provide inspiration for +creating fully-featured tools. See the `README` in each directory. + ## License This project is released under the [GPLv2](COPYING). diff --git a/src/INSTALL b/src/INSTALL deleted file mode 100644 index cc80df5..0000000 --- a/src/INSTALL +++ /dev/null @@ -1,48 +0,0 @@ -Installation Makefile Target -============================ - - # make install - -This command takes into account several environment variables: - - * PREFIX default: /usr - * DESTDIR default: - * BINDIR default: $(PREFIX)/bin - * LIBDIR default: $(PREFIX)/lib - * MANDIR default: $(PREFIX)/share/man - * BASHCOMPDIR default: $(PREFIX)/share/bash-completion/completions - * RUNSTATEDIR default: /var/run - * PKG_CONFIG default: pkg-config - - * WITH_BASHCOMPLETION default: [auto-detect] - * WITH_WGQUICK default: [auto-detect] - * WITH_SYSTEMDUNITS default: [auto-detect] - -The first section is rather standard. The second section is not: - - * WITH_BASHCOMPLETION decides whether or not bash completion files for the - tools are installed. This is just a nice thing for people who have bash. - If you don't have bash, or don't want this, set the environment variable - to `no'. If you'd like to force its use, even if bash-completion isn't - detected in DESTDIR, then set it to `yes'. - - * WITH_WGQUICK decides whether or not the wg-quick(8) script is installed. - This is a very quick and dirty bash script for reading a few extra - variables from wg(8)-style configuration files, and automatically - configures the interface. If you don't have bash, you probably don't want - this at all. Likewise, if you already have a working network management - tool or configuration, you probably want to integrate wg(8) or the direct - WireGuard API into your network manager, rather than using wg-quick(8). - But for folks who like simple quick&dirty scripts, this is nice. If you'd - like to force its use, even if bash isn't detected in DESTDIR, then set it - to `yes'. - - * WITH_SYSTEMDUNITS decides whether or not systemd units are installed for - wg-quick(8). If you don't use systemd, you certainly don't want this, and - should set it to `no'. If systemd isn't auto-detected, but you still would - like to install it, set this to `yes'. - -If you're a simple `make && make install` kind of user, you can get away with -not setting these variables and relying on the auto-detection. However, if -you're writing a package for a distro, you'll want to explicitly set these, -depending on what you want. diff --git a/src/Makefile b/src/Makefile index 92ff52b..6bbed32 100644 --- a/src/Makefile +++ b/src/Makefile @@ -96,9 +96,6 @@ install: wg @[ "$(WITH_WGQUICK)" = "yes" -a "$(WITH_SYSTEMDUNITS)" = "yes" ] || exit 0; \ install -v -d "$(DESTDIR)$(SYSTEMDUNITDIR)" && install -v -m 0644 systemd/wg-quick@.service "$(DESTDIR)$(SYSTEMDUNITDIR)/wg-quick@.service" -help: - @cat INSTALL - -.PHONY: clean install help +.PHONY: clean install -include *.d