nm-l2tp / NetworkManager-l2tp

L2TP and L2TP/IPsec support for NetworkManager
GNU General Public License v2.0
492 stars 83 forks source link

Building network-manager-l2tp vs network-manager-l2tp-gnome #66

Closed dosentmatter closed 7 years ago

dosentmatter commented 7 years ago

On the ubuntu PPA, I see network-manager-l2tp (core) and network-manager-l2tp-gnome (GUI).

Along with the other ./configure flags listed on the README.md for my system: To build network-manager-l2tp, do I use ./configure --without-gnome ...other flags... (disable gnome to only have core)? and to build network-manager-l2tp-gnome, do I use ./configure --without-libnm-glib ...other flags... (disable core to only have gnome)?

What would ./configure --without-gnome --without-libnm-glib build?

dkosovic commented 7 years ago

--without-libnm-glib only has an impact on the GNOME related files, so is redundant if --without-gnome is specified.

If you are building on a NetworkManager 1.2 or later based Linux distribution, you could specify --without-libnm-glib, so in theory could use the binary plugins on an earlier Linux distribution that doesn't have libnm-glib.

It isn't possible to use configure switches to only build the GNOME related file.

The configure switches are identical to what the GNOME Project uses for network-manager-pptp.

dosentmatter commented 7 years ago

Okay, so maybe that configure flag is unrelated.

On the ppa it says:

sudo apt install network-manager-l2tp network-manager-l2tp-gnome

When I build network-manager-l2tp, I get the plugin core and the gnome gui together.

How would I go about building just the plugin core or just the gnome gui like how the ppa does it? In other words, how do I build those two packages - network-manager-l2tp and network-manager-l2tp-gnome?

dkosovic commented 7 years ago

The PPA is a backport of Debian's network-manager-l2tp package source, if you have a look at the following folder:

Everything gets built, but if you look in the contents of the network-manager-l2tp.install and network-manager-l2tp-gnome.install files from the above links, you'll notice they specify which files go into the corresponding binary package.

Are you asking how to build network-manager-l2tp and network-manager-l2tp-gnome packages for Debian Jessie?

dosentmatter commented 7 years ago

Oh, okay. I'm afraid I don't understand enough about how packages work.

I was just wondering if there's a separate build process for network-manager-l2tp vs network-manager-l2tp-gnome. But I guess you are saying they are both built at the same time and those *.install files installs each of them and make install installs both of them. Is there a way to only install network-manager-l2tp (core) with the Makefile?

What's the reason for splitting up network-manager-l2tp and network-manager-l2tp-gnome on debian? Is it just because there are multiple binaries?

How can I tell if this package for archlinux includes the gnome GUI or just the plugin core?

I'm not asking how to build it for Debian Jessie specifically. The other Debian Jessie issue is unrelated because I was able to build it successfully, I just can't connect. I was thinking that there are two things to build since debian/ubuntu has two packages - core and the GUI. You say "everything gets built" so I guess there's only a difference in what you install? But yes, I am wondering how to build network-manager-l2tp and network-manager-l2tp-gnome for not just Debian Jessie but any distro with gnome. Or does that not make any sense? How would I build it for Debian then? This is just out of curiosity. If it's too complicated, I can just close this issue.

dkosovic commented 7 years ago

If you are using KDE or the NetworkManager command line (nmcli), there is no need to install network-manager-l2tp-gnome which pulls down lots of GNOME dependencies. KDE provides its own GUI for this VPN plug-in with the Plasma package (and similarly with the other NetworkManager VPN plugins).

Other Linux distribution like Fedora, RedHat Enterprise Linux, OpenSUSE and others have the same split with core and GNOME packages.

You can see the configure line for the Arch Linux AUR package here:

it doesn't have --without-gnome, so builds the GNOME stuff.

The libtool *.la files get installed with sudo make install, but are ignored by the binary packages.

The Makefile is very limited in specifying what gets installed.

dkosovic commented 7 years ago

For Debian Jessie and the debian source package, I would start with the Ubuntu 14.04 PPA network-manager-l2tp 1.0.8 source, but the rules files would need to be modified slightly for multiarch support (as NetworkManager included with Ubuntu 14.04 wasn't built with multiarch support, but was with Jessie and later Ubuntu versions).

If you've never built Debian packages before, it can be a bit complicated, but I would recommend reading the Debian docs on building packages.

dkosovic commented 7 years ago

I'll close this issue.

If you want to reopen, just reply and I'll see the email notification and then reopen it.

dosentmatter commented 7 years ago

Thanks for the explanation!

So Fedora, RedHat Enterprise Linux, OpenSUSE has the core GNOME split, and the AUR doesn't. Is this because the AUR uses the limited Makefile to install, whereas the other distros such as GNOME only use the Makefile to build and use the *.install files to do the split?

Where can I find Ubuntu 14.04 PPA network-manager-l2tp 1.0.8 source? The links you gave are for 1.2.6 - 1.2.8: https://sources.debian.net/src/network-manager-l2tp/1.2.8-1/ https://github.com/nm-l2tp/debian/tree/master/debian

And I can't seem to find the source anywhere on launchpad: https://launchpad.net/~nm-l2tp/+archive/ubuntu/network-manager-l2tp/+packages

Does the PPA backport use the exact same source as the Debian package source?

I looked through the debian docs on install files: https://www.debian.org/doc/manuals/maint-guide/dother.en.html#install So you use a single file name because the relative path doesn't change here: https://github.com/nm-l2tp/debian/blob/master/debian/network-manager-l2tp-gnome.install This means after using make install to install, I can manually uninstall network-manager-l2tp-gnome by doing rm /usr/lib/x86_64-linux-gnu/NetworkManager/libnm-vpn-plugin-l2tp-editor.so and etc. for the other files, right?

I'll read through the Debian docs more when I get the chance.

dkosovic commented 7 years ago

AUR doesn't provide prebuilt binary packages, with AUR the source code is downloaded and then built. It's similar to Gentoo, but I think Gentoo might provide an optional switch not to build the GNOME stuff.

Does the PPA backport use the exact same source as the Debian package source?

For Ubuntu 14.04, the changes are considerable between nm-l2tp 1.0.8 and Debian's nm-l2tp 1.2.8, see : https://launchpad.net/~nm-l2tp/+archive/ubuntu/network-manager-l2tp/+files/network-manager-l2tp_1.2.8-1_1.0.8-0~ubuntu14.04.1~ppa1.diff.gz

The source files are on the PPA page, the links I provided are for the original Debian package. To download and unpack the source files easily, usedget, e.g. :

sudo apt-get install devscripts
mkdir debian
cd debian
dget  https://launchpad.net/~nm-l2tp/+archive/ubuntu/network-manager-l2tp/+files/network-manager-l2tp_1.0.8-0~ubuntu14.04.1~ppa1.dsc

That's correct about manually uninstalling.

For cleaning a deb package source, you can use debclean

dkosovic commented 7 years ago

I'm guessing AUR didn't have any KDE users demanding not to build the GNOME files.

I'm not the AUR maintainer of the package.

dosentmatter commented 7 years ago

Thanks for all the pointers! I was able to view the 1.0.8 source.

That's all the questions I have, so I'm gonna close this issue now.