mirror of
https://github.com/9001/copyparty.git
synced 2025-10-10 10:32:19 -06:00
unvendorable ifaddr (#887);
stolen/ifaddr/ can be deleted and replaced with system lib; this is safe and will not affect any functionality
This commit is contained in:
parent
805a7054e9
commit
656f0a6c39
13
README.md
13
README.md
|
@ -138,6 +138,7 @@ made in Norway 🇳🇴
|
||||||
* [dependencies](#dependencies) - mandatory deps
|
* [dependencies](#dependencies) - mandatory deps
|
||||||
* [optional dependencies](#optional-dependencies) - install these to enable bonus features
|
* [optional dependencies](#optional-dependencies) - install these to enable bonus features
|
||||||
* [dependency chickenbits](#dependency-chickenbits) - prevent loading an optional dependency
|
* [dependency chickenbits](#dependency-chickenbits) - prevent loading an optional dependency
|
||||||
|
* [dependency unvendoring](#dependency-unvendoring) - force use of system modules
|
||||||
* [optional gpl stuff](#optional-gpl-stuff)
|
* [optional gpl stuff](#optional-gpl-stuff)
|
||||||
* [sfx](#sfx) - the self-contained "binary" (recommended!)
|
* [sfx](#sfx) - the self-contained "binary" (recommended!)
|
||||||
* [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+)
|
* [copyparty.exe](#copypartyexe) - download [copyparty.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty.exe) (win8+) or [copyparty32.exe](https://github.com/9001/copyparty/releases/latest/download/copyparty32.exe) (win7+)
|
||||||
|
@ -2991,6 +2992,18 @@ example: `PRTY_NO_PIL=1 python3 copyparty-sfx.py`
|
||||||
* python2.7 on windows: `PRTY_NO_FFMPEG` + `PRTY_NO_FFPROBE` saves startup time
|
* python2.7 on windows: `PRTY_NO_FFMPEG` + `PRTY_NO_FFPROBE` saves startup time
|
||||||
|
|
||||||
|
|
||||||
|
### dependency unvendoring
|
||||||
|
|
||||||
|
force use of system modules instead of the vendored versions:
|
||||||
|
|
||||||
|
| env-var | what it does |
|
||||||
|
| -------------------- | ------------ |
|
||||||
|
| `PRTY_SYS_ALL` | all of the below |
|
||||||
|
| `PRTY_SYS_IFADDR` | replace [stolen/ifaddr](./copyparty/stolen/ifaddr) with [upstream](https://pypi.org/project/ifaddr/) |
|
||||||
|
|
||||||
|
to debug, run copyparty with `PRTY_MODSPEC=1` to see where it's getting each module from
|
||||||
|
|
||||||
|
|
||||||
## optional gpl stuff
|
## optional gpl stuff
|
||||||
|
|
||||||
some bundled tools have copyleft dependencies, see [./bin/#mtag](bin/#mtag)
|
some bundled tools have copyleft dependencies, see [./bin/#mtag](bin/#mtag)
|
||||||
|
|
|
@ -21,6 +21,7 @@ from .util import (
|
||||||
VF_CAREFUL,
|
VF_CAREFUL,
|
||||||
Netdev,
|
Netdev,
|
||||||
atomic_move,
|
atomic_move,
|
||||||
|
get_adapters,
|
||||||
min_ex,
|
min_ex,
|
||||||
sunpack,
|
sunpack,
|
||||||
termsize,
|
termsize,
|
||||||
|
@ -456,8 +457,6 @@ class TcpSrv(object):
|
||||||
self._distribute_netdevs()
|
self._distribute_netdevs()
|
||||||
|
|
||||||
def detect_interfaces(self, listen_ips: list[str]) -> dict[str, Netdev]:
|
def detect_interfaces(self, listen_ips: list[str]) -> dict[str, Netdev]:
|
||||||
from .stolen.ifaddr import get_adapters
|
|
||||||
|
|
||||||
listen_ips = [x for x in listen_ips if not x.startswith(("unix:", "fd:"))]
|
listen_ips = [x for x in listen_ips if not x.startswith(("unix:", "fd:"))]
|
||||||
|
|
||||||
nics = get_adapters(True)
|
nics = get_adapters(True)
|
||||||
|
|
|
@ -136,6 +136,25 @@ try:
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
if os.environ.get("PRTY_NO_IFADDR"):
|
||||||
|
raise Exception()
|
||||||
|
try:
|
||||||
|
if os.getenv("PRTY_SYS_ALL") or os.getenv("PRTY_SYS_IFADDR"):
|
||||||
|
raise ImportError()
|
||||||
|
|
||||||
|
from .stolen.ifaddr import get_adapters
|
||||||
|
except ImportError:
|
||||||
|
from ifaddr import get_adapters
|
||||||
|
|
||||||
|
HAVE_IFADDR = True
|
||||||
|
except:
|
||||||
|
HAVE_IFADDR = False
|
||||||
|
|
||||||
|
def get_adapters(include_unconfigured=False):
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if os.environ.get("PRTY_NO_SQLITE"):
|
if os.environ.get("PRTY_NO_SQLITE"):
|
||||||
raise Exception()
|
raise Exception()
|
||||||
|
@ -173,6 +192,11 @@ try:
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
if os.getenv("PRTY_MODSPEC"):
|
||||||
|
from inspect import getsourcefile
|
||||||
|
|
||||||
|
print("PRTY_MODSPEC: ifaddr:", getsourcefile(get_adapters))
|
||||||
|
|
||||||
if True: # pylint: disable=using-constant-test
|
if True: # pylint: disable=using-constant-test
|
||||||
import types
|
import types
|
||||||
from collections.abc import Callable, Iterable
|
from collections.abc import Callable, Iterable
|
||||||
|
@ -2928,8 +2952,6 @@ def read_socket_chunked(
|
||||||
|
|
||||||
|
|
||||||
def list_ips() -> list[str]:
|
def list_ips() -> list[str]:
|
||||||
from .stolen.ifaddr import get_adapters
|
|
||||||
|
|
||||||
ret: set[str] = set()
|
ret: set[str] = set()
|
||||||
for nic in get_adapters():
|
for nic in get_adapters():
|
||||||
for ipo in nic.ips:
|
for ipo in nic.ips:
|
||||||
|
|
Loading…
Reference in a new issue