Opened 3 years ago

Closed 11 months ago

#1152 closed Patch submission (fixed)

OpenVPN patch to build on Fedora 1

Reported by: noloader Owned by: Gert Döring
Priority: trivial Milestone:
Component: Building / Compiling Version: OpenVPN 2.4.6 (Community Ed)
Severity: Patch Queue: New / awaiting ACK Keywords:
Cc: David Sommerseth

Description

This is kind of fascinating to me. OpenVPN 2.4.6 builds and passes its self tests on Fedora 1 with GCC 3.2 by adding this patch to tun.c down around line 1900:

#ifdef ENABLE_FEATURE_TUN_PERSIST

/* TUNSETGROUP appeared in 2.6.23 */
#ifndef TUNSETGROUP
# define TUNSETGROUP   _IOW('T', 206, int)
#endif

void
tuncfg( ...)
{
   ...
}

#endif

The patch was lifted from [this commit](https://github.com/ambrop72/badvpn/pull/6/commits/0c377e04f268) on another GitHub? project.

While the self tests completed successfully, I don't know if tuncfg was exercised.

Change History (7)

comment:1 Changed 3 years ago by noloader

Also, in that same area, the error message may not be accurate:

    if (groupname != NULL)
    {
        struct platform_state_group platform_state_group;

        if (!platform_group_get(groupname, &platform_state_group))
        {
            msg(M_ERR, "Cannot get group entry for %s", groupname);
        }
        else if (ioctl(tt->fd, TUNSETGROUP, platform_state_group.gr->gr_gid) < 0)
        {
            msg(M_ERR, "Cannot ioctl TUNSETOWNER(%s) %s", groupname, dev);
        }
}

The message looks like it should be msg(M_ERR, "Cannot ioctl TUNSETGROUP(%s) %s", groupname, dev);.

comment:2 Changed 3 years ago by Gert Döring

Cc: David Sommerseth added

"Fedora 1" sounds like something old? Or am I missing a new version numbering?

comment:3 in reply to:  2 Changed 3 years ago by noloader

Replying to Gert Döring:

"Fedora 1" sounds like something old? Or am I missing a new version numbering?

No, Fedora 1 is ancient. I keep the box around for testing early GCC. (I don't try to build old compilers on new systems).

The patch is there if you want the bragging rights. If you are not interested then just close this report.

comment:4 Changed 3 years ago by Gert Döring

Owner: set to Gert Döring
Status: newassigned

Thanks for the explanation. I'll have to check the code what we do there and why - I remember that we removed "very old linux style" tun support last year, but that might be only git master (= 2.5), not 2.4 - so if the change is that trivial, and helps people on older systems, it makes sense.

And yes, the TUNSETOWNER(%s) error message also needs fixing :-)

comment:5 Changed 13 months ago by Gert Döring

So, 2.5 is coming in, working through my heap of trac tickets.

@noloader: you're still around? If yes, could you form this into a patch for 2.4 or master, and "git-send-email" to the openvpn-devel list?

That way, it's clear who is the author and I can then take it, review it, and merge it (if I make this into a patch, we need another core team member to review and ACK it).

comment:7 Changed 11 months ago by Gert Döring

Resolution: fixed
Status: assignedclosed

commit a4e0ac0604460ea2431acb7481d6ffb7a3fc6298 (master)
commit 43e70c78c34b90b15b6bfdac9c1911853defca10 (release/2.5)
commit a1dc800348937d6993f5008140081f66a695026a (release/2.4)
Author: Gert Doering
Date: Wed Sep 9 17:37:25 2020 +0200

Fix TUNSETGROUP compatibility with very old Linux systems.

Note: See TracTickets for help on using tickets.