Package Base Details: python2-ethtool

Git Clone URL: https://aur.archlinux.org/python2-ethtool.git (read-only)
Submitter: JonnyJD
Maintainer: jhernberg
Last Packager: JonnyJD
Votes: 5
Popularity: 0.000001
First Submitted: 2012-02-25 00:02
Last Updated: 2017-02-04 10:44

Latest Comments

JonnyJD commented on 2017-02-04 10:52

Not sure what you mean wih 'create a second package that offers python 3 support called "python-ethtool" instead'.
This is what this split build does.

However, I did forget to remove the binaries from the python2 package. -> should be fixed.

Please note that python-ethtool is the main package now (Python 3 is the default on Arch) and python2-ethtool doesn't include any binaries (anymore).
So you should upgrade (or remove) python2-ethtool first and only then install python-ethtool.

I did not add any replaces, as this does not fully apply. The python 2 module is not replaced by python-ethtools, only the binaries (pethtool) are.
Not sure how much these are used at all.

dvzrv commented on 2017-02-04 10:16

@JonnyJD: If you want to make {python2,python}-ethtool installable properly with this PKGBUILD, please make sure, that there are no conflicting files!

Currently this happens, when trying to use your PKGBUILD:
error: failed to commit transaction (conflicting files)
/usr/bin/pethtool exists in both 'python-ethtool' and 'python2-ethtool'
/usr/bin/pifconfig exists in both 'python-ethtool' and 'python2-ethtool'

The preferred way would be to create a second package that offers python 3 support, called python-ethtool instead.
Having two packages in one PKGBUILD with conflicting files and no "replaces" or "conflicts" dependencies set, although there obviously are some, is bad packaging style! ;-)

JonnyJD commented on 2015-10-21 10:59

Sorry, that comment a week ago must have been made when the Arch mail server had problems. I never received a mail about it.

Anyways, I fixed it with a condensed but commented patch:
https://aur.archlinux.org/cgit/aur.git/tree/libnl3.2.26_net_if.patch?h=python2-ethtool
See https://github.com/thom311/libnl/pull/73 for what happened.
short: libnl 3.2.26 broke the build.

All users compiling python2-ethtools 0.11-2 have to upgrade to libnl 3.2.26. If you don't want to, then use the previous build (found in the git repo of this package).

billyburly commented on 2015-10-21 00:52

Got it working based on some info from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797250

Here's a copy of the PKGBUILD I used: http://pastebin.com/Z8aDhYLs

RemoteAdmin commented on 2015-10-13 19:08

Compiling fails with multiple errors at:
gcc -pthread -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -fPIC -DVERSION="0.11" -I/usr/include/libnl3 -I/usr/include/python2.7 -c python-ethtool/ethtool.c -o build/temp.linux-x86_64-2.7/python-ethtool/ethtool.o

python-ethtool/ethtool.c: In function ‘get_active_devices’:
python-ethtool/ethtool.c:65:61: error: ‘IFF_UP’ undeclared (first use in this function)
if (!PySequence_Contains(list, str) && (ifa->ifa_flags & (IFF_UP))) {
^
python-ethtool/ethtool.c:65:61: note: each undeclared identifier is reported only once for each function it appears in
python-ethtool/ethtool.c: In function ‘get_hwaddress’:
python-ethtool/ethtool.c:117:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_ipaddress’:
python-ethtool/ethtool.c:159:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_flags’:
python-ethtool/ethtool.c:286:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_netmask’:
python-ethtool/ethtool.c:318:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_broadcast’:
python-ethtool/ethtool.c:358:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_module’:
python-ethtool/ethtool.c:399:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘get_businfo’:
python-ethtool/ethtool.c:469:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘send_command’:
python-ethtool/ethtool.c:509:15: error: storage size of ‘ifr’ isn’t known
struct ifreq ifr;
^
python-ethtool/ethtool.c: In function ‘initethtool’:
python-ethtool/ethtool.c:916:39: error: ‘IFF_UP’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_UP", IFF_UP); /* Interface is up. */
^
python-ethtool/ethtool.c:917:46: error: ‘IFF_BROADCAST’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_BROADCAST", IFF_BROADCAST); /* Broadcast address valid. */
^
python-ethtool/ethtool.c:918:42: error: ‘IFF_DEBUG’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_DEBUG", IFF_DEBUG); /* Turn on debugging. */
^
python-ethtool/ethtool.c:919:45: error: ‘IFF_LOOPBACK’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_LOOPBACK", IFF_LOOPBACK); /* Is a loopback net */
^
python-ethtool/ethtool.c:920:48: error: ‘IFF_POINTOPOINT’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_POINTOPOINT", IFF_POINTOPOINT); /* Is a point-to-point link */
^
python-ethtool/ethtool.c:921:47: error: ‘IFF_NOTRAILERS’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_NOTRAILERS", IFF_NOTRAILERS); /* Avoid use of trailers */
^
python-ethtool/ethtool.c:922:44: error: ‘IFF_RUNNING’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_RUNNING", IFF_RUNNING); /* Resources allocated */
^
python-ethtool/ethtool.c:923:42: error: ‘IFF_NOARP’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_NOARP", IFF_NOARP); /* No address resolution protocol. */
^
python-ethtool/ethtool.c:924:44: error: ‘IFF_PROMISC’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_PROMISC", IFF_PROMISC); /* Receive all packets. */
^
python-ethtool/ethtool.c:925:45: error: ‘IFF_ALLMULTI’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_ALLMULTI", IFF_ALLMULTI); /* Receive all multicast packets. */
^
python-ethtool/ethtool.c:926:43: error: ‘IFF_MASTER’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_MASTER", IFF_MASTER); /* Master of a load balancer. */
^
python-ethtool/ethtool.c:927:42: error: ‘IFF_SLAVE’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_SLAVE", IFF_SLAVE); /* Slave of a load balancer. */
^
python-ethtool/ethtool.c:928:46: error: ‘IFF_MULTICAST’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_MULTICAST", IFF_MULTICAST); /* Supports multicast. */
^
python-ethtool/ethtool.c:929:44: error: ‘IFF_PORTSEL’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_PORTSEL", IFF_PORTSEL); /* Can set media type. */
^
python-ethtool/ethtool.c:930:46: error: ‘IFF_AUTOMEDIA’ undeclared (first use in this function)
PyModule_AddIntConstant(m, "IFF_AUTOMEDIA", IFF_AUTOMEDIA); /* Auto media select active. */