new Python 3.7 Status
This commit is contained in:
parent
6bee486379
commit
f849c2fb34
119
README.md
119
README.md
@ -1,18 +1,16 @@
|
||||
Home Assistant Gentoo Overlay
|
||||
=============================
|
||||
# Home Assistant Gentoo Overlay
|
||||
|
||||
Home Assistant without Docker & Virtual Environments
|
||||
----------------------------------------------------
|
||||
##Home Assistant without Docker & Virtual Environments
|
||||
|
||||
https://www.home-assistant.io/
|
||||
https://github.com/home-assistant/home-assistant
|
||||
|
||||
"Open source home automation that puts local control and privacy first."
|
||||
|
||||
##Source
|
||||
This was fork of https://cgit.gentoo.org/user/lmiphay.git/tree/app-misc/homeassistant-bin which seemed unmaintained to me, at first I just wanted to compile it for my personal use. This happed at 0.77 in September 2018. Some friends told me they wanted to use/see it, so i putted it on my gitea, and was caught by surprise of several hundred pageviews in the very first days. Try to keep it close to the official releases, might get slower during summer. After 3 months it had ~170 ebuilds, now (Nov 2019) > 1069 ebuilds in > 700 packages listed.
|
||||
|
||||
[Python 3.7 Migration](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/master/python3_7.md).
|
||||
|
||||
##ESPHome
|
||||
Aside from Home Assistant it contains some related ebuilds I use with my Home Assistant:
|
||||
|
||||
* esphome (soon i'll throw away Tasmota...), thanks to Otto Winter for his fabulous idea and great work (https://github.com/esphome/esphome), really cool stuff, a bit complicated to get it started (mostly with DNS, it uses a weird *.local architecture, imho for mDNS, too complex for me to run it across Vlans), but as soon you got it running, a lot of ESP devices are very easy to deploy. It's integration in Home Assistant is easy and reacts fast on state changes. I begin to love it's Integration in Home Assistant, you have one single point where you define and name a switch or a sensor (instead of > three points using MQTT). Together with the possibility of OTA updates my sensors will have a unique name all over the system, and names can be changed very easily. In the meantime i migrated all my Magichome Controllers, very happy with it, and i have a couple of binary input arrays running with it without any problems. However, my Sonoff POW and POW R2 are still running with Tasmota.
|
||||
@ -21,15 +19,111 @@ Aside from Home Assistant it contains some related ebuilds I use with my Home As
|
||||
|
||||
Since homeassistant-0.95.0_beta0 `esphome-1.13.6` can be run again in the same environment with homeassistant, because homeassistant does not insist on `dev-python/pyyaml-3.13` anymore.
|
||||
|
||||
esphome-1.14.1 wit platformio-4.0.3-r2 can be run on Python 3.7
|
||||
|
||||
|
||||
If you have questions or suggestions don't hesitate to contact me, anyhelp is very welcome.
|
||||
|
||||
#### You will find this Repository at
|
||||
## Git Server & Mirrors
|
||||
You will find this Repository at
|
||||
| Location | Web | Clone me here |
|
||||
| ------ | ------ | ------ |
|
||||
| Main | https://git.edevau.net/onkelbeh/HomeAssistantRepository | https://git.edevau.net/onkelbeh/HomeAssistantRepository.git |
|
||||
| Mirror | https://github.com/onkelbeh/HomeAssistantRepository | https://github.com/onkelbeh/HomeAssistantRepository.git |
|
||||
|
||||
#### Installation is pretty easy:
|
||||
Sure, you can file issues and pull requests on both sites
|
||||
|
||||
## Installation on Python 3.7
|
||||
Home assistant will drop support for Python 3.6 with the first release after December 15, 2019:
|
||||
- https://github.com/home-assistant/home-assistant/pull/27680
|
||||
- https://github.com/home-assistant/architecture/blob/master/adr/0002-minimum-supported-python-version.md
|
||||
|
||||
First add the Overlay to `/etc/portage/repos.conf/homeassistant.conf`, make sure not to interfere with your gentoo repo, which is at `/usr/portage/gentoo` in my boxes, becaus\
|
||||
e i _always_ have more than one repo active by default:
|
||||
```
|
||||
[HomeAssistantRepository]
|
||||
location = /usr/portage/homeassistant
|
||||
sync-type = git
|
||||
sync-uri = https://git.edevau.net/onkelbeh/HomeAssistantRepository.git
|
||||
auto-sync = yes
|
||||
sync-rsync-verify-metamanifest = no
|
||||
```
|
||||
Sync it:
|
||||
```sh
|
||||
$ emerge --sync
|
||||
```
|
||||
Make sure you have a proper locale setting. I use
|
||||
```sh
|
||||
$ cat /etc/locale.gen
|
||||
de_DE ISO-8859-1
|
||||
de_DE@euro UTF-8
|
||||
```
|
||||
It will make things easier if you take the example files from `/etc/portage/package.accept_keywords/99_homeassistant` and `/etc/portage/package.use/60_homeassistant` and copy it to your `/etc/portage`, a lot of unstable ebuilds are needed, because some of the stable versions do *not* support Python 3.7.
|
||||
|
||||
Edit your `/etc/portage/make.conf` to set the new Python Targets:
|
||||
```sh
|
||||
USE_PYTHON="3.7 3.6 2.7"
|
||||
# PYTHON_TARGETS="python3_7 python3_6 python2_7"
|
||||
PYTHON_TARGETS="python3_7"
|
||||
PYTHON_SINGLE_TARGET="python3_7"
|
||||
```
|
||||
Install it (as root)
|
||||
```sh
|
||||
$ emerge -tav app-misc/homeassistant
|
||||
$ rc-update add homeassistant
|
||||
```
|
||||
## Upgrading to Python 3.7
|
||||
Take the example files from `/etc/portage/package.accept_keywords/99_homeassistant` and `/etc/portage/package.use/60_homeassistant` and copy\
|
||||
it to your `/etc/portage`, a lot of unstable ebuilds are needed, because some of the stable versions do *not* support Python 3.7. These files reflect some modules i use, adjust them to your needs.
|
||||
|
||||
Make sure your system is up to date:
|
||||
```sh
|
||||
$ emerge -tauvDUN @world
|
||||
```
|
||||
Install Python 3.7:
|
||||
```sh
|
||||
$ emerge -tav dev-lang/python:3.7
|
||||
```
|
||||
Edit your `/etc/portage/make.conf` to set the new Python Targets:
|
||||
```sh
|
||||
USE_PYTHON="3.7 3.6 2.7"
|
||||
PYTHON_TARGETS="python3_7 python3_6"
|
||||
PYTHON_SINGLE_TARGET="python3_7"
|
||||
```
|
||||
|
||||
Run the Update:
|
||||
```sh
|
||||
# emerge --depclean
|
||||
# emerge -1vUD @world
|
||||
# emerge --depclean
|
||||
```
|
||||
|
||||
Edit your `/etc/portage/make.conf` to remove old Python Targets:
|
||||
```sh
|
||||
USE_PYTHON="3.7 3.6 2.7"
|
||||
PYTHON_TARGETS="python3_7"
|
||||
PYTHON_SINGLE_TARGET="python3_7"
|
||||
```
|
||||
Run the Update again:
|
||||
|
||||
```sh
|
||||
# emerge --depclean
|
||||
# emerge -1vUD @world
|
||||
# emerge --depclean
|
||||
```
|
||||
I had a lot of dependencies portage didn't respect, in some cases it seems not to know in which Python's site-packages modules are already installed. Install them manually (after compile errors). Once all packages are updated, you can remove the older targets in `package.use` and run another upgrade to remove support for Python 3.6.
|
||||
|
||||
Tools that might help:
|
||||
```sh
|
||||
$ eix --installed-with-use python_targets_python3_6
|
||||
```
|
||||
|
||||
If you are clean, feel free to remove Python 3.6 (which i dod not yet).
|
||||
|
||||
|
||||
## Installation on Python 3.6 (deprecated)
|
||||
|
||||
Installation is pretty easy:
|
||||
|
||||
First add the Overlay to `/etc/portage/repos.conf/homeassistant.conf`, make sure not to interfere with your gentoo repo, which is at `/usr/portage/gentoo` in my boxes, because i _always_ have more than one repo active by default:
|
||||
```
|
||||
@ -51,12 +145,12 @@ $ cat /etc/locale.gen
|
||||
de_DE ISO-8859-1
|
||||
de_DE@euro UTF-8
|
||||
```
|
||||
Take a look at [Python 3.7 Migration](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/master/python3_7.md).
|
||||
|
||||
Additional information can be found at https://wiki.gentoo.org/wiki//etc/portage/repos.conf.
|
||||
Let me know if any initial depencies are missing, since i do not use all of the components myself, last good (full) compile test was August 3rd, 2019 with v0.97.0_beta1, while changing gentoo's profile to 17.1.
|
||||
|
||||
### Todos
|
||||
|
||||
## Todos
|
||||
- **If it moves, compile it** :-)
|
||||
- try/test this all with Python 3.7
|
||||
- Add libraries if i need it or someone asks for
|
||||
@ -64,7 +158,7 @@ Let me know if any initial depencies are missing, since i do not use all of the
|
||||
- Write an installation page for the home-assistant.io Documentation an get it added.
|
||||
- Convince more people to not run Home Assistant with Docker (see https://xkcd.com/1988/)
|
||||
|
||||
### some Background...
|
||||
## some Background...
|
||||
|
||||
I have Home Assistant running on a virtual X64 box, 4GB RAM, 4 Cores of an older Xeon E5-2630 v2 @ 2.60GHz and 10GB Disk from a small FC SAN (HP MSA). Recorder writes to a separate mariadb machine, currently 10.3.16 without problems.
|
||||
|
||||
@ -96,6 +190,7 @@ Most of my devices are still connected via Eclipse Mosquitto (https://mosquitto.
|
||||
* Axis Camera (1, a few more to come sometimes)
|
||||
* yr.no weather (best reliable forecast you can get for low money) (https://www.yr.no/)
|
||||
|
||||
## Privacy
|
||||
I have **no** Google, Amazon or Apple involved in my privacy (at least in this case) and I am not planning to let them in.
|
||||
|
||||
* Tried to get all Python installed systemwide under Gentoo's package management and keeping `/etc/homeassistant/deps` as small as possible.
|
||||
@ -105,7 +200,7 @@ I have **no** Google, Amazon or Apple involved in my privacy (at least in this c
|
||||
* python-3.6.9 is set as default target, also 2.7.16 is installed on my test server.
|
||||
* Due to Home Assitant's architecture strategies we cannot wait any longer for a stable Python 3.7: [Python 3.7 Migration](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/master/python3_7.md)
|
||||
|
||||
### Licenses
|
||||
## Licenses
|
||||
|
||||
The Repository itself is released under GPL-3, all work on the depending components under the Licenses they came from, which could be (as my grep told me):
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ EBUILD homeassistant-0.100.3.ebuild 11984 BLAKE2B dc24b2f4bd876d0850401f0910f27d
|
||||
EBUILD homeassistant-0.101.0.ebuild 12006 BLAKE2B 2cde2aa0d25d8a4721e196e05754d11055544e61b1b7151a28d98fd6228018d13abc4ef63ccb897fb87d1d63a22553c94a083fb7b49bed463978ac8cd9c71270 SHA512 f23cc3b64d5b014375f2f44dab235a1c529aa1d91765663dd78482e19093ba3c38c6293594b61be7ecf844fe750e62bb58a3d5db1e4392a0b0bf5546521d87d6
|
||||
EBUILD homeassistant-0.101.1.ebuild 12006 BLAKE2B 2cde2aa0d25d8a4721e196e05754d11055544e61b1b7151a28d98fd6228018d13abc4ef63ccb897fb87d1d63a22553c94a083fb7b49bed463978ac8cd9c71270 SHA512 f23cc3b64d5b014375f2f44dab235a1c529aa1d91765663dd78482e19093ba3c38c6293594b61be7ecf844fe750e62bb58a3d5db1e4392a0b0bf5546521d87d6
|
||||
EBUILD homeassistant-0.101.2-r3.ebuild 11975 BLAKE2B 834ada779432d5de7e7f0bef35bc43dc7101d784efa507ef907c4a9ba51abab4ef87dc0b6e7775b8e2a34b92f819c72a78b41be7c788dfcb89df69b98b6127d4 SHA512 004a3b21041e5ff50d17982587a70a19cdf95905f6dc07a604663ffa4fe8a4a2a07276f65e1040162a945ccfb5f98d9bfcfb39c6d54e640713104bc8f663c3ad
|
||||
EBUILD homeassistant-0.101.3.ebuild 11975 BLAKE2B 834ada779432d5de7e7f0bef35bc43dc7101d784efa507ef907c4a9ba51abab4ef87dc0b6e7775b8e2a34b92f819c72a78b41be7c788dfcb89df69b98b6127d4 SHA512 004a3b21041e5ff50d17982587a70a19cdf95905f6dc07a604663ffa4fe8a4a2a07276f65e1040162a945ccfb5f98d9bfcfb39c6d54e640713104bc8f663c3ad
|
||||
EBUILD homeassistant-0.101.3.ebuild 11974 BLAKE2B 7d8f99e91a3026fb8a6e963f5a3b47824dffd6f00931c2dff8095ecfc7557cfffa004577804dcf04ff1cbee62a2d7b4503b85045d04c3f77d94b8aac2b5e0266 SHA512 067dbcd3750f44e1c8bcc815f904d1ed5759f3c7f2408095320f9dc07b6de791079be5305fd8241059e4ef8eefeb14ed0ab450ea8d403f094e0fda7b22e9bc53
|
||||
EBUILD homeassistant-0.98.5.ebuild 11614 BLAKE2B 8701e2ee1ccdc026380e4748cf04f21137328abec3c5b79323f4d46da06ad38aba4951d66c75a7643805095ff9f35b6fc8ed540124929f706af5f081e040ff6a SHA512 256465b32eaaad6f7a05ac3244b327325f803c652b8ed27ababb2192a1fb92810dc9d858783afb95fecbb89fcbec5b6c04c475137d42cbeb6a0b93203622bbde
|
||||
EBUILD homeassistant-0.99.2-r1.ebuild 11616 BLAKE2B 33eddd4d8bb93c40be90ae8e11bdc5d9d32df74e8cd4204a8f81117372800aca53664e9eb88ca729929bbddfd61880fb350592a0f935f43bfea3b22980486adb SHA512 a585fe6cf0aeb8300cf685c1be475f02a3629b46d54987ce5114811d4a5da136584a7febd8682f83081ab1d5c94e21bc4a5b247ee671da5666709245e4ad16d9
|
||||
EBUILD homeassistant-0.99.3-r1.ebuild 11670 BLAKE2B 4ba7f41bab710e76626c2a88e1a68eabfcced5ae602a042b529d2bdd2519d850aaa3c74ffda94883d7167ed350f0397d229174f3b65ed07da58228fec9a2e2d4 SHA512 bbcc1c24b9b0ee278fe266d97e54db36000fb0d93c9590a7e76bf2b2cc2bfd1a8988e27441a31289271d1e4235b0897b1c61f2e952ec78d6bc24f6a82b0e941e
|
||||
|
||||
@ -162,7 +162,7 @@ RDEPEND="${PYTHON_DEPS}
|
||||
roku? ( ~dev-python/roku-3.1[${PYTHON_USEDEP}] )
|
||||
rxv? ( =dev-python/rxv-0.6.0[${PYTHON_USEDEP}]
|
||||
~dev-python/defusedxml-0.6.0[${PYTHON_USEDEP}] )
|
||||
samsungtv? ( >=dev-python/samsungctl-0.7.1[${PYTHON_USEDEP}] )
|
||||
samsungtv? ( =dev-python/samsungctl-0.7.1[${PYTHON_USEDEP}] )
|
||||
sma? ( ~dev-python/pysma-0.3.4[${PYTHON_USEDEP}] )
|
||||
socat? ( net-misc/socat )
|
||||
sonos? ( >=dev-python/pysonos-0.0.24[${PYTHON_USEDEP}] )
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
=dev-embedded/esphome-1.14.1-r1 ~amd64
|
||||
=dev-embedded/esphome-1.14.1 ~amd64
|
||||
=dev-embedded/esptool-2.7-r1 ~amd64
|
||||
=dev-embedded/platformio-4.0.3-r2
|
||||
=dev-python/bottle-0.12.16 ~amd64
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
=app-crypt/acme-0.32.0 ~amd64
|
||||
=app-crypt/certbot-0.29.1 ~amd64
|
||||
=app-misc/esphomeyaml-1.10.1 ~amd64
|
||||
=app-portage/gemato-14.3 ~amd64
|
||||
=dev-embedded/esphome-9999 ~amd64
|
||||
=dev-embedded/esptool-2.7 ~amd64
|
||||
=dev-embedded/platformio-4.0.3 ~amd64
|
||||
=dev-lang/python-3.7.5-r1 ~amd64
|
||||
=dev-libs/xml-security-c-2.0.2-r1 ~amd64
|
||||
@ -31,11 +28,11 @@
|
||||
=dev-python/astral-1.10.1 ~amd64
|
||||
=dev-python/async_timeout-3.0.0 ~amd64
|
||||
=dev-python/async-upnp-client-0.14.3 ~amd64
|
||||
=dev-python/attrs-19.2.0 ~amd64
|
||||
~dev-python/attrs-19.2.0-r1 ~amd64
|
||||
=dev-python/bcrypt-3.1.7 ~amd64
|
||||
=dev-python/beautifulsoup-4.8.1 ~amd64
|
||||
=dev-python/bimmer-connected-0.5.3 ~amd64
|
||||
=dev-python/blessings-1.7 ~amd64
|
||||
=dev-python/blinkpy-0.14.2 ~amd64
|
||||
~dev-python/boto3-1.9.233 ~amd64
|
||||
=dev-python/botocore-1.12.115 ~amd64
|
||||
@ -57,8 +54,7 @@
|
||||
=dev-python/coverage-4.5.2-r1 ~amd64
|
||||
=dev-python/cryptography-2.8 ~amd64
|
||||
=dev-python/curve25519-donna-1.3 ~amd64
|
||||
=dev-python/cython-0.29.13 ~amd64
|
||||
=dev-python/cython-0.29.1 ~amd64
|
||||
=dev-python/cython-0.29.14 ~amd64
|
||||
=dev-python/dateparser-0.7.1 ~amd64
|
||||
=dev-python/discord-py-1.2.2 ~amd64
|
||||
=dev-python/distro-1.4.0 ~amd64
|
||||
@ -100,12 +96,13 @@
|
||||
=dev-python/libusb1-1.7 ~amd64
|
||||
=dev-python/lomond-0.1.14 ~amd64
|
||||
=dev-python/lxml-4.3.3 ~amd64
|
||||
=dev-python/mako-1.0.7 ~amd64
|
||||
~dev-python/markupsafe-1.0 ~amd64
|
||||
=dev-python/Mastodon-py-1.4.5 ~amd64
|
||||
=dev-python/maxcube-api-0.1.0 ~amd64
|
||||
=dev-python/multidict-4.5.2 ~amd64
|
||||
=dev-python/netdisco-2.6.0 ~amd64
|
||||
=dev-python/numpy-1.17.3-r1 ~amd64
|
||||
~dev-python/numpy-1.17.3 ~amd64
|
||||
=dev-python/openwebifpy-3.1.1 ~amd64
|
||||
=dev-python/open-zwave-hass-0.1.4 ~amd64
|
||||
=dev-python/OPi-GPIO-0.3.6 ~amd64
|
||||
@ -126,7 +123,6 @@
|
||||
=dev-python/PyChromecast-4.0.1 ~amd64
|
||||
=dev-python/pycparser-2.19 ~amd64
|
||||
=dev-python/pycryptodome-3.7.3 ~amd64
|
||||
=dev-python/pydispatcher-2.0.5-r1 ~amd64
|
||||
=dev-python/pydispatcher-2.1.2 ~amd64
|
||||
=dev-python/pyelftools-0.25 ~amd64
|
||||
=dev-python/PyFronius-0.4.6 ~amd64
|
||||
@ -142,6 +138,8 @@
|
||||
=dev-python/pyotp-2.3.0 ~amd64
|
||||
=dev-python/pypandoc-1.4 ~amd64
|
||||
=dev-python/pyparsing-2.4.0 ~amd64
|
||||
=dev-python/pypy3-7.2.0-r1 ~amd64
|
||||
=dev-python/pypy-7.2.0 ~amd64
|
||||
=dev-python/PyQRCode-1.2.1 ~amd64
|
||||
=dev-python/pyrsistent-0.14.4 ~amd64
|
||||
=dev-python/pyserial-3.4 ~amd64
|
||||
@ -172,7 +170,7 @@
|
||||
=dev-python/RPi-GPIO-0.6.5 ~amd64
|
||||
=dev-python/rsa-4.0 ~amd64
|
||||
=dev-python/ruamel-yaml-0.15.100 ~amd64
|
||||
=dev-python/samsungctl-0.8.0_beta0 ~amd64
|
||||
=dev-python/samsungctl-0.7.1 ~amd64
|
||||
=dev-python/semantic_version-2.8.2 ~amd64
|
||||
=dev-python/setuptools-41.5.1 ~amd64
|
||||
=dev-python/setuptools_scm-1.15.7 ~amd64
|
||||
@ -196,7 +194,6 @@ dev-python/sphinx_rtd_theme ~amd64
|
||||
=dev-python/tellduslive-0.10.10 ~amd64
|
||||
=dev-python/text-unidecode-1.3 ~amd64
|
||||
=dev-python/toml-0.10.0 ~amd64
|
||||
=dev-python/toml-0.9.6 ~amd64
|
||||
=dev-python/total-connect-client-0.28 ~amd64
|
||||
=dev-python/tox-3.12.1 ~amd64
|
||||
=dev-python/tox-travis-0.11 ~amd64
|
||||
@ -228,4 +225,6 @@ dev-python/sphinx_rtd_theme ~amd64
|
||||
~dev-python/zope-interface-4.6.0 ~amd64
|
||||
=media-libs/mutagen-1.42.0 ~amd64
|
||||
=sys-apps/portage-2.3.78-r2 ~amd64
|
||||
=virtual/pypy3-7.2.0 ~amd64
|
||||
=virtual/pypy-7.2.0 ~amd64
|
||||
=www-servers/tornado-5.1.1 ~amd64
|
||||
|
||||
@ -1,203 +1,6 @@
|
||||
app-misc/homeassistant androidtv darksky enigma esphome fronius growl musiccast mikrotik mysql mqtt tradfri rxv samsungtv socat sonos ssl atv maxcube frontend qnap z-wave
|
||||
app-misc/homeassistant androidtv darksky enigma esphome fronius growl musiccast mikrotik mysql mqtt tradfri rxv samsungtv socat sonos ssl atv maxcube frontend qnap wwlln z-wave
|
||||
|
||||
dev-lang/python sqlite
|
||||
dev-libs/libxslt python
|
||||
dev-python/sqlalchemy mysql sqlite
|
||||
|
||||
dev-python/pytest-mock PYTHON_TARGETS: -* python3_7
|
||||
app-crypt/acme PYTHON_TARGETS: -* python3_7
|
||||
app-crypt/certbot PYTHON_TARGETS: -* python3_7
|
||||
app-misc/home-assistant-cli PYTHON_TARGETS: -* python3_7
|
||||
app-misc/home-assistant-frontend PYTHON_TARGETS: -* python3_7
|
||||
app-misc/homeassistant PYTHON_TARGETS: -* python3_7
|
||||
dev-libs/gobject-introspection PYTHON_TARGETS: -* python3_7
|
||||
media-gfx/graphviz PYTHON_TARGETS: -* python3_7
|
||||
media-libs/mutagen PYTHON_TARGETS: -* python3_7
|
||||
net-analyzer/speedtest-cli PYTHON_TARGETS: -* python3_7
|
||||
virtual/mysql PYTHON_TARGETS: -* python3_7
|
||||
virtual/python-cffi PYTHON_TARGETS: -* python3_7
|
||||
|
||||
dev-python/abodepy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/adb-shell PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aioasuswrt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aiocoap PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aioesphomeapi PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aioharmony PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aiohttp-cors PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aiohue PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aiounify PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aiowwlln PYTHON_TARGETS: -* python3_7
|
||||
dev-python/androidtv PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aresponses PYTHON_TARGETS: -* python3_7
|
||||
dev-python/asn1crypto PYTHON_TARGETS: -* python3_7
|
||||
dev-python/astral PYTHON_TARGETS: -* python3_7
|
||||
dev-python/async_timeout PYTHON_TARGETS: -* python3_7
|
||||
dev-python/attrs PYTHON_TARGETS: -* python3_7
|
||||
dev-python/aurorapy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/avea PYTHON_TARGETS: -* python3_7
|
||||
dev-python/bcrypt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/beautifulsoup PYTHON_TARGETS: -* python3_7
|
||||
dev-python/bellows-homeassistant PYTHON_TARGETS: -* python3_7
|
||||
dev-python/blinkpy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/boto3 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/botocore PYTHON_TARGETS: -* python3_7
|
||||
dev-python/buienradar PYTHON_TARGETS: -* python3_7
|
||||
dev-python/caldav PYTHON_TARGETS: -* python3_7
|
||||
dev-python/casttube PYTHON_TARGETS: -* python3_7
|
||||
dev-python/cdu PYTHON_TARGETS: -* python3_7
|
||||
#dev-python/certifi PYTHON_TARGETS: -* python3_7
|
||||
dev-python/cffi PYTHON_TARGETS: -* python3_7
|
||||
dev-python/chardet PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ciscomobilityexpress PYTHON_TARGETS: -* python3_7
|
||||
dev-python/click-log PYTHON_TARGETS: -* python3_7
|
||||
dev-python/click PYTHON_TARGETS: -* python3_7
|
||||
dev-python/colorlog PYTHON_TARGETS: -* python3_7
|
||||
dev-python/configargparse PYTHON_TARGETS: -* python3_7
|
||||
dev-python/configobj PYTHON_TARGETS: -* python3_7
|
||||
dev-python/contextvars PYTHON_TARGETS: -* python3_7
|
||||
dev-python/convertdate PYTHON_TARGETS: -* python3_7
|
||||
dev-python/cookies PYTHON_TARGETS: -* python3_7
|
||||
dev-python/cryptography PYTHON_TARGETS: -* python3_7
|
||||
dev-python/curve25519-donna PYTHON_TARGETS: -* python3_7
|
||||
dev-python/dateparser PYTHON_TARGETS: -* python3_7
|
||||
dev-python/decorator PYTHON_TARGETS: -* python3_7
|
||||
dev-python/defusedxml PYTHON_TARGETS: -* python3_7
|
||||
dev-python/denonavr PYTHON_TARGETS: -* python3_7
|
||||
dev-python/distro PYTHON_TARGETS: -* python3_7
|
||||
dev-python/docopt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/docutils PYTHON_TARGETS: -* python3_7
|
||||
dev-python/dtlssocket PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ecdsa PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ed25519 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/envoy-reader PYTHON_TARGETS: -* python3_7
|
||||
dev-python/envs PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ephem PYTHON_TARGETS: -* python3_7
|
||||
dev-python/future PYTHON_TARGETS: -* python3_7
|
||||
dev-python/gntp PYTHON_TARGETS: -* python3_7
|
||||
dev-python/gpiozero PYTHON_TARGETS: -* python3_7
|
||||
dev-python/gTTS-token PYTHON_TARGETS: -* python3_7
|
||||
dev-python/guzzle_sphinx_theme PYTHON_TARGETS: -* python3_7
|
||||
dev-python/hass-nabucasa PYTHON_TARGETS: -* python3_7
|
||||
dev-python/hbmqtt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/homeassistant-pyozw PYTHON_TARGETS: -* python3_7
|
||||
dev-python/homekit-python PYTHON_TARGETS: -* python3_7
|
||||
dev-python/homematicip PYTHON_TARGETS: -* python3_7
|
||||
dev-python/idna PYTHON_TARGETS: -* python3_7
|
||||
dev-python/idna-ssl PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ifaddr PYTHON_TARGETS: -* python3_7
|
||||
dev-python/immutables PYTHON_TARGETS: -* python3_7
|
||||
dev-python/importlib-metadata PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jdatetime PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jinja PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jmespath PYTHON_TARGETS: -* python3_7
|
||||
dev-python/josepy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jose PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jsonpath-rw PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jsonrpc-async PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jsonrpc-base PYTHON_TARGETS: -* python3_7
|
||||
dev-python/jsonrpc-websocket PYTHON_TARGETS: -* python3_7
|
||||
dev-python/librouteros PYTHON_TARGETS: -* python3_7
|
||||
dev-python/lxml PYTHON_TARGETS: -* python3_7
|
||||
dev-python/maxcube-api PYTHON_TARGETS: -* python3_7
|
||||
dev-python/multidict PYTHON_TARGETS: -* python3_7
|
||||
dev-python/mysqlclient PYTHON_TARGETS: -* python3_7
|
||||
dev-python/mysql-python PYTHON_TARGETS: -* python3_7
|
||||
dev-python/namespace-google PYTHON_TARGETS: -* python3_7
|
||||
dev-python/netdisco PYTHON_TARGETS: -* python3_7
|
||||
dev-python/netifaces PYTHON_TARGETS: -* python3_7
|
||||
dev-python/nose PYTHON_TARGETS: -* python3_7
|
||||
dev-python/numpy PYTHON_TARGETS: -* python3_7
|
||||
# dev-python/olefile PYTHON_TARGETS: -* python3_7
|
||||
dev-python/openwebifpy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/openwrt-luci-rpc PYTHON_TARGETS: -* python3_7
|
||||
dev-python/paho-mqtt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/passlib PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pbr PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pillow PYTHON_TARGETS: -* python3_7
|
||||
dev-python/protobuf-python PYTHON_TARGETS: -* python3_7
|
||||
dev-python/psutil PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pubnubsub-handler PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pure-python-adb-homeassistant PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyasn1 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyatmo PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyatv PYTHON_TARGETS: -* python3_7
|
||||
dev-python/PyChromecast PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pycparser PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pycryptodome PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pycrypto PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pydaikin PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pydispatcher PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyeverlights PYTHON_TARGETS: -* python3_7
|
||||
dev-python/PyFronius PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pygraphviz PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyhaversion PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyheos PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyhomematic PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyHS100 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyjwt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pymusiccast PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pynacl PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyotp PYTHON_TARGETS: -* python3_7
|
||||
dev-python/PyQRCode PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyrfc3339 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pysma PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pysmi PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pysnmp PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pysonos PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-dateutil PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-forecastio PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-hpilo PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-jose-cryptodome PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-miio PYTHON_TARGETS: -* python3_7
|
||||
dev-python/python-slugify PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pytradfri PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pytz PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyubee PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyvera PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pywemo PYTHON_TARGETS: -* python3_7
|
||||
dev-python/pyyaml PYTHON_TARGETS: -* python3_7
|
||||
dev-python/qnapstats PYTHON_TARGETS: -* python3_7
|
||||
dev-python/requests PYTHON_TARGETS: -* python3_7
|
||||
dev-python/requests-toolbelt PYTHON_TARGETS: -* python3_7
|
||||
dev-python/responses PYTHON_TARGETS: -* python3_7
|
||||
dev-python/RestrictedPython PYTHON_TARGETS: -* python3_7
|
||||
dev-python/roku PYTHON_TARGETS: -* python3_7
|
||||
dev-python/rsa PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ruamel-yaml PYTHON_TARGETS: -* python3_7
|
||||
dev-python/rxv PYTHON_TARGETS: -* python3_7
|
||||
dev-python/s3transfer PYTHON_TARGETS: -* python3_7
|
||||
dev-python/samsungctl PYTHON_TARGETS: -* python3_7
|
||||
dev-python/shodan PYTHON_TARGETS: -* python3_7
|
||||
dev-python/six PYTHON_TARGETS: -* python3_7
|
||||
dev-python/snitun PYTHON_TARGETS: -* python3_7
|
||||
dev-python/sphinx* PYTHON_TARGETS: -* python3_7
|
||||
dev-python/sqlalchemy PYTHON_TARGETS: -* python3_7
|
||||
dev-python/tabulate PYTHON_TARGETS: -* python3_7
|
||||
dev-python/transitions PYTHON_TARGETS: -* python3_7
|
||||
dev-python/typing PYTHON_TARGETS: -* python3_7
|
||||
dev-python/tzlocal PYTHON_TARGETS: -* python3_7
|
||||
dev-python/ua-parser PYTHON_TARGETS: -* python3_7
|
||||
dev-python/urllib3 PYTHON_TARGETS: -* python3_7
|
||||
dev-python/user-agents PYTHON_TARGETS: -* python3_7
|
||||
dev-python/vobject PYTHON_TARGETS: -* python3_7
|
||||
dev-python/voluptuous PYTHON_TARGETS: -* python3_7
|
||||
dev-python/voluptuous-serialize PYTHON_TARGETS: -* python3_7
|
||||
dev-python/wakeonlan PYTHON_TARGETS: -* python3_7
|
||||
dev-python/warrant PYTHON_TARGETS: -* python3_7
|
||||
dev-python/websocket-client PYTHON_TARGETS: -* python3_7
|
||||
dev-python/websockets PYTHON_TARGETS: -* python3_7
|
||||
dev-python/wheel PYTHON_TARGETS: -* python3_7
|
||||
dev-python/withings-api PYTHON_TARGETS: -* python3_7
|
||||
dev-python/xknx PYTHON_TARGETS: -* python3_7
|
||||
dev-python/xmltodict PYTHON_TARGETS: -* python3_7
|
||||
dev-python/yarl PYTHON_TARGETS: -* python3_7
|
||||
dev-python/youtube_dl PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zeroconf PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zha-quirks PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zigpy-deconz PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zigpy-homeassistant PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zigpy-xbee-homeassistant PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zigpy-zigate PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zm-py PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zope-component PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zope-event PYTHON_TARGETS: -* python3_7
|
||||
dev-python/zope-interface PYTHON_TARGETS: -* python3_7
|
||||
dev-libs/libxml2 python_targets_python2_7
|
||||
|
||||
73
python3_7.md
73
python3_7.md
@ -1,73 +0,0 @@
|
||||
# Python 3.7 Support
|
||||
|
||||
## Why?
|
||||
Home assistant will drop support for Python 3.6 with the first release after December 15, 2019:
|
||||
- https://github.com/home-assistant/home-assistant/pull/27680
|
||||
- https://github.com/home-assistant/architecture/blob/master/adr/0002-minimum-supported-python-version.md.
|
||||
|
||||
This code is already merged in the [dev branch](https://github.com/home-assistant/home-assistant/pull/27680/commits/a5eca20845e6825682d1b01c1be3c9c245b311e1):
|
||||
|
||||
if sys.version_info[:3] < (3, 7, 0):
|
||||
msg = (
|
||||
"Python 3.6 support is deprecated and will "
|
||||
"be removed in the first release after December 15, 2019. Please "
|
||||
"upgrade Python to 3.7.0 or higher."
|
||||
)
|
||||
_LOGGER.warning(msg)
|
||||
hass.components.persistent_notification.async_create(
|
||||
msg, "Python version", "python_version"
|
||||
)
|
||||
|
||||
- It's a bit extensive, but possible to run Python 3.7 on Gentoo Linux.
|
||||
- Starting with 0.101.2-r2, i got it running on my testbox.
|
||||
- A lot of dependencies are fulfilled with ebuilds from the main repository, and a couple of Gentoo's stable ebuilds do not yet have support for Python 3.7.
|
||||
- The unstable ebuild will grow your `package.accept_keywords` a bit.
|
||||
|
||||
## Testbox
|
||||
The current setup of my testbox: [python37dev](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/python37dev). Take a closer look in the [/etc/portage/](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/python37dev/etc/portage) folder. It compiles without errors, and Home Assistant starts on `python-3.7.5-r1`, made no other test up to now.
|
||||
|
||||
## package.accept_keywords
|
||||
Except a very few packages, unstable ebuilds are supporting Python 3.7, i have my current package.accept_keywords here: [package.accept_keywords](https://git.edevau.net/onkelbeh/HomeAssistantRepository/raw/branch/python37dev/etc/portage/package.accept_keywords/99_homeassistant). Main repo's packages *without* Python 3.7 support have been copied to my repo & patched.
|
||||
|
||||
## package.use
|
||||
After some experiments, i decided to compile the required modules **only for Python 3.7**. You will find my *current* package.use from the dev branch here: [package.use](https://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/python37dev/etc/portage/package.use). I have a dedicated box for Home Assistant, so this list looks clean, no bigger hacks. It will get more complicated if you have to compile some of the modules for other Python versions.
|
||||
|
||||
## Migration
|
||||
was easier as i thought.
|
||||
- unlock Python 3.7 code in /etc/portage/profile/use.stable.mask (see example)
|
||||
|
||||
` -python_targets_python3_7
|
||||
-python_single_target_python3_7`
|
||||
|
||||
- take [package.accept_keywords](https://git.edevau.net/onkel\
|
||||
beh/HomeAssistantRepository/raw/branch/python37dev/etc/portage/package.accept_keywords/99_homeassistant) and [package.use](http\
|
||||
s://git.edevau.net/onkelbeh/HomeAssistantRepository/src/branch/python37dev/etc/portage/package.use) from my dev box and copy it to `/etc/portage`
|
||||
- install Python 3.7, run `eselect python` to put Python 3.7 on postition 2
|
||||
- start `emerge --ask --changed-use --deep @world`
|
||||
- already installed packages could require 2.7 and 3.6 targets, OK, i had to allow 18 of them, we'll clean this up later:
|
||||
|
||||
` /etc/portage/package.use/99_local:
|
||||
>=dev-python/asn1crypto-0.24.0 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/async_timeout-3.0.1 python_targets_python3_6
|
||||
=dev-python/attrs-19.2.0 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/cffi-1.12.2 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/chardet-3.0.4 python_targets_python3_6
|
||||
>=dev-python/cryptography-2.8 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/future-0.17.1 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/idna-2.8 python_targets_python3_6
|
||||
>=dev-python/idna-ssl-1.1.0 python_targets_python3_6
|
||||
>=dev-python/lxml-4.3.3 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/multidict-4.5.2 python_targets_python3_6
|
||||
>=dev-python/pbr-5.1.3 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/pycparser-2.19 python_targets_python3_6 python_targets_python2_7
|
||||
>=dev-python/pyyaml-5.1.2 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/six-1.12.0 python_targets_python2_7 python_targets_python3_6
|
||||
>=dev-python/yarl-1.3.0 python_targets_python3_6
|
||||
>=dev-python/zope-interface-4.6.0 python_targets_python2_7 python_targets_python3_6`
|
||||
|
||||
- emerge/portage does not know in which Python's site-packages modules are already installed, some could still be missing in Python 3.7's site-packages, install them manually (after compile errors), in my case i had to install:
|
||||
- pyyaml
|
||||
- setuptools
|
||||
- setuptools_scm
|
||||
- restart `emerge --ask --changed-use --deep @world` after adding the missing tools and libraries
|
||||
- Once all packages are updated, you can remove the older targets in `package.use` and run another upgrade to remove support for Python 3.6.
|
||||
Loading…
x
Reference in New Issue
Block a user