snapcraft.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. name: home-assistant-snap
  2. version: '2021.1.5'
  3. summary: Open source home automation that puts local control and privacy first
  4. description: |
  5. Home Assistant is a home automation platform running on Python 3.
  6. It is able to track and control all devices at home and offer a
  7. platform for automating control.
  8. Please see official docs: https://git.giaever.org/joachimmg/home-assistant-snap
  9. base: core20
  10. grade: stable
  11. confinement: strict
  12. license: Apache-2.0
  13. layout:
  14. /etc/pip.conf:
  15. bind-file: $SNAP_DATA/pip.conf
  16. /etc/openzwave:
  17. bind: $SNAP/openzwave
  18. plugs:
  19. bin:
  20. interface: content
  21. content: executables
  22. target: $SNAP/shared-bin
  23. slots:
  24. components:
  25. interface: content
  26. content: components
  27. write:
  28. - $SNAP_DATA/custom_components
  29. certs:
  30. interface: content
  31. content: certs
  32. write:
  33. - $SNAP_DATA/certs
  34. configurations:
  35. interface: content
  36. write:
  37. - $SNAP_DATA
  38. hooks:
  39. install:
  40. plugs:
  41. - network
  42. - network-bind
  43. prepare-slot-certs:
  44. plugs:
  45. - network
  46. - network-bind
  47. apps:
  48. home-assistant-snap:
  49. command: bin/hass --config $SNAP_DATA
  50. command-chain:
  51. - bin/plug-bin
  52. daemon: simple
  53. environment:
  54. PIP_USER: 1
  55. restart-condition: always
  56. plugs:
  57. - bluez
  58. - network
  59. - network-bind
  60. - raw-usb
  61. # GPIO devices etc.. (e.g RaZberry HAT)
  62. - physical-memory-control
  63. - removable-media
  64. slots:
  65. - components
  66. check-config:
  67. command: bin/hass --script check_config
  68. renew-cert:
  69. command: bin/certs-daemon
  70. daemon: oneshot
  71. restart-condition: always
  72. timer: 00:00-24:00/24
  73. slots:
  74. - certs
  75. plugs:
  76. - network
  77. - network-bind
  78. force-renew-cert:
  79. command: bin/certs-daemon
  80. slots:
  81. - certs
  82. plugs:
  83. - network
  84. - network-bind
  85. parts:
  86. homeassistant:
  87. plugin: python-wot-plugin
  88. source: https://github.com/home-assistant/core.git
  89. source-tag: ${SNAPCRAFT_PROJECT_VERSION}
  90. python-packages:
  91. - setuptools
  92. - wheel
  93. - Cython
  94. - pip
  95. build-packages:
  96. - python3
  97. - python3-dev
  98. - python3-setuptools
  99. - python3-wheel
  100. - pkg-config
  101. - autoconf
  102. - build-essential
  103. - cmake
  104. - cython3
  105. - ffmpeg
  106. - libavcodec-dev
  107. - libavdevice-dev
  108. - libavfilter-dev
  109. - libavformat-dev
  110. - libavresample-dev
  111. - libavutil-dev
  112. - libffi-dev
  113. - libglib2.0-dev
  114. - libglu1-mesa-dev
  115. - libgpiod-dev
  116. - libjpeg-dev
  117. - libopenzwave1.5-dev
  118. - libssl-dev
  119. - libswscale-dev
  120. - libudev-dev
  121. - libxml2-dev
  122. - libxslt1-dev
  123. - zlib1g-dev
  124. stage-packages:
  125. - freeglut3
  126. - ffmpeg
  127. - libglu1-mesa
  128. - zlib1g
  129. requirements:
  130. - requirements_all.txt
  131. constraints:
  132. - homeassistant/package_constraints.txt
  133. override-build: |
  134. snapcraftctl build
  135. sed -i 's/include-system-site-packages = false/include-system-site-packages = true/g' $SNAPCRAFT_PART_INSTALL/pyvenv.cfg
  136. hooks:
  137. plugin: dump
  138. source: ./scripts/hooks
  139. source-type: local
  140. stage-packages:
  141. - uuid
  142. - libossp-uuid16
  143. - libassuan0
  144. - gpg
  145. - gpg-agent
  146. organize:
  147. install: snap/hooks/install
  148. configure: snap/hooks/configure
  149. post-refresh: snap/hooks/post-refresh
  150. prepare-slot-certs: snap/hooks/prepare-slot-certs
  151. connect-plug-bin: snap/hooks/connect-plug-bin
  152. bins:
  153. plugin: dump
  154. source: ./scripts/bin
  155. source-type: local
  156. organize:
  157. slot-certs: bin/slot-certs
  158. certs-daemon: bin/certs-daemon
  159. config:
  160. plugin: dump
  161. source: ./scripts/config
  162. source-type: local
  163. organize:
  164. plug-bin: bin/plug-bin