net-vpn/candy: new 4.0 ebuild with version and cflags env patch

Closes: https://github.com/gentoo/guru/pull/145

Signed-off-by: Xin Yang <yangmame@icloud.com>
Signed-off-by: David Roman <davidroman96@gmail.com>
This commit is contained in:
Xin Yang
2024-02-29 11:51:23 +08:00
committed by David Roman
parent 738f53ddf3
commit edb423f1db
3 changed files with 124 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST candy-3.9.1.tar.gz 37847 BLAKE2B af7c857a8a41f0e98bd744162be563b973e20a630fb505de91155ab9fb7a17679a2bb9f69db8c737258d1293c5d77ad96a65a2b22455512b8f97390a7368165f SHA512 aa9727c74ab7c9536331098f11a2837daa51aa58503cbf5b43536afedf5eea8d30db296f515c4689cf44c980eea5a88e06ad161836fe64d4146de4fdce9d99ac
DIST candy-4.0.tar.gz 43112 BLAKE2B 84c3fbab30dc1d40ba73e7c90a02bf6c13b9bb0de2339fe128c958242213986dc2c490c680032c98f9a3a849e237f1f22274b600e55ed94aea91d9529bf972bf SHA512 9f76ab338cec381e1421040055ba73882a32f6b2b9bebe8fbc289c1c0e418506a57698fa8e551a31a918dfbcfa668dbb6c1d82390a2496a7fe35d6a17adacd64

View File

@@ -0,0 +1,43 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake systemd
DESCRIPTION="Another virtual private network that supports peer-to-peer connections"
HOMEPAGE="https://github.com/lanthora/candy"
SRC_URI="https://github.com/lanthora/candy/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
DEPEND="
dev-libs/uriparser
dev-libs/libconfig
net-libs/ixwebsocket[ws]
dev-libs/openssl
sys-libs/zlib
dev-libs/libfmt
dev-libs/spdlog
"
RDEPEND="${DEPEND}"
src_prepare() {
eapply "${FILESDIR}/${P}-show-version-and-use-cflags-env.patch"
cmake_src_prepare
default
}
src_install(){
cmake_src_install
default
insinto /etc
doins candy.conf
fperms 0644 /etc/candy.conf
systemd_dounit candy.service
systemd_dounit candy@.service
}

View File

@@ -0,0 +1,80 @@
From de8f5a3109ee3bdc472fbc7fcb1572aaad0b8cb9 Mon Sep 17 00:00:00 2001
From: lanthora <lanthora@outlook.com>
Date: Thu, 29 Feb 2024 05:16:53 +0000
Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BA=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CMakeLists.txt | 10 ++++++----
src/main/main.cc | 13 +++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ebf2c0..dffc31d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.18.4)
-project(candy CXX)
+project(candy LANGUAGES CXX VERSION 4.0)
-set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++2b -Wall -Werror -Wfatal-errors -Wno-unknown-pragmas")
-set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g -fsanitize=address")
-set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O2")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++2b -Wall -Werror -Wfatal-errors -Wno-unknown-pragmas")
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address")
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
+
+add_compile_definitions(VERSION="${CMAKE_PROJECT_VERSION}")
include_directories(${CMAKE_SOURCE_DIR}/src)
diff --git a/src/main/main.cc b/src/main/main.cc
index 286d24d..65cdc4f 100644
--- a/src/main/main.cc
+++ b/src/main/main.cc
@@ -21,6 +21,10 @@
#include <argp.h>
+#ifndef VERSION
+#define VERSION "unknown"
+#endif
+
namespace {
struct arguments {
@@ -54,6 +58,7 @@ struct argp_option options[] = {
{"config", 'c', "PATH", 0, "Configuration file path"},
{"discovery", OPT_DISCOVERY_INTERVAL, "SECONDS", 0, "Active discovery broadcast interval"},
{"route", 'r', "COST", 0, "Cost of routing"},
+ {"version", 'v', 0, 0, "Show version"},
{"no-timestamp", OPT_NO_TIMESTAMP, 0, 0, "Log does not show time"},
{"debug", OPT_LOG_LEVEL_DEBUG, 0, 0, "Show debug level logs"},
{"auto-restart", OPT_AUTO_RESTART, 0, 0, "Automatic restart"},
@@ -72,6 +77,11 @@ int setLogLevelDebug() {
return 0;
}
+void showVersion() {
+ std::cout << VERSION << std::endl;
+ exit(0);
+}
+
bool needShowUsage(struct arguments *arguments, struct argp_state *state) {
if (state->arg_num > 0)
return true;
@@ -141,6 +151,9 @@ int parseOption(int key, char *arg, struct argp_state *state) {
case 'c':
parseConfigFile(arguments, arg);
break;
+ case 'v':
+ showVersion();
+ break;
case OPT_NO_TIMESTAMP:
disableLogTimestamp();
break;