summaryrefslogtreecommitdiff
path: root/net-vpn/freelan
diff options
context:
space:
mode:
Diffstat (limited to 'net-vpn/freelan')
-rw-r--r--net-vpn/freelan/Manifest10
-rw-r--r--net-vpn/freelan/files/boost158.patch41
-rw-r--r--net-vpn/freelan/files/boost163.patch24
-rw-r--r--net-vpn/freelan/files/gcc7.patch60
-rw-r--r--net-vpn/freelan/files/glibc225.patch21
-rw-r--r--net-vpn/freelan/files/mf.patch33
-rwxr-xr-xnet-vpn/freelan/files/openrc/freelan.initd12
-rw-r--r--net-vpn/freelan/files/prefix.patch81
-rw-r--r--net-vpn/freelan/freelan-2.0.ebuild62
-rw-r--r--net-vpn/freelan/metadata.xml11
10 files changed, 355 insertions, 0 deletions
diff --git a/net-vpn/freelan/Manifest b/net-vpn/freelan/Manifest
new file mode 100644
index 000000000000..3087652ac085
--- /dev/null
+++ b/net-vpn/freelan/Manifest
@@ -0,0 +1,10 @@
+AUX boost158.patch 1433 SHA256 691de01fa83ab4c7dca925949f659de6b7bd2260fc113d5d123b1c69c6ec27cb SHA512 862765ea32542275777a50ca0c6cc135525dc4cab8c6db184f85aaa24daf7e34ca809e6c9b7b52c49c68d5d3aade5d5e5c0eb60816f4f84d8fccf754e5841640 WHIRLPOOL 603aad7f69ebe4673130750291a643e47a4bf55c5a9e5e89def676a80514b083e8ad0aecb747bf5cb8e2d6d0c68950752c79bb0079fd7353b45c7bdeb7c4dbfc
+AUX boost163.patch 1448 SHA256 30f53c3ea4d1bd0da75c66ddffc6c426c070a4cf352a1129f3bd1f5116c19ed0 SHA512 ce67970a5d24314318c6c418178b154a7577e4568571129995961b318b087595bb7133d734c05e6d741836f99b2c978293fd786fc538b9a057fe9c85b164b318 WHIRLPOOL 310a4b5447a1f6a7b1ec379d987874608a7d19fefbd69d23b450439c97a3108aae6b60b4d915aed5e109ba7a55926ff013a0c9e737c150e2048805acbc8f41f1
+AUX gcc7.patch 1821 SHA256 5d98804200cf681c799dffe1a7b23714399b536e9561c49d7e4fd4a5e400d92b SHA512 8448139692db3fe01ae45fa36f378e036ff947f8e500bb97c74326bf27a28479bc1981ff16c1a15288905e0f3fd76b05d16588437038fc47abee23a77388f9ea WHIRLPOOL 9a703203cc59eb4adfed03b68340f8c1bd00d628e62938df39530ac9b604cc93d46b694f17ad0a3078dd9edb2e20f01b40b2045b31350081d3948733d13d25ff
+AUX glibc225.patch 710 SHA256 83bfefa3540a1c10d38d0465348d9bbbd52447fb141314ad1397c51234616e9a SHA512 150d3d259aa54575bf77b7ba97fb9e8bfad0d9eec14a82098a8ab6e1151696b93f90f9ba60b1570f22468806f3da26514cdfb12351071a7fbced4ba15dbac549 WHIRLPOOL af57b34b8208b2e7d414eefbf70450d12f58c053c2884aec438fe6fc03126f98ec8df6c16a25711d7a8ff866925602e4a0acafe21ac1164e38fff5590dffa47c
+AUX mf.patch 1004 SHA256 71962009bf97f0072660135fe5adf5697554104c68b01559deabb1c71f6ec859 SHA512 1753cd420ec43d3aab05b28326ebb41c43ce8d3437bfa3703bc90b3b86d0a65cfbba17aff3b99057900dc84bb54c815c0178441171ba51029aefec0a131f6313 WHIRLPOOL 5940116fa1b7986da4e1817446692ed89222dd2114fa6645651ea6daafa7324e1e21f75a15252260ebbcd74d885e6f0b560f127c69dd6fc5f5f139cfe14efdbf
+AUX openrc/freelan.initd 263 SHA256 f50f7925e427f266e4a810f9ec29bc184926cbb172252e907c27c9955f551dae SHA512 bf8ac87cbfdf83ab38e0a90f85d598abf25028682cd94b6b44de69d02daecf35d35403e2a3e63c10cb6a99f783f7a72bb58fd0e0cb00013c32fe2aba4b179f23 WHIRLPOOL e24e2e15877e925492803940fc3909981534adc886a35659a7835018b9c48c6c2a746689482702190d471d8b67938db5d28a5c3360302dfabcc70970cc1e0428
+AUX prefix.patch 3282 SHA256 8d3d4f3a0a51905ad4b4219b54558b12acc32a02ba1133e1fa614eeeb485724c SHA512 8a4751cd2cc9933e7fd3ae47c03292f2752416002b8ce6fe1ff651aa7c341d6195a640d51f0c88e25113084aeb4e2e88eef91f9b97936b46da6ec600d0efe799 WHIRLPOOL c08529e9fc2dd0a00e5ca19d743d61451582085d0b3c8d1e6f99744c121dd550c17bf615e5edda330f3dd902c67e251e4f9046e8fefe71b2079c07beca521686
+DIST freelan-2.0.tar.gz 4330112 SHA256 02fa5b4806655ca7ad24bdb265a7b79e2e8b900797dca1c87a157e76ec85f529 SHA512 72e5381fdad4d413f4f85c4789ad78c38360a300da6f49a3e8119fe2cacb7a7b05ce16ddcbfcdc008e1c2848c535648967e92f082338fdfb2c1b8e43f53291cc WHIRLPOOL ba51350692c510a689772cb75a03f0607d58898581d85d3c58f78191df72bb2a762ee14a6fcb0c49745170ddf015a49b090a679613dfc1d2b478dc35e2d9a7d8
+EBUILD freelan-2.0.ebuild 1370 SHA256 c53202963bc5eed123ab9f365bc72346ecdb501b187e66ff3ba3b504aeaf990d SHA512 5dbdb99545cadc5d840d6b0ae0f34e9e8082fbf8cd312f8f3dcad1ba89b480d396b826d8a7071b6f2caa4e713954592327ca830921913522e5536030d113205d WHIRLPOOL 548173c18440571c430bf755cda5b2932216e257c9644b3c1a2da91a55828edd396a39179da53044ceb345da4c7c4453efb79247e411f5331a23eb049c32ea26
+MISC metadata.xml 340 SHA256 37cc32014ec752dd3a7aeb74969f0d44ed6f01871d5c286cd55e2279f95c7c89 SHA512 864027adfa1b5b2947c04b737a862aabb9dee4f411d837489cad78bd0e46cd92d31a71ee1167dc938ec0dd23d8005dc1255df6d1b21820f05c3b420f1e280608 WHIRLPOOL 8dd329f979f48ddd02f3e2165e7cfcb76518076bc454196afe5685f3be8c92c1cff1d054ac65179c78cb1124ca8a3477af296ffc7a8ace09804e8a3cff11d43d
diff --git a/net-vpn/freelan/files/boost158.patch b/net-vpn/freelan/files/boost158.patch
new file mode 100644
index 000000000000..7d5bb740f7bd
--- /dev/null
+++ b/net-vpn/freelan/files/boost158.patch
@@ -0,0 +1,41 @@
+commit 68d18a5a7dd7fad8638409d46d144d33a30b54ce
+Author: Mihai Bişog <mihai.bisog@gmail.com>
+Date: Sat Aug 1 15:18:35 2015 +0300
+
+ Fixed compilation errors when compiling against boost 1.58
+
+diff --git a/libs/asiotap/include/asiotap/types/endpoint.hpp b/libs/asiotap/include/asiotap/types/endpoint.hpp
+index 125e1b4..318b7e6 100644
+--- a/libs/asiotap/include/asiotap/types/endpoint.hpp
++++ b/libs/asiotap/include/asiotap/types/endpoint.hpp
+@@ -350,6 +350,9 @@ namespace asiotap
+ */
+ std::istream& operator>>(std::istream& is, endpoint& value);
+
++// Note: this operator is defined in boost variant as of version 1.58. Keeping it around will
++// introduce overload resolution ambiguity.
++#if BOOST_VERSION < 105800
+ /**
+ * \brief Compare two endpoints.
+ * \param lhs The left argument.
+@@ -360,6 +363,7 @@ namespace asiotap
+ {
+ return !(lhs == rhs);
+ }
++#endif
+
+ /**
+ * \brief Get an endpoint with a default port.
+diff --git a/libs/freelan/src/curl.cpp b/libs/freelan/src/curl.cpp
+index 342bb79..392d734 100644
+--- a/libs/freelan/src/curl.cpp
++++ b/libs/freelan/src/curl.cpp
+@@ -146,7 +146,7 @@ namespace freelan
+
+ void curl::set_proxy(const asiotap::endpoint& proxy)
+ {
+- if (proxy != asiotap::hostname_endpoint::null())
++ if (proxy != asiotap::endpoint(asiotap::hostname_endpoint::null()))
+ {
+ set_option(CURLOPT_PROXY, static_cast<const void*>(boost::lexical_cast<std::string>(proxy).c_str()));
+ }
diff --git a/net-vpn/freelan/files/boost163.patch b/net-vpn/freelan/files/boost163.patch
new file mode 100644
index 000000000000..33636ef0d0b1
--- /dev/null
+++ b/net-vpn/freelan/files/boost163.patch
@@ -0,0 +1,24 @@
+Index: freelan-2.0/libs/freelan/src/core.cpp
+===================================================================
+--- freelan-2.0.orig/libs/freelan/src/core.cpp
++++ freelan-2.0/libs/freelan/src/core.cpp
+@@ -1766,7 +1766,8 @@ namespace freelan
+ {
+ m_logger(fscp::log_level::information) << "IPv4 address: " << m_configuration.tap_adapter.ipv4_address_prefix_length;
+
+- tap_config.ipv4.network_address = { m_configuration.tap_adapter.ipv4_address_prefix_length.address(), m_configuration.tap_adapter.ipv4_address_prefix_length.prefix_length() };
++ asiotap::base_ip_network_address<boost::asio::ip::address_v4> a(m_configuration.tap_adapter.ipv4_address_prefix_length.address(), m_configuration.tap_adapter.ipv4_address_prefix_length.prefix_length());
++ tap_config.ipv4.network_address = a;
+ }
+ else
+ {
+@@ -1778,7 +1779,8 @@ namespace freelan
+ {
+ m_logger(fscp::log_level::information) << "IPv6 address: " << m_configuration.tap_adapter.ipv6_address_prefix_length;
+
+- tap_config.ipv6.network_address = { m_configuration.tap_adapter.ipv6_address_prefix_length.address(), m_configuration.tap_adapter.ipv6_address_prefix_length.prefix_length() };
++ asiotap::base_ip_network_address<boost::asio::ip::address_v6> a(m_configuration.tap_adapter.ipv6_address_prefix_length.address(), m_configuration.tap_adapter.ipv6_address_prefix_length.prefix_length());
++ tap_config.ipv6.network_address = a;
+ }
+ else
+ {
diff --git a/net-vpn/freelan/files/gcc7.patch b/net-vpn/freelan/files/gcc7.patch
new file mode 100644
index 000000000000..71bcf3d9a841
--- /dev/null
+++ b/net-vpn/freelan/files/gcc7.patch
@@ -0,0 +1,60 @@
+commit 5014a8023b42762052d6417ebbc0cd2adb1fda90
+Author: Sebastien Vincent <sebastien.vincent@cppextrem.com>
+Date: Sat Aug 5 20:10:55 2017 +0200
+
+ Fixes compilation with g++-7.
+
+diff --git a/libs/asiotap/src/posix/posix_tap_adapter.cpp b/libs/asiotap/src/posix/posix_tap_adapter.cpp
+index 71377cee..cdd7abf3 100644
+--- a/libs/asiotap/src/posix/posix_tap_adapter.cpp
++++ b/libs/asiotap/src/posix/posix_tap_adapter.cpp
+@@ -206,6 +206,7 @@ namespace asiotap
+ {
+ result[name] = name;
+ }
++ break;
+ }
+ case tap_adapter_layer::ip:
+ {
+@@ -213,6 +214,7 @@ namespace asiotap
+ {
+ result[name] = name;
+ }
++ break;
+ }
+ }
+ }
+diff --git a/libs/netlinkplus/include/netlinkplus/endpoint.hpp b/libs/netlinkplus/include/netlinkplus/endpoint.hpp
+index 3503cae3..74fb7e1b 100644
+--- a/libs/netlinkplus/include/netlinkplus/endpoint.hpp
++++ b/libs/netlinkplus/include/netlinkplus/endpoint.hpp
+@@ -44,6 +44,8 @@
+
+ #pragma once
+
++#include <cstring>
++
+ #include <boost/asio.hpp>
+
+ #include <linux/netlink.h>
+@@ -125,17 +127,17 @@ namespace netlinkplus
+
+ friend bool operator==(const netlink_endpoint& lhs, const netlink_endpoint& rhs)
+ {
+- return (lhs.m_sockaddr == rhs.m_sockaddr);
++ return (std::memcmp(&lhs.m_sockaddr, &rhs.m_sockaddr, sizeof(sockaddr_nl)) == 0);
+ }
+
+ friend bool operator!=(const netlink_endpoint& lhs, const netlink_endpoint& rhs)
+ {
+- return (lhs.m_sockaddr != rhs.m_sockaddr);
++ return (std::memcmp(&lhs.m_sockaddr, &rhs.m_sockaddr, sizeof(sockaddr_nl)) != 0);
+ }
+
+ friend bool operator<(const netlink_endpoint& lhs, const netlink_endpoint& rhs)
+ {
+- return (lhs.m_sockaddr < rhs.m_sockaddr);
++ return (std::memcmp(&lhs.m_sockaddr, &rhs.m_sockaddr, sizeof(sockaddr_nl)) < 0);
+ }
+
+ private:
diff --git a/net-vpn/freelan/files/glibc225.patch b/net-vpn/freelan/files/glibc225.patch
new file mode 100644
index 000000000000..e21df29d1aec
--- /dev/null
+++ b/net-vpn/freelan/files/glibc225.patch
@@ -0,0 +1,21 @@
+commit 597b6eb65b4ea68f0fe8015db38ce68b71c280d7
+Author: Florian Lamprecht <florian_lamprecht@gmx.de>
+Date: Sun Mar 19 13:37:27 2017 +0100
+
+ Fix a compiler warning on linux
+
+ include a systemmacro explictly to avoid warning, which is handled as error.
+
+diff --git a/libs/asiotap/src/posix/posix_tap_adapter.cpp b/libs/asiotap/src/posix/posix_tap_adapter.cpp
+index 74e9eb2a..71377cee 100644
+--- a/libs/asiotap/src/posix/posix_tap_adapter.cpp
++++ b/libs/asiotap/src/posix/posix_tap_adapter.cpp
+@@ -56,7 +56,7 @@
+ #ifdef LINUX
+
+ #include <linux/if_tun.h>
+-
++#include <sys/sysmacros.h>
+ /**
+ * \struct in6_ifreq
+ * \brief Replacement structure since the include of linux/ipv6.h introduces conflicts.
diff --git a/net-vpn/freelan/files/mf.patch b/net-vpn/freelan/files/mf.patch
new file mode 100644
index 000000000000..c7e169f4e8a7
--- /dev/null
+++ b/net-vpn/freelan/files/mf.patch
@@ -0,0 +1,33 @@
+commit 4109bb053906f45b545a6cca4399734b91bca425
+Author: Julien Kauffmann <julien.kauffmann@freelan.org>
+Date: Sat May 9 16:55:51 2015 -0400
+
+ Fixed Makefile
+
+diff --git a/Makefile b/Makefile
+index d6bcd59..20b5ea1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,14 +1,15 @@
+ PRODUCT_NAME:=freelan
+-PRODUCT_VERSION:=$(shell git describe)
++PRODUCT_VERSION:=$(shell cat VERSION | tr -d '\r\n')
++PRODUCT_PREFIX=/usr
+
+-default: install
+-
+-install:
+- # Install the files to ${DESTDIR} (defaults to /)
+- scons install prefix=/
++default: build
+
+ build:
+- scons all samples
++ FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} scons --mode=release apps prefix=${PRODUCT_PREFIX}
++
++install:
++ # Install the files to $(DESTDIR) (defaults to /)
++ FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} DESTDIR=$(DESTDIR) scons --mode=release install prefix=${PRODUCT_PREFIX}
+
+ package:
+ git archive HEAD --prefix=${PRODUCT_NAME}-${PRODUCT_VERSION}/ | gzip > ${PRODUCT_NAME}-${PRODUCT_VERSION}.tar.gz
diff --git a/net-vpn/freelan/files/openrc/freelan.initd b/net-vpn/freelan/files/openrc/freelan.initd
new file mode 100755
index 000000000000..bab116d3db06
--- /dev/null
+++ b/net-vpn/freelan/files/openrc/freelan.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/bin/freelan"
+command_args="-s -p /var/run/freelan.pid"
+pidfile="/var/run/freelan.pid"
+
+depend() {
+ need net
+ use logger
+}
diff --git a/net-vpn/freelan/files/prefix.patch b/net-vpn/freelan/files/prefix.patch
new file mode 100644
index 000000000000..ac75e87fb1d1
--- /dev/null
+++ b/net-vpn/freelan/files/prefix.patch
@@ -0,0 +1,81 @@
+commit d782a42eaeecdce9b4377a7b41dc60b9fecca31c
+Author: Julien Kauffmann <julien.kauffmann@freelan.org>
+Date: Sat May 9 19:30:11 2015 -0400
+
+ Added support for a different binary prefix
+
+diff --git a/Makefile b/Makefile
+index 20b5ea1..b009d2c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,15 +1,16 @@
+ PRODUCT_NAME:=freelan
+ PRODUCT_VERSION:=$(shell cat VERSION | tr -d '\r\n')
+-PRODUCT_PREFIX=/usr
++PRODUCT_BIN_PREFIX=/usr
++PRODUCT_PREFIX=/
+
+ default: build
+
+ build:
+- FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} scons --mode=release apps prefix=${PRODUCT_PREFIX}
++ FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} scons --mode=release apps prefix=${PRODUCT_PREFIX} bin_prefix=${PRODUCT_BIN_PREFIX}
+
+ install:
+ # Install the files to $(DESTDIR) (defaults to /)
+- FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} DESTDIR=$(DESTDIR) scons --mode=release install prefix=${PRODUCT_PREFIX}
++ FREELAN_NO_GIT=1 FREELAN_NO_GIT_VERSION=${PRODUCT_VERSION} DESTDIR=$(DESTDIR) scons --mode=release install prefix=${PRODUCT_PREFIX} bin_prefix=${PRODUCT_BIN_PREFIX}
+
+ package:
+ git archive HEAD --prefix=${PRODUCT_NAME}-${PRODUCT_VERSION}/ | gzip > ${PRODUCT_NAME}-${PRODUCT_VERSION}.tar.gz
+diff --git a/SConstruct b/SConstruct
+index 32a9915..bc68b71 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -28,7 +28,7 @@ class FreelanEnvironment(Environment):
+ A freelan specific environment class.
+ """
+
+- def __init__(self, mode, prefix, **kwargs):
++ def __init__(self, mode, prefix, bin_prefix=None, **kwargs):
+ """
+ Initialize the environment.
+
+@@ -66,14 +66,19 @@ class FreelanEnvironment(Environment):
+
+ self.mode = mode
+ self.prefix = prefix
++ self.bin_prefix = bin_prefix if bin_prefix else prefix
+ self.destdir = self['ENV'].get('DESTDIR', '')
+
+ if self.destdir:
+ self.install_prefix = os.path.normpath(
+ os.path.abspath(self.destdir),
+ ) + self.prefix
++ self.bin_install_prefix = os.path.normpath(
++ os.path.abspath(self.destdir),
++ ) + self.bin_prefix
+ else:
+ self.install_prefix = self.prefix
++ self.bin_install_prefix = self.bin_prefix
+
+ if os.path.basename(self['CXX']) == 'clang++':
+ self.Append(CXXFLAGS=['-Qunused-arguments'])
+@@ -147,10 +152,15 @@ class FreelanEnvironment(Environment):
+ mode = GetOption('mode')
+ prefix = os.path.normpath(os.path.abspath(ARGUMENTS.get('prefix', './install')))
+
++if 'bin_prefix' in ARGUMENTS:
++ bin_prefix = os.path.normpath(os.path.abspath(ARGUMENTS['bin_prefix']))
++else:
++ bin_prefix = None
++
+ if mode in ('all', 'release'):
+- env = FreelanEnvironment(mode='release', prefix=prefix)
++ env = FreelanEnvironment(mode='release', prefix=prefix, bin_prefix=bin_prefix)
+ libraries, includes, apps, samples, configurations = SConscript('SConscript', exports='env', variant_dir=os.path.join('build', env.mode))
+- install = env.Install(os.path.join(env.install_prefix, 'bin'), apps)
++ install = env.Install(os.path.join(env.bin_install_prefix, 'bin'), apps)
+ install.extend(env.Install(os.path.join(env.install_prefix, 'etc', 'freelan'), configurations))
+
+ Alias('install', install)
diff --git a/net-vpn/freelan/freelan-2.0.ebuild b/net-vpn/freelan/freelan-2.0.ebuild
new file mode 100644
index 000000000000..eb641501a7e4
--- /dev/null
+++ b/net-vpn/freelan/freelan-2.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit scons-utils toolchain-funcs eutils
+
+DESCRIPTION="Peer-to-peer VPN software that abstracts a LAN over the Internet"
+HOMEPAGE="http://www.freelan.org/"
+SRC_URI="https://github.com/freelan-developers/freelan/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug"
+
+DEPEND="
+ dev-libs/boost:=[threads]
+ dev-libs/openssl:0=
+ net-misc/curl:=
+ virtual/libiconv
+"
+RDEPEND="${DEPEND}"
+
+FREELAN_NO_GIT=1
+FREELAN_NO_GIT_VERSION=${PV}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/boost158.patch" \
+ "${FILESDIR}/mf.patch" \
+ "${FILESDIR}/prefix.patch" \
+ "${FILESDIR}/boost163.patch" \
+ "${FILESDIR}/glibc225.patch" \
+ "${FILESDIR}/gcc7.patch"
+
+ sed -e "s/CXXFLAGS='-O3'/CXXFLAGS=''/" \
+ -e "s/CXXFLAGS=\['-Werror'\]/CXXFLAGS=[]/" \
+ -e "s/CXXFLAGS=\['-pedantic'\]/CXXFLAGS=[]/" \
+ -i SConstruct || die
+ epatch_user
+}
+
+src_compile() {
+ tc-export CXX CC AR
+ export LINK="$(tc-getCXX)"
+
+ local MYSCONS=(
+ "--mode=$(usex debug debug release)"
+ prefix="${EPREFIX:-/}"
+ bin_prefix="/usr"
+ apps
+ )
+ escons "${MYSCONS[@]}"
+}
+
+src_install() {
+ DESTDIR="${D}" escons --mode=release prefix="${EPREFIX:-/}" bin_prefix="/usr" install
+ dodoc CONTRIBUTING.md README.md
+
+ newinitd "${FILESDIR}/openrc/freelan.initd" freelan
+}
diff --git a/net-vpn/freelan/metadata.xml b/net-vpn/freelan/metadata.xml
new file mode 100644
index 000000000000..a3e769a44857
--- /dev/null
+++ b/net-vpn/freelan/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>aballier@gentoo.org</email>
+ <name>Alexis Ballier</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">freelan-developers/freelan</remote-id>
+ </upstream>
+</pkgmetadata>