Has this project a future? #1777

Closed
opened 2023-08-25 14:37:20 +02:00 by jump · 19 comments

In the past this overlay made me a lot of fun because I like full control over the software that I use. Thank you very much onkelbeh for your hard work on this fantastic project.

Nowadays it's a little different. I have a custom integration that needs a newer version of HA and the Gentoo Python repository is not standing still either. It's a kind of patching and masking game to keep HA 2023.04.06 alive.

I hope everything is OK with you and your family onkelbeh?

Can you please make a statement in the README.md how the future is going to be with this overlay?

Things like this would be of interest (suspended until, release cycles, problems in the pipe, donations, etc.)

In the past this overlay made me a lot of fun because I like full control over the software that I use. Thank you very much onkelbeh for your hard work on this fantastic project. Nowadays it's a little different. I have a custom integration that needs a newer version of HA and the Gentoo Python repository is not standing still either. It's a kind of patching and masking game to keep HA 2023.04.06 alive. I hope everything is OK with you and your family onkelbeh? Can you please make a statement in the README.md how the future is going to be with this overlay? Things like this would be of interest (suspended until, release cycles, problems in the pipe, donations, etc.)
Contributor

That's why I proposed simplifying the packages by trying to use the official gentoo python system #1775

That's why I proposed simplifying the packages by trying to use the official gentoo python system #1775
jump closed this issue 2023-09-16 14:37:08 +02:00

@jump Reasons for closure?

I keep coming back to this bug, two months without any Andreas commit, Is he alive?

Did you find a solution? Maybe a debian box with docker?

@jump Reasons for closure? I keep coming back to this bug, two months without any Andreas commit, Is he alive? Did you find a solution? Maybe a debian box with docker?
jump reopened this issue 2023-09-17 20:38:55 +02:00
Author

We need to be patient. I don't know what hapened to onkelbeh. But something went south. I'm pretty sure.

We need to be patient. I don't know what hapened to onkelbeh. But something went south. I'm pretty sure.

I am planning to put versions of these ebuilds in my overlay. There will likely be a lot less integrations because I only use a few. Like here I will accept requests.

It will be a bit of work but after the initial work I have an automatic updater (livecheck) and I always update everything weekly.

I am planning to put versions of these ebuilds in [my overlay](https://github.com/Tatsh/tatsh-overlay). There will likely be a lot less integrations because I only use a few. Like here I will accept requests. It will be a bit of work but after the initial work I have an automatic updater ([livecheck](https://github.com/Tatsh/livecheck)) and I always update everything weekly.
Contributor

I will try to help as much as I can, given that I have little time now. I am currently maintaining my repository at https://github.com/inode64/inode64-overlay. I also preferred that it continue in this repository and it is also possible to simplify the work by using the ebuilds from the main gentoo repository, look at the issue #1775

I will try to help as much as I can, given that I have little time now. I am currently maintaining my repository at https://github.com/inode64/inode64-overlay. I also preferred that it continue in this repository and it is also possible to simplify the work by using the ebuilds from the main gentoo repository, look at the issue #1775

I have been monitoring this "bug" for quite a while as well. Today I decided to try creating my own ebuild to get homeassistant to the latest version 2023.9.2 and it seems to have worked fine.

I don't consider it all that important to have every single dependency for homeassistant install to the system-wide packages directory so I had already made small modifications to my install to make sure it installs everything it needs to a virtual environment. I do let the virtual environment use system-wide packages if they are found, so it shouldn't actually be causing many duplicates of python packages being installed.

I don't remember all the required steps but basically it should be just removing the --skip-pip flag when starting hass and then making sure there's a virtual environment installed to /etc/homeassistant/.

I then removed pretty much every single use flag and dependency except "<dev-python/pip-23.1" in the ebuild, renamed it "-2023.9.2.ebuild" and installed it through a local overlay.

After this hass started installing the required dependencies to its virtual environment and then started up fine except some small problem where it was unable to initialize "Cloud" which also made "mobile_app" & "default_config" fail. An issue on github said this was because typing-extensions should be at least 4.6.3, which I already had (4.7.1 from offical gentoo repo), but I just tried installing the latest version to the virtual environment, restarting homeassistant and then those errors disappeared. Not sure if that was what solved it or if homeassistant just needed another restart for some reason... Other than this I am now up and running on 2023.9.2 from 2023.5.4 with seemingly no issues.

Just some notes if someone else also wants to try this or if someone else wants to maintain this on an overlay.

I have been monitoring this "bug" for quite a while as well. Today I decided to try creating my own ebuild to get homeassistant to the latest version 2023.9.2 and it seems to have worked fine. I don't consider it all that important to have every single dependency for homeassistant install to the system-wide packages directory so I had already made small modifications to my install to make sure it installs everything it needs to a virtual environment. I do let the virtual environment use system-wide packages if they are found, so it shouldn't actually be causing many duplicates of python packages being installed. I don't remember all the required steps but basically it should be just removing the --skip-pip flag when starting hass and then making sure there's a virtual environment installed to /etc/homeassistant/. I then removed pretty much every single use flag and dependency except "<dev-python/pip-23.1" in the ebuild, renamed it "-2023.9.2.ebuild" and installed it through a local overlay. After this hass started installing the required dependencies to its virtual environment and then started up fine except some small problem where it was unable to initialize "Cloud" which also made "mobile_app" & "default_config" fail. An issue on github said this was because typing-extensions should be at least 4.6.3, which I already had (4.7.1 from offical gentoo repo), but I just tried installing the latest version to the virtual environment, restarting homeassistant and then those errors disappeared. Not sure if that was what solved it or if homeassistant just needed another restart for some reason... Other than this I am now up and running on 2023.9.2 from 2023.5.4 with seemingly no issues. Just some notes if someone else also wants to try this or if someone else wants to maintain this on an overlay.

Hello @AnonymousRetard , thanks for sharing
I'm also allowing HA to install extentions via pip...
From what I remember, HA need a minimum set of python packages to start (not only pip).
Do you have an ebuild to share with us?

Maybe we can have something hybrid, like have HA + gentoo's available python (I don't know how much packages are already in gentoo, maybe it's not worth the trouble if the number of gentoo packages is very low)

Hello @AnonymousRetard , thanks for sharing I'm also allowing HA to install extentions via pip... From what I remember, HA need a minimum set of python packages to start (not only pip). Do you have an ebuild to share with us? Maybe we can have something hybrid, like have HA + gentoo's available python (I don't know how much packages are already in gentoo, maybe it's not worth the trouble if the number of gentoo packages is very low)

Sure, here's a link: https://pastebin.com/hAhSrUcP

It probably has a bunch of problems for machines other than mine. I don't really know how to make ebuilds, but small hacks and generating new digest files I can handle.

The things I remember changing are:

  1. Removing almost all dependencies but I left everything regarding systemd and zwave-js since I use those two and I know the zwave-js service is running outside of homeassistant (this package which is from the tatsh overlay is probably not pulled in by the part I left in there though.. not entirely sure).
  2. Removing most things regarding testing since I don't really care about that. The "test" use-flag still exists though which I'm not sure why. I don't have it selected.
  3. Found something about python 3.9 which I removed since it seemed inconsistent and I'm on 3.11 now (and so is official homeassistant).
  4. Removed sqlite dependency since my installation is migrated to postgresql.

Not sure if I forgot some other small change but that's what I remember. There are still a few dependencies left that didn't require any useflags and weren't from the dev-python category. If you use the default file database you probably want to put the sqlite dependency back.

The tar.gz that gets downloaded seems to just be based on the name of the ebuild file. In my case I modified the homeassistant-min package since that was what I was using before but a cleaner version of this would probably get rid of the -min/-full packages and just do one which relies on a virtual environment. Preferably the ebuild should set that up properly as well, this is very much just a quick hack.

Also worth nothing is that I have not yet tried doing a --depclean to remove all dependencies that were previously installed and then restarted homeassistant again. I will do that sometime next week probably but I'm pretty sure that doing so risks breaking something I missed.

Edit: I took a quick closer look at the zwave-js-server-python, which I also remember updating to version 0.48.1 but I see now it was completely uneccessary either way because this package is from this overlay and its outdated. My homeassistant installation already installed version 0.51.2 of this package in it's virtual environment, so it's better to just remove this use flag and dependency even if you use zwave.

The other part you need is zwave-js-server which tatsh is maintaining in his overlay, or an installation of zwavejs2mqtt (which I think has changed name to "Z-Wave JS UI" now).

Sure, here's a link: https://pastebin.com/hAhSrUcP It probably has a bunch of problems for machines other than mine. I don't really know how to make ebuilds, but small hacks and generating new digest files I can handle. The things I remember changing are: 1. Removing almost all dependencies but I left everything regarding systemd and zwave-js since I use those two and I know the zwave-js service is running outside of homeassistant (this package which is from the tatsh overlay is probably not pulled in by the part I left in there though.. not entirely sure). 2. Removing most things regarding testing since I don't really care about that. The "test" use-flag still exists though which I'm not sure why. I don't have it selected. 3. Found something about python 3.9 which I removed since it seemed inconsistent and I'm on 3.11 now (and so is official homeassistant). 4. Removed sqlite dependency since my installation is migrated to postgresql. Not sure if I forgot some other small change but that's what I remember. There are still a few dependencies left that didn't require any useflags and weren't from the dev-python category. If you use the default file database you probably want to put the sqlite dependency back. The tar.gz that gets downloaded seems to just be based on the name of the ebuild file. In my case I modified the homeassistant-min package since that was what I was using before but a cleaner version of this would probably get rid of the -min/-full packages and just do one which relies on a virtual environment. Preferably the ebuild should set that up properly as well, this is very much just a quick hack. Also worth nothing is that I have not yet tried doing a --depclean to remove all dependencies that were previously installed and then restarted homeassistant again. I will do that sometime next week probably but I'm pretty sure that doing so risks breaking something I missed. Edit: I took a quick closer look at the zwave-js-server-python, which I also remember updating to version 0.48.1 but I see now it was completely uneccessary either way because this package is from this overlay and its outdated. My homeassistant installation already installed version 0.51.2 of this package in it's virtual environment, so it's better to just remove this use flag and dependency even if you use zwave. The other part you need is zwave-js-server which tatsh is maintaining in his overlay, or an installation of zwavejs2mqtt (which I think has changed name to "Z-Wave JS UI" now).

thanks. It is indeed a lot smaller. I will test it when i have a moment

thanks. It is indeed a lot smaller. I will test it when i have a moment

An update: I installed 2023.9.3 and tried to depclean which teached me that there's a lot of python packages as well that need to exist in the virtual environment or be installed to the system-wide python packages directory for homeassistant to even be able to start and automatically install the rest of the requirements for integrations in use. I think most (maybe all?) of them are documented here: https://github.com/home-assistant/core/blob/dev/requirements.txt .

But I basically looked at the logs with journalctl and installed everything it was complaining about one by one to fix my installation again. Unless this project becomes more up-to-date again I'll probably keep installing the latest version manually with my own ebuild every time and I'll try to improve it a bit every time but as of right now I don't really have a much better ebuild to share.

An update: I installed 2023.9.3 and tried to depclean which teached me that there's a lot of python packages as well that need to exist in the virtual environment or be installed to the system-wide python packages directory for homeassistant to even be able to start and automatically install the rest of the requirements for integrations in use. I think most (maybe all?) of them are documented here: https://github.com/home-assistant/core/blob/dev/requirements.txt . But I basically looked at the logs with journalctl and installed everything it was complaining about one by one to fix my installation again. Unless this project becomes more up-to-date again I'll probably keep installing the latest version manually with my own ebuild every time and I'll try to improve it a bit every time but as of right now I don't really have a much better ebuild to share.

Hello,

Yes, installing manually homeassistant we need to first install the requirements.txt (but the versions inside are not enough, we need to check the constraints (at the top of the file) to be 100% we do not end up with an incompatible version :( )

Maybe a solution would be to have a "ultra-min" version, with just the bare minimum for homeasisstant to start. It will be far easier to maintain in case of breakage. This will require a small number of python package from this repo (if they exist)

Hello, Yes, installing manually homeassistant we need to first install the requirements.txt (but the versions inside are not enough, we need to check the constraints (at the top of the file) to be 100% we do not end up with an incompatible version :( ) Maybe a solution would be to have a "ultra-min" version, with just the bare minimum for homeasisstant to start. It will be far easier to maintain in case of breakage. This will require a small number of python package from this repo (if they exist)

I believe that @onkelbeh do have a script that just install home assistant core with bare minimum requirements, starts it, and and check the downloader packages to compare them against the available ebuilds...

I believe that @onkelbeh do have a script that just install home assistant core with bare minimum requirements, starts it, and and check the downloader packages to compare them against the available ebuilds...
Owner

Hey Guys,

was very busy otherwise. Sorry for that.
Will clean up soon and a do a build with 2023.10.x
Have not read all the tickets, will read these during the compiler is running.

Hey Guys, was very busy otherwise. Sorry for that. Will clean up soon and a do a build with 2023.10.x Have not read all the tickets, will read these during the compiler is running.
Author

I'm very glad to hear from you onkelbeh. Please leave a annotation the next time you're busy otherwise. Just a few words in the README.md that the project is temporary suspended because of other more important things in your life. It's much easier for us to understand what's going on. There are people who care about you and this project, including me.

I'm very glad to hear from you onkelbeh. Please leave a annotation the next time you're busy otherwise. Just a few words in the README.md that the project is temporary suspended because of other more important things in your life. It's much easier for us to understand what's going on. There are people who care about you and this project, including me.

Also glad to hear you are back onkelbeh, your work on this is much appreciated. I upgraded to 2023.10.1 today with yet another modified ebuild of yours and it worked great.

This time I looked at the requirements.txt file, package-constraints.txt file and re-added all dependencies I previously removed which are available at the correct versions either from the official gentoo repository or this repository and the result was this:
https://pastebin.com/QCmAZDyh

After merging this I ran a --depclean followed by
sudo -u homeassistant pip3.11 install -r requirements.txt --target=/etc/homeassistant/deps/lib/python3.11/site-packages -U

To make sure all required dependencies missing from the ebuild would got installed and then started homeassistant with no issues or error messages. The virtual environment was not emptied before this though so if there were packages I had installed previously which would somehow not get picked up by this procedure I wouldn't have detected it.

Also glad to hear you are back onkelbeh, your work on this is much appreciated. I upgraded to 2023.10.1 today with yet another modified ebuild of yours and it worked great. This time I looked at the requirements.txt file, package-constraints.txt file and re-added all dependencies I previously removed which are available at the correct versions either from the official gentoo repository or this repository and the result was this: https://pastebin.com/QCmAZDyh After merging this I ran a --depclean followed by `sudo -u homeassistant pip3.11 install -r requirements.txt --target=/etc/homeassistant/deps/lib/python3.11/site-packages -U` To make sure all required dependencies missing from the ebuild would got installed and then started homeassistant with no issues or error messages. The virtual environment was not emptied before this though so if there were packages I had installed previously which would somehow not get picked up by this procedure I wouldn't have detected it.

I see that the 2023.10 branch is almost ready to be merged!!

I see that the 2023.10 branch is almost ready to be merged!!
Owner

Yep.
But still a lot to do :-)

Yep. But still a lot to do :-)
Owner

Just added the missing annotation (or was it Chat-GPT?) to the main page, as well as 2 fresh releases of Home Assistant and ESPHome.

Still, there are a couple of packages without Mister Gorny's pypi-Eclass implemented.
If anybody needs one of these, just let me know. Or file a PR.

Happy automating! (<- hehe, would never have thought of something like this)

Just added the missing annotation (or was it Chat-GPT?) to the main page, as well as 2 fresh releases of Home Assistant and ESPHome. Still, there are a couple of packages without Mister Gorny's pypi-Eclass implemented. If anybody needs one of these, just let me know. Or file a PR. Happy automating! (<- hehe, would never have thought of something like this)
Author

Thank you all together.

Thank you all together.
jump closed this issue 2023-10-28 17:54:53 +02:00
Sign in to join this conversation.
No Label
Bug
Bump/Update
Cleanup
Dupe
Enhancement
File Collision
Forked
help wanted
Integration: accuweather
Integration: acmeda
Integration: acomax
Integration: adax
Integration: adguard
Integration: aemet
Integration: aep_ohio
Integration: aep_texas
Integration: airq
Integration: airthings
Integration: airthings_ble
Integration: airtouch5
Integration: airzone
Integration: airzone_cloud
Integration: amazon_polly
Integration: amberelectric
Integration: ambient_station
Integration: analytics_insights
Integration: anel_pwrctrl
Integration: aosmith
Integration: apache_kafka
Integration: apcupsd
Integration: appalachianpower
Integration: apprise
Integration: aprilaire
Integration: aranet
Integration: aseko_pool_live
Integration: asuswrt
Integration: august
Integration: aws
Integration: axis
Integration: backup
Integration: bang_olufsen
Integration: blebox
Integration: blink
Integration: bluetooth
Integration: blue_current
Integration: bmw_connected_drive
Integration: bosch_shc
Integration: bring
Integration: brother
Integration: brottsplatskartan
Integration: bsblan
Integration: bthome
Integration: caldav
Integration: cast
Integration: ccm15
Integration: cloud
Integration: cloudflare
Integration: co2signal
Integration: coautilities
Integration: comelit
Integration: conversation
Integration: debugpy
Integration: deconz
Integration: deluge
Integration: denonavr
Integration: devialet
Integration: devolo_home_control
Integration: dhcp
Integration: discord
Integration: discovergy
Integration: dlna_dmr
Integration: dlna_dms
Integration: dnsip
Integration: doods
Integration: drop_connect
Integration: dsmr
Integration: duotecno
Integration: duquesne_light
Integration: dwd_weather_warnings
Integration: easyenergy
Integration: ecobee
Integration: ecoforest
Integration: ecovacs
Integration: ecowitt
Integration: elgato
Integration: elvia
Integration: energyzero
Integration: enigma2
Integration: enphase_envoy
Integration: epion
Integration: esphome
Integration: evohome
Integration: ffmpeg
Integration: fjaraskupan
Integration: flexit_bacnet
Integration: flipr
Integration: forecast_solar
Integration: foscam
Integration: fritzbox
Integration: fronius
Integration: frontend
Integration: fujitsu_anywair
Integration: fyta
Integration: garages_amsterdam
Integration: gardena_bluetooth
Integration: gdacs
Integration: generic
Integration: geonetnz_quakes
Integration: geonetnz_volcano
Integration: geo_json_events
Integration: geo_rss_events
Integration: gios
Integration: glances
Integration: goodwe
Integration: google
Integration: google_assistant_sdk
Integration: google_generative_ai_conversation
Integration: govee_ble
Integration: govee_light_local
Integration: hive
Integration: hko
Integration: holiday
Integration: homekit_controller
Integration: homematicip_cloud
Integration: homewizard
Integration: honeywell
Integration: hp_ilo
Integration: html5
Integration: http
Integration: hue
Integration: hunterdouglas_powerview
Integration: husqvarna_automower
Integration: huum
Integration: hydrawise
Integration: iammeter
Integration: ibeacon
Integration: idasen_desk
Integration: ign_sismologia
Integration: image_upload
Integration: indianamichiganpower
Integration: insteon
Integration: ipp
Integration: islamic_prayer_times
Integration: justnimbus
Integration: jvc_projector
Integration: kef
Integration: kentuckypower
Integration: keymitt_ble
Integration: knx
Integration: kostal_plenticore
Integration: krispol
Integration: lamarzocco
Integration: ld2410_ble
Integration: leaone
Integration: led_ble
Integration: life360
Integration: lifx
Integration: linear_garage_door
Integration: litejet
Integration: litterrobot
Integration: local_calendar
Integration: local_todo
Integration: loqed
Integration: luci
Integration: lupusec
Integration: lutron
Integration: lutron_caseta
Integration: madeco
Integration: mastodon
Integration: matrix
Integration: matter
Integration: media_extractor
Integration: melcloud
Integration: met
Integration: meteoclimatic
Integration: meteo_france
Integration: metoffice
Integration: microbees
Integration: mill
Integration: minecraft_server
Integration: modbus
Integration: mopeka
Integration: motionblinds_ble
Integration: motionmount
Integration: motion_blinds
Integration: myuplink
Integration: nam
Integration: neato
Integration: netatmo
Integration: nexia
Integration: nextbus
Integration: nextcloud
Integration: nextdns
Integration: nibe_heatpump
Integration: nmap_tracker
Integration: nobo_hub
Integration: norway_air
Integration: notion
Integration: nsw_rural_fire_service_feed
Integration: nuki
Integration: numato
Integration: nut
Integration: nws
Integration: ollama
Integration: oncue
Integration: ondilo_ico
Integration: openai_conversation
Integration: openerz
Integration: open_meteo
Integration: opower
Integration: orvibo
Integration: osoenergy
Integration: otbr
Integration: ourgroceries
Integration: overkiz
Integration: p1_monitor
Integration: pegel_online
Integration: permobil
Integration: plex
Integration: plugwise
Integration: powerwall
Integration: private_ble_device
Integration: proxy
Integration: prusalink
Integration: psoklahoma
Integration: pulseaudio_loopback
Integration: pure_energie
Integration: pvoutput
Integration: qingping
Integration: qld_bushfire
Integration: qrcode
Integration: rabbitair
Integration: rachio
Integration: radio_browser
Integration: rainbird
Integration: rainforest_raven
Integration: rainmachine
Integration: rdw
Integration: recorder
Integration: refoss
Integration: renault
Integration: renson
Integration: reolink
Integration: rflink
Integration: rfxtrx
Integration: ridwell
Integration: ring
Integration: risco
Integration: roborock
Integration: roku
Integration: romy
Integration: roomba
Integration: roon
Integration: route53
Integration: rova
Integration: samsam
Integration: samsungtv
Integration: schlage
Integration: scl
Integration: screenlogic
Integration: sensibo
Integration: sensorpush
Integration: sentry
Integration: seven_segments
Integration: sfr_box
Integration: shelly
Integration: sighthound
Integration: signal_messenger
Integration: simplisafe
Integration: sleepiq
Integration: slimproto
Integration: smarttub
Integration: smud
Integration: snmp
Integration: songpal
Integration: sonos
Integration: sql
Integration: squeezebox
Integration: ssdp
Integration: subaru
Integration: suez_water
Integration: sunweg
Integration: surepetcare
Integration: swepco
Integration: swiss_public_transport
Integration: switchbot
Integration: switchbot_cloud
Integration: switcher_kis
Integration: system_bridge
Integration: tado
Integration: tailwind
Integration: tankerkoenig
Integration: tasmota
Integration: technove
Integration: tedee
Integration: telegram_bot
Integration: temper
Integration: tensorflow
Integration: teslemetry
Integration: tessie
Integration: thermobeacon
Integration: thermopro
Integration: thread
Integration: tile
Integration: tolo
Integration: tplink
Integration: tplink_omada
Integration: tplink_tapo
Integration: traccar
Integration: traccar_server
Integration: trafikverket_camera
Integration: trafikverket_ferry
Integration: trafikverket_train
Integration: trafikverket_weatherstation
Integration: transmission
Integration: tuya
Integration: twentemilieu
Integration: unifi
Integration: unifiprotect
Integration: unifi_direct
Integration: upnp
Integration: usgs_earthquakes_feed
Integration: utility_meter
Integration: v2c
Integration: vallox
Integration: valve
Integration: velbus
Integration: velux
Integration: vicare
Integration: vilfo
Integration: vodafone_station
Integration: vulcan
Integration: wallbox
Integration: waqi
Integration: waze_travel_time
Integration: weatherflow_cloud
Integration: weatherkit
Integration: webmin
Integration: webostv
Integration: wemo
Integration: whirlpool
Integration: withings
Integration: wolflink
Integration: workday
Integration: wyoming
Integration: xiaomi_ble
Integration: yalexs_ble
Integration: yeelight
Integration: yolink
Integration: zamg
Integration: zeroconf
Integration: zha
Integration: zhong_hong
Integration: zondergas
Integration: zoneminder
Integration: zwave_js
invalid
New Integration
Python 3.10
Python 3.11
question
requirement
Requirement vanished
slot-conflict
Source Incomplete
SrcDir ${S} mismatch
TopLevelViolation
Update required
virtual
wontfix
No Milestone
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: onkelbeh/HomeAssistantRepository#1777
No description provided.