Gentoo Archives: gentoo-commits

From: Jonathan Vasquez <fearedbliss@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-tv/plex-media-server/files/, media-tv/plex-media-server/
Date: Sun, 05 Mar 2017 02:05:46
Message-Id: 1488679111.eac3c312380e222b9619c72bb9c50ba48ad28231.fearedbliss@gentoo
1 commit: eac3c312380e222b9619c72bb9c50ba48ad28231
2 Author: Jonathan Vasquez <fearedbliss <AT> gentoo <DOT> org>
3 AuthorDate: Sun Mar 5 01:58:07 2017 +0000
4 Commit: Jonathan Vasquez <fearedbliss <AT> gentoo <DOT> org>
5 CommitDate: Sun Mar 5 01:58:31 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eac3c312
7
8 media-tv/plex-media-server: version bump to 1.4.3
9
10 Package-Manager: Portage-2.3.4, Repoman-2.3.2
11
12 media-tv/plex-media-server/Manifest | 1 +
13 .../files/virtualenv_start_pms.patch | 23 ++++
14 .../plex-media-server-1.4.3.ebuild | 136 +++++++++++++++++++++
15 3 files changed, 160 insertions(+)
16
17 diff --git a/media-tv/plex-media-server/Manifest b/media-tv/plex-media-server/Manifest
18 index f21ed25da4e..ad75ad8d4ca 100644
19 --- a/media-tv/plex-media-server/Manifest
20 +++ b/media-tv/plex-media-server/Manifest
21 @@ -1,2 +1,3 @@
22 DIST plexmediaserver_1.3.3.3148-b38628e_amd64.deb 101224432 SHA256 3b58d0ad9a9e27e86209c33550be832868102526d512a860d4984ef3daf7cad9 SHA512 fb1d49650a66217df9d13dd0157f6f82b409989eacf2a40e9a92a47c6946e7bedc64429a88d2607a5f689ea7b5fae2ced5c53e2e719c85e7f08f71149844ab71 WHIRLPOOL fa5a0e74e03cc5c357b7c64876b96f265a8b3e74f2002d3d147ce46083f947311ce227a53f61ca1f962e00d89554a4df6ca8e3df7d5b32d13d27118b3d0f34c8
23 DIST plexmediaserver_1.3.4.3285-b46e0ea_amd64.deb 101356988 SHA256 dc53290c12ea744249f0937e4defdfbf7fb526a63413d41ff21047fc3572ff55 SHA512 46e7ce694f0be880ada03b327fa937e23d3e2412c2b4d04c79f87afb97ad8897b7977e9f5c1ed4cc6883129c911523f03e5db6c70c76b99cbb2d9e1ac4d9275e WHIRLPOOL 515d15782d4189e71501d11a335440853db4ededc42baa748375ca1a833e24b8db4497a8197698bddc8fc0d8689aa9768b1abbff1c8002f846a102f36267936b
24 +DIST plexmediaserver_1.4.3.3433-03e4cfa35_amd64.deb 103128692 SHA256 7ef4efec9e1ecc7fa67cf8284ca7316f715f33457d3e9f6bd3980d22c1de3edc SHA512 4432ffefab379ec57de1e0cf0648223d3a58b253ed43d3879fd967de93fd453b8a3820d20a87851fc98c6e8c77dfdfa81eab7ba66ce3ddf465007586d92d0823 WHIRLPOOL 1884d396c06137702cd23797ff452336847931e761e485910b1e4c3a4927ba6b8397f5aa0a265f81c98c7e3e9bfc121e9952d2f4b8757099ffaafc502f5edf95
25
26 diff --git a/media-tv/plex-media-server/files/virtualenv_start_pms.patch b/media-tv/plex-media-server/files/virtualenv_start_pms.patch
27 new file mode 100644
28 index 00000000000..bb4d575240b
29 --- /dev/null
30 +++ b/media-tv/plex-media-server/files/virtualenv_start_pms.patch
31 @@ -0,0 +1,23 @@
32 +--- a/usr/sbin/start_pms 2017-03-01 13:35:28.340489280 -0500
33 ++++ b/usr/sbin/start_pms 2017-03-01 13:36:05.574540305 -0500
34 +@@ -8,16 +8,20 @@
35 + export PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="${HOME}/Library/Application Support"
36 + if [ -f /etc/default/locale ]; then
37 + export LANG="`cat /etc/default/locale|awk -F '=' '/LANG=/{print $2}'|sed 's/"//g'`"
38 + export LC_ALL="$LANG"
39 + fi
40 +
41 + test -f /etc/default/plexmediaserver && . /etc/default/plexmediaserver
42 +
43 ++# Activate python virtualenv
44 ++. "${PLEX_MEDIA_SERVER_HOME}"/Resources/Python/bin/activate
45 ++
46 ++
47 + if [ ! -d "$PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR" ]
48 + then
49 + mkdir -p "$PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR"
50 + if [ ! $? -eq 0 ]
51 + then
52 + echo "WARNING COULDN'T CREATE $PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR, MAKE SURE I HAVE PERMISSON TO DO THAT!"
53 + exit 1
54 + fi
55
56 diff --git a/media-tv/plex-media-server/plex-media-server-1.4.3.ebuild b/media-tv/plex-media-server/plex-media-server-1.4.3.ebuild
57 new file mode 100644
58 index 00000000000..6ec1479f0b4
59 --- /dev/null
60 +++ b/media-tv/plex-media-server/plex-media-server-1.4.3.ebuild
61 @@ -0,0 +1,136 @@
62 +# Copyright 1999-2017 Gentoo Foundation
63 +# Distributed under the terms of the GNU General Public License v2
64 +
65 +EAPI=6
66 +
67 +PYTHON_COMPAT=( python2_7 )
68 +inherit eutils user systemd unpacker pax-utils python-single-r1
69 +
70 +MINOR1="3433"
71 +MINOR2="03e4cfa35"
72 +
73 +_APPNAME="plexmediaserver"
74 +_USERNAME="plex"
75 +_SHORTNAME="${_USERNAME}"
76 +_FULL_VERSION="${PV}.${MINOR1}-${MINOR2}"
77 +
78 +URI="https://downloads.plex.tv/plex-media-server"
79 +
80 +DESCRIPTION="A free media library that is intended for use with a plex client."
81 +HOMEPAGE="http://www.plex.tv/"
82 +SRC_URI="amd64? ( ${URI}/${_FULL_VERSION}/plexmediaserver_${_FULL_VERSION}_amd64.deb )"
83 +SLOT="0"
84 +LICENSE="Plex"
85 +RESTRICT="mirror bindist strip"
86 +KEYWORDS="-* ~amd64"
87 +
88 +DEPEND="
89 + sys-apps/fix-gnustack
90 + dev-python/virtualenv[${PYTHON_USEDEP}]"
91 +
92 +RDEPEND="
93 + net-dns/avahi
94 + ${PYTHON_DEPS}"
95 +
96 +QA_DESKTOP_FILE="usr/share/applications/plexmediamanager.desktop"
97 +QA_PREBUILT="*"
98 +QA_MULTILIB_PATHS=(
99 + "usr/lib/${_APPNAME}/.*"
100 + "usr/lib/${_APPNAME}/Resources/Python/lib/python2.7/.*"
101 +)
102 +
103 +EXECSTACKED_BINS=( "${ED%/}/usr/lib/plexmediaserver/libgnsdk_dsp.so*" )
104 +BINS_TO_PAX_MARK=( "${ED%/}/usr/lib/plexmediaserver/Plex Script Host" )
105 +
106 +S="${WORKDIR}"
107 +PATCHES=( "${FILESDIR}/virtualenv_start_pms.patch" )
108 +
109 +pkg_setup() {
110 + enewgroup ${_USERNAME}
111 + enewuser ${_USERNAME} -1 /bin/bash /var/lib/${_APPNAME} "${_USERNAME},video"
112 +
113 + python-single-r1_pkg_setup
114 +}
115 +
116 +src_unpack() {
117 + unpack_deb ${A}
118 +}
119 +
120 +src_install() {
121 + # Move the config to the correct place
122 + local CONFIG_VANILLA="/etc/default/plexmediaserver"
123 + local CONFIG_PATH="/etc/${_SHORTNAME}"
124 + dodir "${CONFIG_PATH}"
125 + insinto "${CONFIG_PATH}"
126 + doins "${CONFIG_VANILLA#/}"
127 + sed -e "s#${CONFIG_VANILLA}#${CONFIG_PATH}#g" -i "${S}"/usr/sbin/start_pms || die
128 +
129 + # Remove Debian specific files
130 + rm -rf "usr/share/doc" || die
131 +
132 + # Copy main files over to image and preserve permissions so it is portable
133 + cp -rp usr/ "${ED}" || die
134 +
135 + # Make sure the logging directory is created
136 + local LOGGING_DIR="/var/log/pms"
137 + dodir "${LOGGING_DIR}"
138 + chown "${_USERNAME}":"${_USERNAME}" "${ED%/}/${LOGGING_DIR}" || die
139 +
140 + # Create default library folder with correct permissions
141 + local DEFAULT_LIBRARY_DIR="/var/lib/${_APPNAME}"
142 + dodir "${DEFAULT_LIBRARY_DIR}"
143 + chown "${_USERNAME}":"${_USERNAME}" "${ED%/}/${DEFAULT_LIBRARY_DIR}" || die
144 +
145 + # Install the OpenRC init/conf files
146 + doinitd "${FILESDIR}/init.d/${PN}"
147 + doconfd "${FILESDIR}/conf.d/${PN}"
148 +
149 + _handle_multilib
150 +
151 + # Install systemd service file
152 + local INIT_NAME="${PN}.service"
153 + local INIT="${FILESDIR}/systemd/${INIT_NAME}"
154 + systemd_newunit "${INIT}" "${INIT_NAME}"
155 +
156 + _remove_execstack_markings
157 + _add_pax_markings
158 +
159 + einfo "Configuring virtualenv"
160 + virtualenv -v --no-pip --no-setuptools --no-wheel "${ED}"usr/lib/plexmediaserver/Resources/Python || die
161 + pushd "${ED}"usr/lib/plexmediaserver/Resources/Python &>/dev/null || die
162 + find . -type f -exec sed -i -e "s#${D}##g" {} + || die
163 + popd &>/dev/null || die
164 +}
165 +
166 +pkg_postinst() {
167 + einfo ""
168 + elog "Plex Media Server is now installed. Please check the configuration file in /etc/${_SHORTNAME}/${_APPNAME} to verify the default settings."
169 + elog "To start the Plex Server, run 'rc-config start plex-media-server', you will then be able to access your library at http://<ip>:32400/web/"
170 +}
171 +
172 +# Finds out where the library directory is for this system
173 +# and handles ldflags as to not break library dependencies
174 +# during rebuilds.
175 +_handle_multilib() {
176 + # Prevent revdep-rebuild, @preserved-rebuild breakage
177 + cat > "${T}"/66plex <<-EOF || die
178 + LDPATH="${EPREFIX}/usr/$(get_libdir)/plexmediaserver"
179 + EOF
180 +
181 + doenvd "${T}"/66plex
182 +}
183 +
184 +# Remove execstack flags from some libraries/executables so that it works in hardened setups.
185 +_remove_execstack_markings() {
186 + for f in "${EXECSTACKED_BINS[@]}"; do
187 + # Unquoting 'f' so that expansion works.
188 + fix-gnustack -f ${f} > /dev/null
189 + done
190 +}
191 +
192 +# Add pax markings to some binaries so that they work on hardened setup.
193 +_add_pax_markings() {
194 + for f in "${BINS_TO_PAX_MARK[@]}"; do
195 + pax-mark m "${f}"
196 + done
197 +}