Added
Link Here
|
1 |
PORTNAME= homeassistant |
2 |
# aiohttp==3.8.0, async_timeout==4.0.0 required after this release |
3 |
PORTVERSION= 2021.11.5 |
4 |
CATEGORIES= www python |
5 |
MASTER_SITES= CHEESESHOP |
6 |
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} |
7 |
|
8 |
MAINTAINER= rozhuk.im@gmail.com |
9 |
COMMENT= Open-source home automation platform running on Python 3 |
10 |
|
11 |
LICENSE= APACHE20 |
12 |
LICENSE_FILE= ${WRKSRC}/LICENSE.md |
13 |
|
14 |
# core/blob/dev/setup.py |
15 |
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiohttp>=3.7.4.p0:www/py-aiohttp@${PY_FLAVOR} \ |
16 |
${PYTHON_PKGNAMEPREFIX}astral>=2.2:astro/py-astral@${PY_FLAVOR} \ |
17 |
${PYTHON_PKGNAMEPREFIX}async_timeout>=3.0.1:devel/py-async_timeout@${PY_FLAVOR} \ |
18 |
${PYTHON_PKGNAMEPREFIX}attrs>=21.2.0:devel/py-attrs@${PY_FLAVOR} \ |
19 |
${PYTHON_PKGNAMEPREFIX}atomicwrites>=1.4.0:devel/py-atomicwrites@${PY_FLAVOR} \ |
20 |
${PYTHON_PKGNAMEPREFIX}awesomeversion>=22.1.0:devel/py-awesomeversion@${PY_FLAVOR} \ |
21 |
${PYTHON_PKGNAMEPREFIX}backports.zoneinfo>=0.2.1:devel/py-backports.zoneinfo@${PY_FLAVOR} \ |
22 |
${PYTHON_PKGNAMEPREFIX}bcrypt>=3.1.7:security/py-bcrypt@${PY_FLAVOR} \ |
23 |
${PYTHON_PKGNAMEPREFIX}certifi>=2021.5.30:security/py-certifi@${PY_FLAVOR} \ |
24 |
${PYTHON_PKGNAMEPREFIX}ciso8601>=2.2.0:devel/py-ciso8601@${PY_FLAVOR} \ |
25 |
${PYTHON_PKGNAMEPREFIX}httpx>=0.21.0:www/py-httpx@${PY_FLAVOR} \ |
26 |
${PYTHON_PKGNAMEPREFIX}ifaddr>=0.1.7:net/py-ifaddr@${PY_FLAVOR} \ |
27 |
${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0.1:devel/py-Jinja2@${PY_FLAVOR} \ |
28 |
${PYTHON_PKGNAMEPREFIX}pyjwt>=2.1.0:www/py-pyjwt@${PY_FLAVOR} |
29 |
# core/blob/dev/setup.py # PyJWT has loose dependency. We want the latest one. |
30 |
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cryptography>=3.3.2:security/py-cryptography@${PY_FLAVOR} \ |
31 |
${PYTHON_PKGNAMEPREFIX}pip>=20.3.4:devel/py-pip@${PY_FLAVOR} \ |
32 |
${PYTHON_PKGNAMEPREFIX}python-slugify>=4.0.1:textproc/py-python-slugify@${PY_FLAVOR} \ |
33 |
${PYTHON_PKGNAMEPREFIX}yaml>=5.4.1:devel/py-yaml@${PY_FLAVOR} \ |
34 |
${PYTHON_PKGNAMEPREFIX}requests>=2.25.1:www/py-requests@${PY_FLAVOR} \ |
35 |
${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.10.0.2:devel/py-typing-extensions@${PY_FLAVOR} \ |
36 |
${PYTHON_PKGNAMEPREFIX}voluptuous>=0.12.0:devel/py-voluptuous@${PY_FLAVOR} \ |
37 |
${PYTHON_PKGNAMEPREFIX}voluptuous-serialize>=2.5.0:devel/py-voluptuous-serialize@${PY_FLAVOR} \ |
38 |
${PYTHON_PKGNAMEPREFIX}yarl>=1.6.3:www/py-yarl@${PY_FLAVOR} |
39 |
# Extra deps: failed to install via pip or have no fixed version or optional. |
40 |
RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} \ |
41 |
${PYTHON_PKGNAMEPREFIX}home-assistant-frontend>=20211229.1:www/py-home-assistant-frontend@${PY_FLAVOR} \ |
42 |
${PYTHON_PKGNAMEPREFIX}hass-nabucasa>=0.43.0:devel/py-hass-nabucasa@${PY_FLAVOR} |
43 |
|
44 |
USES= python:3.8+ |
45 |
USE_PYTHON= autoplist concurrent distutils |
46 |
USE_RC_SUBR= homeassistant |
47 |
|
48 |
USERS= homeassistant |
49 |
GROUPS= homeassistant |
50 |
|
51 |
SUB_LIST= PYTHON_CMD=${PYTHON_CMD} \ |
52 |
PYTHON_VERSION=${PYTHON_VERSION} |
53 |
|
54 |
NO_ARCH= yes |
55 |
|
56 |
OPTIONS_GROUP= DB |
57 |
OPTIONS_GROUP_DB= MSSQL MYSQL PYMYSQL PGSQL |
58 |
|
59 |
MSSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pymssql>=0:databases/py-pymssql@${PY_FLAVOR} |
60 |
MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=0:databases/py-mysqlclient@${PY_FLAVOR} |
61 |
PYMYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pymysql>=0:databases/py-pymysql@${PY_FLAVOR} |
62 |
PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}psycopg2>=2.7:databases/py-psycopg2@${PY_FLAVOR} |
63 |
|
64 |
MYSQL_DESC= MySQL/MariaDB support |
65 |
PYMYSQL_DESC= MySQL/MariaDB support via pymysql |
66 |
|
67 |
|
68 |
post-patch: |
69 |
.for __RUN_DEPEND in ${RUN_DEPENDS} |
70 |
@${ECHO} -n "${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}: " |
71 |
@${GREP} -E "^${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}(>|<|==|>=|<=)" \ |
72 |
${WRKSRC}/homeassistant/package_constraints.txt | \ |
73 |
${SED} -E "s/${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}(>|<|==|>=|<=)([.0-9]*)/\2/g" | \ |
74 |
${TR} -cd '[:print:]' |
75 |
@${ECHO} " -> ${__RUN_DEPEND:C/.*(>|<|==|>=|<=)(.*)[:].*/\2/}" |
76 |
|
77 |
@${REINPLACE_CMD} -E \ |
78 |
-e "s/(^|\")${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}(>|<|==|>=|<=)[.0-9]*/\1${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}>=${__RUN_DEPEND:C/.*(>|<|==|>=|<=)(.*)[:].*/\2/}/g" \ |
79 |
${WRKSRC}/setup.py \ |
80 |
${WRKSRC}/homeassistant/package_constraints.txt \ |
81 |
${WRKSRC}/homeassistant/auth/mfa_modules/*.py \ |
82 |
${WRKSRC}/homeassistant/scripts/*.py \ |
83 |
${WRKSRC}/homeassistant/components/*/manifest.json |
84 |
.endfor |
85 |
# Port name did not match python packet name. |
86 |
# PyNaCl sqlalchemy |
87 |
.for __RUN_DEPEND in jinja2 PyJWT pyyaml |
88 |
@${ECHO} -n "${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}: " |
89 |
@${GREP} -E "^${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}(>|<|==|>=|<=)" \ |
90 |
${WRKSRC}/homeassistant/package_constraints.txt | \ |
91 |
${SED} -E "s/${__RUN_DEPEND:C/(.*)(>|<|==|>=|<=).*/\1/}(>|<|==|>=|<=)([.0-9]*)/\2/g" | \ |
92 |
${TR} -cd '[:print:]' |
93 |
@${ECHO} " -> ${__RUN_DEPEND:C/.*(>|<|==|>=|<=)(.*)[:].*/\2/} >=0" |
94 |
|
95 |
@${REINPLACE_CMD} -E \ |
96 |
-e 's/(^|\")${__RUN_DEPEND}(>|<|==|>=|<=)[.0-9]*/\1${__RUN_DEPEND}>=0/g' \ |
97 |
${WRKSRC}/setup.py \ |
98 |
${WRKSRC}/homeassistant/package_constraints.txt \ |
99 |
${WRKSRC}/homeassistant/auth/mfa_modules/*.py \ |
100 |
${WRKSRC}/homeassistant/scripts/*.py \ |
101 |
${WRKSRC}/homeassistant/components/*/manifest.json |
102 |
.endfor |
103 |
@${REINPLACE_CMD} -E "s/(^|\")pip(>|<|==|>=|<=)([.0-9]*),(>|<|==|>=|<=)([.0-9]*)/\1pip\2\3/" \ |
104 |
${WRKSRC}/setup.py \ |
105 |
${WRKSRC}/homeassistant/package_constraints.txt |
106 |
@${FIND} ${WRKSRC} -name '*.bak' -name '*.orig' -delete |
107 |
|
108 |
post-stage: |
109 |
@${MKDIR} ${STAGEDIR}/var/db/homeassistant |
110 |
@${ECHO_CMD} "@dir(homeassistant,homeassistant,) /var/db/homeassistant" >> ${TMPPLIST} |
111 |
|
112 |
.include <bsd.port.mk> |