- Add ports for Nuvola Player 3 and its services

Nuvola Player is a runtime for web-based music streaming services
providing more native user experience and integration with desktop
environments than usual web browsers can offer. Nuvola Player handles
multimedia keys, shows desktop notifications, integrates with various
sound menus, applets and launchers and more. Additional features
include Last.fm scrobbling.

Mostly the same name scheme as in the official repo was kept, to
promote some compatibility.

The service ports are generated automatically, all the magic happens
in www/nuvolaplayer-all-services/Makefile.services. This allows for
very easy maintenance of many slave ports.

WWW: https://tiliado.eu/nuvolaplayer
This commit is contained in:
Alberto Villa 2017-01-04 12:52:54 +00:00
parent b8e66bf773
commit f38c763d28
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=430554
41 changed files with 429 additions and 0 deletions

View File

@ -543,6 +543,7 @@
SUBDIR += normalize
SUBDIR += nosefart
SUBDIR += nspmod
SUBDIR += nuvolaplayer
SUBDIR += ocp
SUBDIR += ogg2mp3
SUBDIR += openal

View File

@ -0,0 +1,58 @@
# $FreeBSD$
PORTNAME= nuvolaplayer
PORTVERSION= 3.0.4
CATEGORIES= audio www
MAINTAINER= avilla@FreeBSD.org
COMMENT= Cloud music integration for your desktop
LICENSE= BSD2CLAUSE
LIB_DEPENDS= libdioritegtk-0.2.so:x11-toolkits/diorite \
libjson-glib-1.0.so:devel/json-glib \
libnotify.so:devel/libnotify \
libgstreamer-1.0.so:multimedia/gstreamer1 \
libwebkit2gtk-4.0.so:www/webkit2-gtk3
BUILD_DEPENDS= valac:lang/vala
RUN_DEPENDS= ${PORTNAME}-all-services>=0:www/${PORTNAME}-all-services
USE_GITHUB= yes
GH_ACCOUNT= tiliado
USES= gnome libarchive pkgconfig waf
USE_GNOME= glib20 gtk30
USE_XORG= x11
# src/nuvolakit-runner/components/keybindings/XKeyGrabber.c:128:2: error: non-void function 'nuvola_xkey_grabber_construct' should return a value [-Wreturn-type]
CFLAGS+= -Wno-return-type
CONFIGURE_ARGS= --platform=LINUX
MAKE_ARGS= --no-system-hooks
INSTALLS_ICONS= yes
USE_LDCONFIG= yes
.ifdef(WITH_DEBUG)
CONFIGURE_ARGS+=--debug
.else
CONFIGURE_ARGS+=--no-debug
.endif
DATADIR= ${PREFIX}/share/${PORTNAME}3
OPTIONS_DEFINE= MPG123
OPTIONS_DEFAULT=MPG123
MPG123_DESC= HTML5 audio support via mpg123
MPG123_USE= GSTREAMER1=good,mpg123
pre-configure:
${REINPLACE_CMD} -e 's/Linux desktop/desktop/' \
${WRKSRC}/wscript \
${WRKSRC}/data/${PORTNAME}3.appdata.xml
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* \
${STAGEDIR}${PREFIX}/lib/*.so \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}3/*
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483475777
SHA256 (tiliado-nuvolaplayer-3.0.4_GH0.tar.gz) = 6577f96f305fd9a1d294c6f1a49b5d6a515dd42b026ce58ef89aeb19cd03349d
SIZE (tiliado-nuvolaplayer-3.0.4_GH0.tar.gz) = 3408086

View File

@ -0,0 +1,8 @@
Nuvola Player is a runtime for web-based music streaming services
providing more native user experience and integration with desktop
environments than usual web browsers can offer. Nuvola Player handles
multimedia keys, shows desktop notifications, integrates with various
sound menus, applets and launchers and more. Additional features
include Last.fm scrobbling.
WWW: https://tiliado.eu/nuvolaplayer

View File

@ -0,0 +1,5 @@
======================================================================
To use Flash-based services you need to install www/flashplayer.
======================================================================

View File

@ -0,0 +1,35 @@
bin/nuvolaplayer3
bin/nuvolaplayer3ctl
include/nuvolaplayer3-1.0/nuvolaplayer3-base.h
include/nuvolaplayer3-1.0/nuvolaplayer3-runner.h
include/nuvolaplayer3-1.0/nuvolaplayer3-worker.h
lib/libnuvolaplayer3-base.so
lib/libnuvolaplayer3-runner.so
lib/nuvolaplayer3/apprunner
lib/nuvolaplayer3/libnuvolaplayer3-worker.so
share/appdata/nuvolaplayer3.appdata.xml
share/applications/nuvolaplayer3.desktop
share/icons/hicolor/16x16/apps/nuvolaplayer3.png
share/icons/hicolor/22x22/apps/nuvolaplayer3.png
share/icons/hicolor/24x24/apps/nuvolaplayer3.png
share/icons/hicolor/32x32/apps/nuvolaplayer3.png
share/icons/hicolor/48x48/apps/nuvolaplayer3.png
share/icons/hicolor/64x64/apps/nuvolaplayer3.png
share/icons/hicolor/scalable/apps/nuvolaplayer3.svg
%%DATADIR%%/audio/audiotest.mp3
%%DATADIR%%/js/flash_detect.js
%%DATADIR%%/js/main.js
%%DATADIR%%/web_apps/test/LICENSE
%%DATADIR%%/web_apps/test/Makefile
%%DATADIR%%/web_apps/test/home.html
%%DATADIR%%/web_apps/test/integrate.js
%%DATADIR%%/web_apps/test/metadata.json
%%DATADIR%%/web_apps/test/src/icon.svg
%%DATADIR%%/web_apps/test/webcomponents.js
%%DATADIR%%/web_apps/test/webcomponents2.js
share/vala/vapi/nuvolaplayer3-base.deps
share/vala/vapi/nuvolaplayer3-base.vapi
share/vala/vapi/nuvolaplayer3-runner.deps
share/vala/vapi/nuvolaplayer3-runner.vapi
share/vala/vapi/nuvolaplayer3-worker.deps
share/vala/vapi/nuvolaplayer3-worker.vapi

View File

@ -556,6 +556,22 @@
SUBDIR += npm2
SUBDIR += npm3
SUBDIR += nspluginwrapper
SUBDIR += nuvolaplayer-8tracks
SUBDIR += nuvolaplayer-all-services
SUBDIR += nuvolaplayer-amazon-cloud-player
SUBDIR += nuvolaplayer-bandcamp
SUBDIR += nuvolaplayer-google-play-music
SUBDIR += nuvolaplayer-groove
SUBDIR += nuvolaplayer-jango
SUBDIR += nuvolaplayer-kexp
SUBDIR += nuvolaplayer-logitech-media-server
SUBDIR += nuvolaplayer-mixcloud
SUBDIR += nuvolaplayer-plex
SUBDIR += nuvolaplayer-soundcloud
SUBDIR += nuvolaplayer-spotify
SUBDIR += nuvolaplayer-tunein
SUBDIR += nuvolaplayer-yandex-music
SUBDIR += nuvolaplayer-youtube
SUBDIR += obhttpd
SUBDIR += ocaml-net
SUBDIR += offline-npm

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526938
SHA256 (tiliado-nuvola-app-8tracks-5.1_GH0.tar.gz) = 643a1f3161ee1fd895ff7508ec0d901107a83d60e4614584f414941a375a9797
SIZE (tiliado-nuvola-app-8tracks-5.1_GH0.tar.gz) = 10524

View File

@ -0,0 +1,78 @@
# $FreeBSD$
PORTNAME= nuvolaplayer
PORTVERSION?= 1.0
# Do not set PORTREVISION here.
CATEGORIES?= www audio
MAINTAINER?= avilla@FreeBSD.org
.include "Makefile.services"
_DATADIR= ${PREFIX}/share/${PORTNAME}3
.ifndef(MASTERDIR)
PORTREVISION= 0
PKGNAMESUFFIX= -all-services
COMMENT= Web app integrations for Nuvola Player
USES= metaport
OPTIONS_DEFINE= ${NV_SERVICES}
OPTIONS_DEFAULT=${OPTIONS_DEFINE}
. for o in ${OPTIONS_DEFINE}
${o}_DESC= ${NV_${o}_DESC} support
${o}_RUN_DEPENDS=${_DATADIR}/web_apps/${NV_${o}_NAME:S/-/_/g}/metadata.json:www/${PORTNAME}-${NV_${o}_NAME}
. endfor
.else
NV_ID= ${${.CURDIR:T:S/${PORTNAME}-//}_ID}
PORTVERSION= ${NV_${NV_ID}_VERSION}
PORTREVISION?= ${NV_${NV_ID}_REVISION}
PKGNAMESUFFIX?= -${NV_${NV_ID}_NAME}
COMMENT?= ${NV_${NV_ID}_DESC} integration for Nuvola Player
LICENSE?= BSD2CLAUSE
.ifdef(NV_${NV_ID}_LICENSE)
LICENSE= ${NV_${NV_ID}_LICENSE}
.endif
.ifdef(NV_${NV_ID}_LICENSE_COMB)
LICENSE_COMB= ${NV_${NV_ID}_LICENSE_COMB}
.endif
BUILD_DEPENDS+= lasem-render:textproc/lasem \
scour:textproc/py-scour
USE_GITHUB= yes
GH_ACCOUNT?= tiliado
GH_PROJECT?= nuvola-app${PKGNAMESUFFIX}
USES+= gmake
NO_ARCH= yes
ALL_TARGET?= build
MAKE_ARGS+= DEST=${STAGEDIR}${_DATADIR}/web_apps
INSTALLS_ICONS= yes
DISTINFO_FILE?= ${.CURDIR}/distinfo
PLIST?= ${PKGDIR}/pkg-plist.service
PLIST_FILES?= ${NV_${NV_ID}_PLIST_FILES}
PLIST_SUB+= SERVICE="${NV_${NV_ID}_NAME:S/-/_/g}"
DATADIR= ${_DATADIR}/web_apps/${NV_${NV_ID}_NAME:S/-/_/g}
pre-build:
# Do not install license files, the Ports framework takes care of it.
@${REINPLACE_CMD} -E -e 's,icons/icon,src/icon,' \
-e '/install/ s,-t ([^ ]+)(.+),\2 \1,' \
-e '/ln/ s,-T,,' \
-e 's,\$$\(LICENSES),,' \
${WRKSRC}/Makefile
.endif
.include <bsd.port.mk>

View File

@ -0,0 +1,75 @@
# $FreeBSD$
NV_SERVICES= 8TRACKS AMAZON BANDCAMP GOOGLE GROOVE JANGO \
KEXP LMS MIXCLOUD PLEX SOUNDCLOUD SPOTIFY \
TUNEIN YANDEX YOUTUBE
NV_8TRACKS_DESC= 8tracks
NV_8TRACKS_VERSION= 5.1
NV_AMAZON_NAME= amazon-cloud-player
NV_AMAZON_DESC= Amazon Music
NV_AMAZON_VERSION= 5.2
NV_BANDCAMP_DESC= Bandcamp
NV_BANDCAMP_VERSION= 2.1
NV_GOOGLE_DESC= Google Play Music
NV_GOOGLE_VERSION= 5.17
NV_GOOGLE_PLIST_FILES= ${DATADIR_REL}/outdated-libraries.html
NV_GROOVE_NAME= groove
NV_GROOVE_DESC= Microsoft Groove
NV_GROOVE_VERSION= 1.2
NV_JANGO_DESC= Jango
NV_JANGO_VERSION= 2.2
NV_KEXP_NAME= kexp
NV_KEXP_DESC= KEXP live stream
NV_KEXP_VERSION= 1.1
NV_LMS_DESC= Logitech Media Server
NV_LMS_VERSION= 2.1
NV_MIXCLOUD_DESC= Mixcloud
NV_MIXCLOUD_VERSION= 3.1
NV_PLEX_DESC= Plex
NV_PLEX_VERSION= 1.2
NV_SOUNDCLOUD_DESC= SoundCloud
NV_SOUNDCLOUD_VERSION= 1.2
NV_SOUNDCLOUD_LICENSE= BSD2CLAUSE CC-BY-3.0 MIT
NV_SOUNDCLOUD_LICENSE_COMB=multi
NV_SOUNDCLOUD_PLIST_FILES=${DATADIR_REL}/outdated-libraries.html
NV_SPOTIFY_DESC= Spotify
NV_SPOTIFY_VERSION= 2.2
NV_SPOTIFY_PLIST_FILES= ${DATADIR_REL}/outdated-libraries.html
NV_TUNEIN_DESC= TuneIn
NV_TUNEIN_VERSION= 1.2
NV_YANDEX_DESC= Yandex.Music
NV_YANDEX_VERSION= 1.3
NV_YOUTUBE_DESC= YouTube
NV_YOUTUBE_VERSION= 1.2
NV_YOUTUBE_LICENSE= BSD2CLAUSE CC-BY-3.0
NV_YOUTUBE_LICENSE_COMB=multi
.for s in ${NV_SERVICES}
NV_${s}_NAME?= ${NV_${s}_DESC:tW:tl:C/[^a-z0-9]/-/g}
${NV_${s}_NAME}_ID= ${s}
.endfor
# Maintenance utility target.
nv-update-ports:
.for s in ${NV_SERVICES}
${MKDIR} ${.CURDIR:H}/${PORTNAME}-${NV_${s}_NAME}
test -f ${.CURDIR:H}/${PORTNAME}-${NV_${s}_NAME}/Makefile || \
${CP} -a ${.CURDIR:H}/${PORTNAME}-tunein/Makefile \
${.CURDIR:H}/${PORTNAME}-${NV_${s}_NAME}
make makesum -C ${.CURDIR:H}/${PORTNAME}-${NV_${s}_NAME}
.endfor

View File

@ -0,0 +1,10 @@
Service integration for Nuvola Player.
Nuvola Player is a runtime for web-based music streaming services
providing more native user experience and integration with desktop
environments than usual web browsers can offer. Nuvola Player handles
multimedia keys, shows desktop notifications, integrates with various
sound menus, applets and launchers and more. Additional features
include Last.fm scrobbling.
WWW: https://tiliado.eu/nuvolaplayer

View File

@ -0,0 +1,20 @@
share/icons/hicolor/128x128/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/16x16/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/22x22/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/24x24/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/256x256/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/32x32/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/48x48/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/64x64/apps/nuvolaplayer3_%%SERVICE%%.png
share/icons/hicolor/scalable/apps/nuvolaplayer3_%%SERVICE%%.svg
%%DATADIR%%/icons/128.png
%%DATADIR%%/icons/16.png
%%DATADIR%%/icons/22.png
%%DATADIR%%/icons/24.png
%%DATADIR%%/icons/256.png
%%DATADIR%%/icons/32.png
%%DATADIR%%/icons/48.png
%%DATADIR%%/icons/64.png
%%DATADIR%%/icons/scalable.svg
%%DATADIR%%/integrate.js
%%DATADIR%%/metadata.json

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526939
SHA256 (tiliado-nuvola-app-amazon-cloud-player-5.2_GH0.tar.gz) = 9730e6df2110efd740284882e00faa725d81f4345740cc2d3913cff31fb40ffb
SIZE (tiliado-nuvola-app-amazon-cloud-player-5.2_GH0.tar.gz) = 11638

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526940
SHA256 (tiliado-nuvola-app-bandcamp-2.1_GH0.tar.gz) = 89e3a75492250ad1f072490a22bce3680cb513cff3f0c14afb6c1cd53e8ff6c8
SIZE (tiliado-nuvola-app-bandcamp-2.1_GH0.tar.gz) = 10382

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483475809
SHA256 (tiliado-nuvola-app-google-play-music-5.17_GH0.tar.gz) = 56f75c2c044980d46c92d6057ed2a846c8554a3a6474c84c957b3203740ee627
SIZE (tiliado-nuvola-app-google-play-music-5.17_GH0.tar.gz) = 12964

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526940
SHA256 (tiliado-nuvola-app-groove-1.2_GH0.tar.gz) = e70a99d89368788eb7455bea3abce113501660090d021ce59fdd328410eafeba
SIZE (tiliado-nuvola-app-groove-1.2_GH0.tar.gz) = 11700

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526941
SHA256 (tiliado-nuvola-app-jango-2.2_GH0.tar.gz) = 937cfb6af68e1e717708afd1c8de9f073efc23111ff6dca09add6346eb5671e1
SIZE (tiliado-nuvola-app-jango-2.2_GH0.tar.gz) = 15065

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526942
SHA256 (tiliado-nuvola-app-kexp-1.1_GH0.tar.gz) = 459c7018b02326cd3c8e6a54daadd04566ad036d4738c92053060970301ff575
SIZE (tiliado-nuvola-app-kexp-1.1_GH0.tar.gz) = 11320

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483527812
SHA256 (tiliado-nuvola-app-logitech-media-server-2.1_GH0.tar.gz) = b7673d4cf2f2bc48bec0c5453d1dad7656af867ef55fc3d8c5872407fa6f9bf0
SIZE (tiliado-nuvola-app-logitech-media-server-2.1_GH0.tar.gz) = 10614

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526943
SHA256 (tiliado-nuvola-app-mixcloud-3.1_GH0.tar.gz) = 5d8e2d5aa1081502f5e7fcf4f06fe3af93911ff8b0ba582db0cfa2655251a821
SIZE (tiliado-nuvola-app-mixcloud-3.1_GH0.tar.gz) = 12221

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483526944
SHA256 (tiliado-nuvola-app-plex-1.2_GH0.tar.gz) = 65fd17da48bb4f447901f8778b78f01b75092350e3711a4b07beb3d1c5b116b5
SIZE (tiliado-nuvola-app-plex-1.2_GH0.tar.gz) = 8293

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483527813
SHA256 (tiliado-nuvola-app-soundcloud-1.2_GH0.tar.gz) = 1511a0783a1c1148e5e9be6352ec57e6172abdc2bf1b877678d477bc6fe554d6
SIZE (tiliado-nuvola-app-soundcloud-1.2_GH0.tar.gz) = 28183

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483527814
SHA256 (tiliado-nuvola-app-spotify-2.2_GH0.tar.gz) = ba719eaa61f01bf5a77e3be915b4f50b261e329743ff89c96596d993fb75bdb7
SIZE (tiliado-nuvola-app-spotify-2.2_GH0.tar.gz) = 14154

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483511917
SHA256 (tiliado-nuvola-app-tunein-1.2_GH0.tar.gz) = 530547bebe89e71e0201f7dbd0188cb4d223202038d80acd90331ab0efef1c6b
SIZE (tiliado-nuvola-app-tunein-1.2_GH0.tar.gz) = 9122

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483527814
SHA256 (tiliado-nuvola-app-yandex-music-1.3_GH0.tar.gz) = 226fb59d22f7418306327bbe90e909c39cb224dcade0924110dfac0fe528fc97
SIZE (tiliado-nuvola-app-yandex-music-1.3_GH0.tar.gz) = 8344

View File

@ -0,0 +1,5 @@
# $FreeBSD$
MASTERDIR= ${.CURDIR:H}/nuvolaplayer-all-services
.include "${MASTERDIR}/Makefile"

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1483513569
SHA256 (tiliado-nuvola-app-youtube-1.2_GH0.tar.gz) = 73b55574b31e7d0beb01703815be8dae0c2222ea0ac17aec54aaca872ed9bd21
SIZE (tiliado-nuvola-app-youtube-1.2_GH0.tar.gz) = 25526