blob: e04dfbac21c84efca246e0dbbf1cf7d3946e3745 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
PORTNAME= mythtv
DISTVERSIONPREFIX= v
DISTVERSION= 35.0
PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= multimedia
MAINTAINER= ahicks@p-o.co.uk
COMMENT= Homebrew PVR project
WWW= https://www.mythtv.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/../LICENSE
BUILD_DEPENDS= yasm:devel/yasm \
${LOCALBASE}/include/linux/input.h:devel/evdev-proto
LIB_DEPENDS= liblzo2.so:archivers/lzo2 \
libmp3lame.so:audio/lame \
libsamplerate.so:audio/libsamplerate \
libtag.so:audio/taglib \
libexiv2.so:graphics/exiv2 \
libva.so:multimedia/libva \
libbluray.so:multimedia/libbluray \
libass.so:multimedia/libass \
libfftw3_threads.so:math/fftw3 \
libfftw3f.so:math/fftw3-float \
libfreetype.so:print/freetype2 \
libdav1d.so:multimedia/dav1d \
libaom.so:multimedia/aom \
libdrm.so:graphics/libdrm \
libpulse.so:audio/pulseaudio \
libjack.so:audio/jack \
libSoundTouch.so:audio/soundtouch \
libasound.so:audio/alsa-lib \
libsndio.so:audio/sndio \
libgnutls.so:security/gnutls \
libzip.so:archivers/libzip \
libexpat.so:textproc/expat2 \
libudfread.so:multimedia/libudfread
RUN_DEPENDS+= tv_check:textproc/p5-xmltv \
wget:ftp/wget
USES= compiler:c++17-lang gmake gl gnome iconv libtool localbase:ldflags \
pkgconfig pathfix perl5 python qmake:no_env qt:5 shebangfix ssl xorg
USE_GITHUB= yes
GH_ACCOUNT= MythTV
USE_GL= gl
USE_GNOME= libxml2
USE_LDCONFIG= yes
USE_PERL5= run build
USE_QT= buildtools:build core dbus gui imageformats:run \
linguist:build multimedia network opengl qmake:build script \
sql sql-mysql:run widgets xml
USE_RC_SUBR= mythbackend
USE_XORG= x11 xv xrandr xxf86vm xinerama xext xcb
SHEBANG_FILES= programs/scripts/database/*.pl \
programs/scripts/internetcontent/*.py \
programs/scripts/internetcontent/*.pl \
programs/scripts/internetcontent/nv_python_libs/*.py \
programs/scripts/hardwareprofile/*.py \
programs/scripts/metadata/Movie/tmdb3.py \
programs/scripts/metadata/Music/mbutils.py \
programs/scripts/metadata/Music/lyrics/testlyrics.pl
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --prefix="${PREFIX}" --cc="${CC}" --cxx="${CXX}" \
--libxml2-path="${LOCALBASE}/include/libxml2" \
--disable-audio-alsa \
--disable-qtwebkit
CONFIGURE_ENV= QMAKESPEC="${QMAKESPEC}" MOC="${MOC}" \
QTDIR="${PREFIX}" PKG_CONFIG_PATH="${LOCALBASE}/libdata/pkgconfig"
MAKE_ENV= QTDIR="${PREFIX}" \
QMAKESPEC="${QMAKESPEC}"
DESTDIRNAME= INSTALL_ROOT
CFLAGS_powerpc= -Wno-error=int-conversion
CPPFLAGS+= ${QTCPPFLAGS}
LDFLAGS_aarch64=-Wl,-z,notext
LDFLAGS_i386= -Wl,-z,notext
CONFLICTS_INSTALL= mythtv-frontend
DESKTOP_ENTRIES="MythTV Frontend" "MythTV is a homebrew PVR project" "" \
"mythfrontend" "AudioVideo;Video;" false
REINPLACE_ARGS= -i ""
NOPRECIOUSMAKEVARS= # don't override ARCH in ffmpeg makefiles
SUB_FILES= pkg-message
WRKSRC_SUBDIR= ${PORTNAME}
CONFIGURE_ARGS+=--dvb-path="${WRKSRC}/media_tree/include/uapi" \
--enable-v4l2
USERS= mythtv
GROUPS= mythtv
OPTIONS_DEFINE= BINDINGS HDHOMERUN JACK LIRC MYSQL PULSEAUDIO VDPAU
OPTIONS_DEFAULT= BINDINGS HDHOMERUN VDPAU
OPTIONS_SUB= yes
BINDINGS_DESC= Perl and Python bindings
HDHOMERUN_DESC= Native support for HDHomeRun network tuners
BINDINGS_BUILD_DEPENDS= ${PY_SETUPTOOLS} \
${PYTHON_PKGNAMEPREFIX}mysqlclient>=0:databases/py-mysqlclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}future>=0:devel/py-future@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}simplejson>=0:devel/py-simplejson@${PY_FLAVOR} \
p5-DBI>=0:databases/p5-DBI \
${DBD_MYSQL} \
p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
p5-XML-Simple>=0:textproc/p5-XML-Simple \
p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined
BINDINGS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mysqlclient>=1.2.2:databases/py-mysqlclient@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}requests-cache>0:www/py-requests-cache@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}simplejson>=3:devel/py-simplejson@${PY_FLAVOR} \
p5-DBI>=0:databases/p5-DBI \
${DBD_MYSQL} \
p5-Net-UPnP>=0:multimedia/p5-Net-UPnP \
p5-IO-Socket-INET6>=2.51:net/p5-IO-Socket-INET6 \
p5-XML-Simple>=0:textproc/p5-XML-Simple \
p5-HTTP-Request-Params>=0:www/p5-HTTP-Request-Params \
p5-LWP-UserAgent-Determined>=0:www/p5-LWP-UserAgent-Determined
BINDINGS_USES= mysql
BINDINGS_CONFIGURE_ON= --python="${PYTHON_CMD}" --with-bindings=perl,python
BINDINGS_CONFIGURE_OFF= --without-bindings=perl,python
HDHOMERUN_LIB_DEPENDS= libhdhomerun.so:multimedia/libhdhomerun
HDHOMERUN_CONFIGURE_OFF= --disable-hdhomerun
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CONFIGURE_OFF= --disable-audio-jack
LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
LIRC_CONFIGURE_OFF= --disable-lirc
MYSQL_USES= mysql:client,server
MYSQL_USES_OFF= mysql
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_OFF= --disable-audio-pulseoutput
VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
VDPAU_CONFIGURE_OFF= --disable-vdpau
LINUXDVB= ${WRKSRC}/media_tree/include/uapi/linux/dvb
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/configure \
${WRKSRC}/libs/libmythtv/libmythtv.pro \
${WRKSRC}/bindings/perl/MythTV/Recording.pm \
${WRKSRC}/programs/mythtranscode/external/replex/Makefile.standalone \
${WRKSRC}/programs/scripts/database/mythconverg_backup.pl \
${WRKSRC}/programs/scripts/database/mythconverg_restore.pl \
${WRKSRC}/programs/mythcommflag/mythcommflag-analyze
# Header file from:
# https://git.linuxtv.org/media_tree.git/tree/include/uapi/linux/dvb
@${MKDIR} ${LINUXDVB}
@${CP} ${FILESDIR}/audio.h ${LINUXDVB}
@${CP} ${FILESDIR}/ca.h ${LINUXDVB}
@${CP} ${FILESDIR}/dmx.h ${LINUXDVB}
@${CP} ${FILESDIR}/frontend.h ${LINUXDVB}
@${CP} ${FILESDIR}/net.h ${LINUXDVB}
@${CP} ${FILESDIR}/osd.h ${LINUXDVB}
@${CP} ${FILESDIR}/version.h ${LINUXDVB}
@${CP} ${FILESDIR}/video.h ${LINUXDVB}
# Linux to BSD from multimedia/libv4l/Makefile
@${FIND} ${LINUXDVB} -type f -name "*.h" | \
${XARGS} -n 1 ${REINPLACE_CMD} \
-e 's|#include <linux/types.h>|#include <sys/types.h>|'\
-e 's|__inline__|inline|g' \
-e 's|__u8|uint8_t|g' \
-e 's|__s8|int8_t|g' \
-e 's|__le16|uint16_t|g' \
-e 's|__be16|uint16_t|g' \
-e 's|__u16|uint16_t|g' \
-e 's|__s16|int16_t|g' \
-e 's|__le32|uint32_t|g' \
-e 's|__be32|uint32_t|g' \
-e 's|__u32|uint32_t|g' \
-e 's|__s32|int32_t|g' \
-e 's|__le64|uint64_t|g' \
-e 's|__be64|uint64_t|g' \
-e 's|__u64|uint64_t|g' \
-e 's|__s64|int64_t|g' \
-e 's|uint16_t_to_cpu|letoh16|g' \
-e 's|uint32_t_to_cpu|letoh32|g' \
-e 's|uint64_t_to_cpu|letoh64|g' \
-e 's|error_t|int|g' \
-e 's|"gettext.h"|<stdio.h>|g' \
-e 's|MSG_MORE|0|g' \
-e 's|EBADR|EFAULT|g' \
-e 's|ENONET|EHOSTDOWN|g' \
-e 's|_IOC_READ|IOC_OUT|g' \
-e 's|_IOC_WRITE|IOC_IN|g' \
-e 's|_IOC_NONE|IOC_VOID|g' \
-e 's|<endian.h>|<sys/endian.h>|g' \
-e 's|<linux/compiler.h>|<sys/cdefs.h>|g' \
-e 's|<linux/errno.h>|<errno.h>|g' \
-e 's|<linux/ioctl.h>|<sys/ioctl.h>|g' \
-e '/^.*\<linux\/kernel.h\>.*/d' \
-e 's|<linux/string.h>|<string.h>|g' \
-e 's|<linux/sysmacros.h>|<sys/types.h>|g' \
-e 's|<malloc.h>|<stdlib.h>|g' \
-e 's|<sys/epoll.h>|<libepoll-shim/sys/epoll.h>|g' \
-e 's|<sys/sysmacros.h>|<sys/types.h>|g' \
-e 's|/usr/bin/perl|${LOCALBASE}/bin/perl|g' \
-e 's|__user||g' \
${LINUXDVB}/frontend.h
pre-install:
@${REINPLACE_CMD} -e '/^CPPFLAGS=/ s#$$# -I${LOCALBASE}/include#' \
${WRKSRC}/libs/libmythbase/mythconfig.mak
post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/share/mythtv/database
${INSTALL_DATA} ${WRKSRC}/database/mc.sql ${STAGEDIR}${PREFIX}/share/mythtv/database
@${FIND} ${STAGEDIR}${PREFIX}/bin -type f -exec ${SH} -c "${FILE} -i '{}' | \
${GREP} -q 'x-executable; charset=binary'" \; -print | ${XARGS} ${STRIP_CMD}
@${FIND} ${STAGEDIR}${PREFIX}/lib -type f -name lib\*.so.\* | ${XARGS} ${STRIP_CMD}
.include <bsd.port.mk>
|