WireGuard Archive on lore.kernel.org
 help / color / Atom feed
* organization of wireguard linux kernel repos moving forward
@ 2019-12-09 11:56 Jason A. Donenfeld
  2019-12-09 12:43 ` Toke Høiland-Jørgensen
  2019-12-26 17:45 ` Jason A. Donenfeld
  0 siblings, 2 replies; 7+ messages in thread
From: Jason A. Donenfeld @ 2019-12-09 11:56 UTC (permalink / raw)
  To: WireGuard mailing list, Netdev

[Cross-posted to wireguard mailing list and netdev.]

Hey folks,

With WireGuard in net-next, it's time to break up the monolithic repo
we've been using for development into something a bit more manageable
and in line with ordinary kernel development.

Right now the "WireGuard.git" repo has been structured as an out of
tree module, alongside a subdirectory for tools, one for scripts, one
for tests, and another for a super gnarly compat layer that makes the
thing work on all kernels going back to 3.10. We're going to break
this up into three repositories:

1) wireguard-linux.git will be a full Linux tree, with wireguard
changes, and regularly merge in net/net-next, and have things from
there posted on netdev like usual for review. This repo won't be an
out of tree module any more, obviously. This lives at:
https://git.zx2c4.com/wireguard-linux/
https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-linux.git/

2) wireguard-tools.git will have the userspace utilities and scripts,
such as wg(8) and wg-quick(8), and be easily packageable by distros.
This repo won't be live until we get a bit closer to the 5.6 release,
but when it is live, it will live at:
https://git.zx2c4.com/wireguard-tools/ [currently 404s]
https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-tools.git/
[currently 404s]

3) wireguard-linux-compat.git will be an out-of-tree module containing
the aforementioned horrific compat.h layer. New development will go
into upstream wireguard-linux.git, but we'll do our best to keep
things mostly working for as long as it makes sense and is feasible.
This repo won't be live until we get a bit closer to the 5.6 release,
but when it is live, it will live at:
https://git.zx2c4.com/wireguard-linux-compat/ [currently 404s]
https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-linux-compat.git/
[currently 404s]

Since 5.6 is a long ways off, we'll probably have a few more snapshots
posted out of the monolithic WireGuard.git repo, but in the next few
months we'll be transitioning things over and working with distro
packagers to make sure the new tarball URLs for the tools are all set.

The CI that runs on build.wireguard.com will also see some updates to
reflect these adjustments, and also more closely align with the
net-next tree. Additionally, I'm interested to see if I can make our
CI useful for a variety of things in net/ and drivers/net/ instead of
just for wireguard.

More generally, wireguard linux development will be moving to the
release cadence, development, and review practices of netdev, rather
than living sequestered as an out-of-tree snapshot-only thing.

Regards,
Jason
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 11:56 organization of wireguard linux kernel repos moving forward Jason A. Donenfeld
@ 2019-12-09 12:43 ` Toke Høiland-Jørgensen
  2019-12-09 12:49   ` Jason A. Donenfeld
  2019-12-26 17:45 ` Jason A. Donenfeld
  1 sibling, 1 reply; 7+ messages in thread
From: Toke Høiland-Jørgensen @ 2019-12-09 12:43 UTC (permalink / raw)
  To: Jason A. Donenfeld, WireGuard mailing list, Netdev

"Jason A. Donenfeld" <Jason@zx2c4.com> writes:

> 2) wireguard-tools.git will have the userspace utilities and scripts,
> such as wg(8) and wg-quick(8), and be easily packageable by distros.
> This repo won't be live until we get a bit closer to the 5.6 release,
> but when it is live, it will live at:
> https://git.zx2c4.com/wireguard-tools/ [currently 404s]
> https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-tools.git/
> [currently 404s]

Any plans for integrating this further with iproute2? One could imagine
either teaching 'ip' about the wireguard-specific config (keys etc), or
even just moving the 'wg' binary wholesale into iproute2?

-Toke
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 12:43 ` Toke Høiland-Jørgensen
@ 2019-12-09 12:49   ` Jason A. Donenfeld
  2019-12-09 16:01     ` Toke Høiland-Jørgensen
  2019-12-09 16:18     ` David Ahern
  0 siblings, 2 replies; 7+ messages in thread
From: Jason A. Donenfeld @ 2019-12-09 12:49 UTC (permalink / raw)
  To: Toke Høiland-Jørgensen; +Cc: Netdev, WireGuard mailing list

On Mon, Dec 9, 2019 at 1:43 PM Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>
> "Jason A. Donenfeld" <Jason@zx2c4.com> writes:
>
> > 2) wireguard-tools.git will have the userspace utilities and scripts,
> > such as wg(8) and wg-quick(8), and be easily packageable by distros.
> > This repo won't be live until we get a bit closer to the 5.6 release,
> > but when it is live, it will live at:
> > https://git.zx2c4.com/wireguard-tools/ [currently 404s]
> > https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-tools.git/
> > [currently 404s]
>
> Any plans for integrating this further with iproute2? One could imagine
> either teaching 'ip' about the wireguard-specific config (keys etc), or
> even just moving the 'wg' binary wholesale into iproute2?

I'd definitely be interested in this. Back in 2015, that was the plan.
Then it took a long time to get to where we are now, and since then
wg(8) has really evolved into its own useful thing. The easiest thing
would be to move wg(8) wholesale into iproute2 like you suggested;
that'd allow people to continue using their infrastructure and whatnot
they've used for a long time now. A more nuanced approach would be
coming up with a _parallel_ iproute2 tool with mostly the same syntax
as wg(8) but as a subcommand of ip(8). Originally the latter appealed
to me, but at this point maybe the former is better after all. I
suppose something to consider is that wg(8) is actually a
cross-platform tool now, with a unified syntax across a whole bunch of
operating systems. But it's also just boring C.
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 12:49   ` Jason A. Donenfeld
@ 2019-12-09 16:01     ` Toke Høiland-Jørgensen
  2019-12-09 16:18     ` David Ahern
  1 sibling, 0 replies; 7+ messages in thread
From: Toke Høiland-Jørgensen @ 2019-12-09 16:01 UTC (permalink / raw)
  To: Jason A. Donenfeld; +Cc: Netdev, WireGuard mailing list

"Jason A. Donenfeld" <Jason@zx2c4.com> writes:

> On Mon, Dec 9, 2019 at 1:43 PM Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>>
>> "Jason A. Donenfeld" <Jason@zx2c4.com> writes:
>>
>> > 2) wireguard-tools.git will have the userspace utilities and scripts,
>> > such as wg(8) and wg-quick(8), and be easily packageable by distros.
>> > This repo won't be live until we get a bit closer to the 5.6 release,
>> > but when it is live, it will live at:
>> > https://git.zx2c4.com/wireguard-tools/ [currently 404s]
>> > https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/wireguard-tools.git/
>> > [currently 404s]
>>
>> Any plans for integrating this further with iproute2? One could imagine
>> either teaching 'ip' about the wireguard-specific config (keys etc), or
>> even just moving the 'wg' binary wholesale into iproute2?
>
> I'd definitely be interested in this. Back in 2015, that was the plan.
> Then it took a long time to get to where we are now, and since then
> wg(8) has really evolved into its own useful thing. The easiest thing
> would be to move wg(8) wholesale into iproute2 like you suggested;
> that'd allow people to continue using their infrastructure and whatnot
> they've used for a long time now. A more nuanced approach would be
> coming up with a _parallel_ iproute2 tool with mostly the same syntax
> as wg(8) but as a subcommand of ip(8). Originally the latter appealed
> to me, but at this point maybe the former is better after all. I
> suppose something to consider is that wg(8) is actually a
> cross-platform tool now, with a unified syntax across a whole bunch of
> operating systems.

Hmm, I don't really have any opinion about which approach makes the most
sense; I'm primarily concerned with getting the support into iproute2 so
that it is possible to set up and configure a wireguard tunnel "out of
the box". Both approaches would achieve that, I think...

> But it's also just boring C.

Well, we could always rewrite it in Rust or something? ;)

-Toke
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 12:49   ` Jason A. Donenfeld
  2019-12-09 16:01     ` Toke Høiland-Jørgensen
@ 2019-12-09 16:18     ` David Ahern
  2019-12-09 16:36       ` Toke Høiland-Jørgensen
  1 sibling, 1 reply; 7+ messages in thread
From: David Ahern @ 2019-12-09 16:18 UTC (permalink / raw)
  To: Jason A. Donenfeld, Toke Høiland-Jørgensen
  Cc: Stephen Hemminger, Netdev, WireGuard mailing list

On 12/9/19 5:49 AM, Jason A. Donenfeld wrote:
> I'd definitely be interested in this. Back in 2015, that was the plan.
> Then it took a long time to get to where we are now, and since then
> wg(8) has really evolved into its own useful thing. The easiest thing
> would be to move wg(8) wholesale into iproute2 like you suggested;
> that'd allow people to continue using their infrastructure and whatnot
> they've used for a long time now. A more nuanced approach would be
> coming up with a _parallel_ iproute2 tool with mostly the same syntax
> as wg(8) but as a subcommand of ip(8). Originally the latter appealed
> to me, but at this point maybe the former is better after all. I
> suppose something to consider is that wg(8) is actually a
> cross-platform tool now, with a unified syntax across a whole bunch of
> operating systems. But it's also just boring C.

If wg is to move into iproute2, it needs to align with the other
commands and leverage the generic facilities where possible. ie., any
functionality that overlaps with existing iproute2 code to be converted
to use iproute2 code.
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 16:18     ` David Ahern
@ 2019-12-09 16:36       ` Toke Høiland-Jørgensen
  0 siblings, 0 replies; 7+ messages in thread
From: Toke Høiland-Jørgensen @ 2019-12-09 16:36 UTC (permalink / raw)
  To: David Ahern, Jason A. Donenfeld
  Cc: Stephen Hemminger, Netdev, WireGuard mailing list

David Ahern <dsahern@gmail.com> writes:

> On 12/9/19 5:49 AM, Jason A. Donenfeld wrote:
>> I'd definitely be interested in this. Back in 2015, that was the plan.
>> Then it took a long time to get to where we are now, and since then
>> wg(8) has really evolved into its own useful thing. The easiest thing
>> would be to move wg(8) wholesale into iproute2 like you suggested;
>> that'd allow people to continue using their infrastructure and whatnot
>> they've used for a long time now. A more nuanced approach would be
>> coming up with a _parallel_ iproute2 tool with mostly the same syntax
>> as wg(8) but as a subcommand of ip(8). Originally the latter appealed
>> to me, but at this point maybe the former is better after all. I
>> suppose something to consider is that wg(8) is actually a
>> cross-platform tool now, with a unified syntax across a whole bunch of
>> operating systems. But it's also just boring C.
>
> If wg is to move into iproute2, it needs to align with the other
> commands and leverage the generic facilities where possible. ie., any
> functionality that overlaps with existing iproute2 code to be converted
> to use iproute2 code.

Thought that might be the case :)

That means a re-implementation, then. In which case the question becomes
whether it's better to do it as an 'ip' subcommand (or even just new
parameters to 'ip link'), or a new top-level utility striving for
compatibility with 'wg'. But that's mostly a UI issue...

-Toke
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: organization of wireguard linux kernel repos moving forward
  2019-12-09 11:56 organization of wireguard linux kernel repos moving forward Jason A. Donenfeld
  2019-12-09 12:43 ` Toke Høiland-Jørgensen
@ 2019-12-26 17:45 ` Jason A. Donenfeld
  1 sibling, 0 replies; 7+ messages in thread
From: Jason A. Donenfeld @ 2019-12-26 17:45 UTC (permalink / raw)
  To: WireGuard mailing list

On Mon, Dec 9, 2019 at 12:56 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> With WireGuard in net-next, it's time to break up the monolithic repo
> we've been using for development into something a bit more manageable
> and in line with ordinary kernel development.
>
> Right now the "WireGuard.git" repo has been structured as an out of
> tree module, alongside a subdirectory for tools, one for scripts, one
> for tests, and another for a super gnarly compat layer that makes the
> thing work on all kernels going back to 3.10. We're going to break
> this up into three repositories:
>
> 1) wireguard-linux.git will be a full Linux tree, with wireguard
> changes, and regularly merge in net/net-next, and have things from
> there posted on netdev like usual for review. This repo won't be an
> out of tree module any more, obviously.
> https://git.zx2c4.com/wireguard-linux/
>
> 2) wireguard-tools.git will have the userspace utilities and scripts,
> such as wg(8) and wg-quick(8), and be easily packageable by distros.
> https://git.zx2c4.com/wireguard-tools/
>
> 3) wireguard-linux-compat.git will be an out-of-tree module containing
> the aforementioned horrific compat.h layer. New development will go
> into upstream wireguard-linux.git, but we'll do our best to keep
> things mostly working for as long as it makes sense and is feasible.
> https://git.zx2c4.com/wireguard-linux-compat/
>
> The CI that runs on build.wireguard.com will also see some updates to
> reflect these adjustments, and also more closely align with the
> net-next tree. Additionally, I'm interested to see if I can make our
> CI useful for a variety of things in net/ and drivers/net/ instead of
> just for wireguard.

The above changes are now complete.
_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-09 11:56 organization of wireguard linux kernel repos moving forward Jason A. Donenfeld
2019-12-09 12:43 ` Toke Høiland-Jørgensen
2019-12-09 12:49   ` Jason A. Donenfeld
2019-12-09 16:01     ` Toke Høiland-Jørgensen
2019-12-09 16:18     ` David Ahern
2019-12-09 16:36       ` Toke Høiland-Jørgensen
2019-12-26 17:45 ` Jason A. Donenfeld

WireGuard Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/wireguard/0 wireguard/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 wireguard wireguard/ https://lore.kernel.org/wireguard \
		wireguard@lists.zx2c4.com
	public-inbox-index wireguard

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/com.zx2c4.lists.wireguard


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git