Merge pull request #236 from neilalexander/rpmspec

Add starting point for an RPM spec file
This commit is contained in:
Neil Alexander 2018-12-09 23:36:18 +00:00 committed by GitHub
commit 14f4da764c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 58 additions and 11 deletions

View File

@ -25,29 +25,29 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- in case of vulnerabilities. - in case of vulnerabilities.
--> -->
## [0.x.x] - TBD ## [0.3.0] - 2018-12-12
### Added ### Added
- Crypto-key routing support for both IPv4 and IPv6 - Crypto-key routing support for tunnelling both IPv4 and IPv6 over Yggdrasil
- Add `SwitchOptions` in configuration file for tuning the switch - Add advanced `SwitchOptions` in configuration file for tuning the switch
- Add `dhtPing` to the admin socket to aid in crawling the network - Add `dhtPing` to the admin socket to aid in crawling the network
- New macOS .pkgs built automatically by CircleCI - New macOS .pkgs built automatically by CircleCI
- Add Docker support - Add Dockerfile to repository for Docker support
- Add `-json` command line flag for generating and normalising configuration in plain JSON - Add `-json` command line flag for generating and normalising configuration in plain JSON instead of HJSON
- Build name and version numbers are now imprinted onto the build, accessible through `yggdrasil -version` and `yggdrasilctl getSelf` - Build name and version numbers are now imprinted onto the build, accessible through `yggdrasil -version` and `yggdrasilctl getSelf`
- Add ability to disable admin socket by setting `AdminListen` to `"none"` - Add ability to disable admin socket by setting `AdminListen` to `"none"`
### Changed ### Changed
- Switched to Chord DHT (instead of Kademlia, although protocol-compatible) - Switched to Chord DHT (instead of Kademlia, although still compatible at the protocol level)
- Admin socket clean-up (making some names consistent) - Cleaned up some of the parameter naming in the admin socket
- Latency-based parent selection for the switch instead of uptime-based - Latency-based parent selection for the switch instead of uptime-based (should help to avoid high latency links somewhat)
- Real peering endpoints now shown in the admin socket `getPeers` call - Real peering endpoints now shown in the admin socket `getPeers` call to help identify peerings
- Reuse the multicast port on supported platforms so that multiple Yggdrasil processes can run - Reuse the multicast port on supported platforms so that multiple Yggdrasil processes can run
- `yggdrasilctl` now has more useful help text (with `-help` or when no arguments passed) - `yggdrasilctl` now has more useful help text (with `-help` or when no arguments passed)
### Fixed ### Fixed
- Memory leaks in the DHT fixed - Memory leaks in the DHT fixed
- Crash where ICMPv6 NDP goroutine would incorrectly start in TUN mode fixed - Crash fixed where the ICMPv6 NDP goroutine would incorrectly start in TUN mode
- Remove peers from the switch table of they stop sending switch messages but keep the TCP connection alive - Removing peers from the switch table if they stop sending switch messages but keep the TCP connection alive
## [0.2.7] - 2018-10-13 ## [0.2.7] - 2018-10-13
### Added ### Added

View File

@ -0,0 +1,47 @@
Name: yggdrasil
Version: 0.3.0
Release: 1%{?dist}
Summary: End-to-end encrypted IPv6 networking
License: GPLv3
URL: https://yggdrasil-network.github.io
Source0: https://codeload.github.com/yggdrasil-network/yggdrasil-go/tar.gz/v0.3.0
%{?systemd_requires}
BuildRequires: systemd golang >= 1.11
%description
Yggdrasil is a proof-of-concept to explore a wholly different approach to
network routing. Whereas current computer networks depend heavily on very
centralised design and configuration, Yggdrasil breaks this mould by making
use of a global spanning tree to form a scalable IPv6 encrypted mesh network.
%prep
%setup -qn yggdrasil-go-%{version}
%build
./build -t -l "-linkmode=external"
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_sysconfdir}/systemd/system
install -m 0755 yggdrasil %{buildroot}/%{_bindir}/yggdrasil
install -m 0755 yggdrasilctl %{buildroot}/%{_bindir}/yggdrasilctl
install -m 0755 contrib/systemd/yggdrasil.service %{buildroot}/%{_sysconfdir}/systemd/system/yggdrasil.service
install -m 0755 contrib/systemd/yggdrasil-resume.service %{buildroot}/%{_sysconfdir}/systemd/system/yggdrasil-resume.service
%files
%{_bindir}/yggdrasil
%{_bindir}/yggdrasilctl
%{_sysconfdir}/systemd/system/yggdrasil.service
%{_sysconfdir}/systemd/system/yggdrasil-resume.service
%post
%systemd_post yggdrasil.service
%preun
%systemd_preun yggdrasil.service
%postun
%systemd_postun_with_restart yggdrasil.service