Bug 196299 - [maintainer] multimedia/xbmc: Rename to kodi, Update to 14.0
Summary: [maintainer] multimedia/xbmc: Rename to kodi, Update to 14.0
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: needs-patch, needs-qa
Depends on: 198376
Blocks:
  Show dependency treegraph
 
Reported: 2014-12-27 16:40 UTC by mickael.maillot
Modified: 2015-04-18 14:13 UTC (History)
6 users (show)

See Also:


Attachments
kodi 14.0 port (158.88 KB, text/plain)
2014-12-27 16:40 UTC, mickael.maillot
no flags Details
audio/shairplay new port (1.99 KB, text/plain)
2014-12-27 16:41 UTC, mickael.maillot
no flags Details
multimedia/libcec update to 2.2.0 (2.55 KB, patch)
2014-12-27 16:42 UTC, mickael.maillot
no flags Details | Diff
multimedia/plexhometheater patch for libcec2.2 (3.19 KB, patch)
2014-12-31 05:14 UTC, Ben Woods
no flags Details | Diff
kodi 14.0 port v2 (158.88 KB, text/plain)
2015-01-22 11:25 UTC, mickael.maillot
no flags Details
diff of kodi update (184.74 KB, patch)
2015-01-23 10:46 UTC, mickael.maillot
no flags Details | Diff
add lang/python dependency (539 bytes, patch)
2015-01-27 03:53 UTC, Cory Dohm
no flags Details | Diff
pre-commit fixup (6.63 KB, patch)
2015-02-19 08:22 UTC, Jan Beich
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description mickael.maillot 2014-12-27 16:40:44 UTC
Created attachment 150989 [details]
kodi 14.0 port

here is XBMC update to 14.0 and renamed to Kodi.
Kodi needs multimedia/libcec update to 2.2.0 and deprecate the port audio/libshairport to audio/shairplay
So this update includes libcec update, new port: shairplay, moved port xbmc => kodi.
Comment 1 mickael.maillot 2014-12-27 16:41:31 UTC
Created attachment 150990 [details]
audio/shairplay new port
Comment 2 mickael.maillot 2014-12-27 16:42:03 UTC
Created attachment 150991 [details]
multimedia/libcec update to 2.2.0
Comment 3 Ben Woods freebsd_committer 2014-12-30 15:15:54 UTC
Your new port shairplay compiles fine, see the poudriere logs here:
http://woodsb02.no-ip.org/poudriere/data/101amd64-default/2014-12-30_21h03m11s/logs/shairplay-0.9.0.20140422.log

Your patch for libcec compiles fine (although it breaks the build of my port multimedia/plexhometheater... but I will look into that later). See poudriere logs here:
http://woodsb02.no-ip.org/poudriere/data/101amd64-default/2014-12-30_21h03m11s/logs/libcec-2.2.0.log

I'm attempting to build your kodi port in poudriere to test it. Logs will appear here once complete:
http://woodsb02.no-ip.org/poudriere/build.html?mastername=101amd64-default&build=2014-12-30_23h04m49s

I was initially having difficulty due to openjdk7 failing to build (nothing to do with your changes), but I have fixed that with the patch discussed here: https://lists.freebsd.org/pipermail/freebsd-java/2014-December/011037.html


The only comment I would have with your patches is that it creates a new port for kodi and no patch is included for the MOVED file. Is it left up to the ports committer to instead copy the multimedia/xbmc port to multimedia/kodi, modify the kodi port to match your shar, and then update the MOVED file?
Comment 4 mickael.maillot 2014-12-30 15:51:28 UTC
i forget to mention that i tested every port in poudriere on 9|10 i386|amd64.
some logs:
http://fneufn.eu/freebsd/xbmc/9i386_kodi-14.0.log
http://fneufn.eu/freebsd/xbmc/9amd64_kodi-14.0.log
http://fneufn.eu/freebsd/xbmc/10i386_kodi-14.0.log
and tested with different options on my main system.

juste a small enhancement: replace libpng16.so by libpng.so in LIB_DEPENDS in the kodi port.

And yes, sorry i missed the multimedia/Makefile and MOVED stuff.

For libcec, kodi needs version 2.2.0 and is not compatible with 2.1.4

Also, i'm working on new ports of multimedia/xbmc-addon-pvr (who can be deprecate) and some others binary addons (mostly audio encoders).
Comment 5 Ben Woods freebsd_committer 2014-12-31 05:14:19 UTC
Created attachment 151136 [details]
multimedia/plexhometheater patch for libcec2.2

When updating the multimedia/libcec port to version 2.2 with the Mickael's patch, please include this patch for multimedia/plexhometheater to allow it to build against the new libcec version 2.2 (the build fails otherwise).
Comment 6 John Marino freebsd_committer 2015-01-22 11:08:19 UTC
It would highly benefit you to put "[maintainer]" in the subject of the PR next time you add a patch to the port.  These keywords make the PR more visible and maybe higher priority.
Comment 7 John Marino freebsd_committer 2015-01-22 11:15:38 UTC
I don't understand what this PR wants.

It wants to update XBMC, and then immediately rename the port.

You should explain why (not just what).

Can't these be split up into multiple PRs?  There is a lot going on here.  I think it's:


1) deprecate audio/libshairport
2) update multimedia/libcec
3) update XBMC
4) Rename XMBC to multimedia/kodi

(or 3) delete XBMC and 4) add multimedia/kodi).

And the patches to shar isn't making matters simple either.

I'd say this should be 2 or even 3 different PRs.
Comment 8 mickael.maillot 2015-01-22 11:25:00 UTC
Created attachment 152008 [details]
kodi 14.0 port v2

updated shar:
a line miss commmented in patch-configure.in
and libpng.so corrected in lib_depends
Comment 9 mickael.maillot 2015-01-22 12:12:43 UTC
du to legal issue, xbmc changed is name for the new release 14.0 and it's now named: kodi.
more information here: http://kodi.tv/introducing-kodi-14/
So i just want a entry "project renamed" in MOVED
I'm note sure why you want multiple PR for the update + rename process,
but i can easily create another PR for libcec update, shairplay new port and libshairport deprecation.
Comment 10 Ben Woods freebsd_committer 2015-01-22 12:59:03 UTC
Is shairplay a drop in replacement for libshairport, with the same API? Or does it need changes to the way it is referenced in the code?

If shairplay is not a drop in replacement, libshairport will likely still be required until plexhometheater code is changed to work with shairplay.
Comment 11 mickael.maillot 2015-01-23 10:35:04 UTC
Oh sorry, multimedia/plexhometheater is based on xbmc 12.2, so yes it needs libshairport.
Comment 12 mickael.maillot 2015-01-23 10:46:50 UTC
Created attachment 152050 [details]
diff of kodi update

Here is a diff, now you just have to move xbmc to kodi and apply it.
Comment 13 Cory Dohm 2015-01-27 03:53:52 UTC
Created attachment 152246 [details]
add lang/python dependency

While testing the old XBMC port, I noticed a small bug. I'm not sure if I should put it here, or make my own PR, but it is a very tiny thing. If you build XBMC/Kodi from ports it runs fine, but if you run pkg autoremove the port stops working on error "Python: Not found"

I have discovered the reason is because this port depends on lang/python for version independent calls to the python interpreter. Somehow, lang/python gets installed on a fresh build of Kodi, but at the same time isn't listed as a run dependency for the port. The attached patch resolves this.
Comment 14 Kubilay Kocak freebsd_committer freebsd_triage 2015-01-27 09:17:22 UTC
This issue contains multiple patches against multiple ports submitted by multiple people. Complete clarity (read: zero ambiguity) is required in order for this (and any issue) to progress.

Maintainer (mickael.maillot@gmail.com), could you please:

1) Split the updates into individual PR's (one per port) with 'Depends On' set to this issue ID.
2) Combine any/all patches for multimedia/xbmc that you want to include into a single diff
3) Attach one successful poudriere build output for each of the patches in (1) and (2)
4) Add the maintainer-approval flag set to '+' for the patch that you approve. 

We can take care of obsoleting the others if you cannot.

Thanks!
Comment 15 Jan Beich freebsd_committer 2015-02-18 02:35:08 UTC
Comment on attachment 150990 [details]
audio/shairplay new port

Maybe define LICENSE based on which *.o files are built and checking
with WRKSRC/LICENSE e.g.,

  LICENSE=	BSD3CLAUSE LGPL21 MIT
  LICENSE_COMB=	multi

>XLIB_DEPENDS=	libao.so:${PORTSDIR}/audio/libao \
>X		libavahi-client.so:${PORTSDIR}/net/avahi-app

The code doesn't want libavahi-client.so but different library:

  // src/lib/dnssd.c
  #elif USE_LIBDL
          dnssd->module = dlopen("libdns_sd.so", RTLD_LAZY);

which you can express as

  # copied from devel/libqxt
  OPTIONS_DEFAULT=		AVAHI
  OPTIONS_SINGLE=		ZEROCONF
  OPTIONS_SINGLE_ZEROCONF=	AVAHI MDNSRESPONDER
  AVAHI_LIB_DEPENDS=		libdns_sd.so:${PORTSDIR}/net/avahi-libdns
  MDNSRESPONDER_LIB_DEPENDS=	libdns_sd.so:${PORTSDIR}/net/mDNSResponder

>sed 's/^X//' >audio/shairplay/pkg-descr << '11a0175d6764badad27a3bd659969c96'
>XShairplay
>XFree portable AirPlay server implementation similar to ShairPort.
>XCurrently only AirPort Express emulation is supported.

Drop title or fit it into a continuous sentence e.g.,

  Shairplay is a free portable AirPlay server implementation similar to
  ShairPort. Currently only AirPort Express emulation is supported.
Comment 16 Jan Beich freebsd_committer 2015-02-18 03:48:48 UTC
Comment on attachment 152050 [details]
diff of kodi update

pkg-descr still mentions the old name and homepage.

>-MASTER_SITES=	http://mirrors.xbmc.org/releases/source/
>+MASTER_SITES=	http://mirrors.kodi.tv/releases/source/ GH:ffmpeg
>+DISTFILES=  ${DISTVERSION}-Helix${EXTRACT_SUFX} ${GH_PROJECT}-${GH_TAGNAME}.tar.gz:ffmpeg
>+EXTRACT_ONLY=  ${DISTVERSION}-Helix${EXTRACT_SUFX}

Style nits:
- Separate different MASTER_SITES and DISTFILES using a newline
- Tabify whitespace

>+USE_GITHUB=	yes
>+GH_ACCOUNT=	xbmc
>+GH_PROJECT=	ffmpeg
>+GH_COMMIT=	8865ab5
>+GH_TAGNAME=	2.4.4-Helix
>+

Style nit: wrong place to put GH defines according to portlint(1)

>-USE_SDL=	image sdl
>+USE_SDL=	image sdl2

USE_SDL=image implicitly depends on USE_SDL=sdl. Unless kodi links against
both SDL 1.2 and SDL 2.0 change to

  USE_SDL=	image2 sdl2

>-OPTIONS_DEFINE=	AIRPLAY AIRTUNES AVAHI CEC DOCS LAME \
>-		LIBBLURAY HAL LIRC MYSQL NONFREE PULSEAUDIO RTMP SFTP \
>-		SMB VAAPI VDPAU VORBIS WEBSERVER XRANDR

Why LAME, HAL, VORBIS, PULSEAUDIO are removed ? A succinct explanation
for commit message would be enough.
Comment 17 Jan Beich freebsd_committer 2015-02-18 18:58:25 UTC
Comment on attachment 150990 [details]
audio/shairplay new port

(In reply to Jan Beich from comment #15)
>  OPTIONS_DEFAULT=		AVAHI

This has to be MDNSRESPONDER like print/cups-client to avoid pulling both:

[84amd64-default] Installing gtk2-2.24.25_1...
[84amd64-default] `-- Installing cups-client-1.7.3_4...
[84amd64-default] |   `-- Installing mDNSResponder-561.1.1...
[84amd64-default] |   `-- Extracting mDNSResponder-561.1.1... done
[84amd64-default] `-- Extracting cups-client-1.7.3_4... done
[84amd64-default] Installing shairplay-0.9.0.20140422...
[84amd64-default] `-- Installing avahi-libdns-0.6.31_1...
[84amd64-default] |   `-- Installing avahi-app-0.6.31_3...
[84amd64-default] |   `-- Extracting avahi-app-0.6.31_3... done
pkg-static: avahi-libdns-0.6.31_1 conflicts with mDNSResponder-561.1.1 (installs files into the same place).  Problematic file: /usr/local/lib/libdns_sd.so

Failed to install the following 1 package(s): /packages/All/shairplay-0.9.0.20140422.txz
*** Error code 70
Comment 18 Jan Beich freebsd_committer 2015-02-19 04:24:34 UTC
Comment on attachment 151136 [details]
multimedia/plexhometheater patch for libcec2.2

My guess of the origin: https://github.com/xbmc/xbmc/pull/5610
Which may break build as CEC_CLIENT_VERSION_2_2_0 is not defined in 2.1.4:

  CEC_BUILD_DEPENDS=	libcec>=2.2.0:${PORTSDIR}/multimedia/libcec

and no need for "patch" several times in the filename:

  files/patch-libcec22.patch -> files/patch-libcec22

Also, the same change/patch is required for multimedia/xbmc *before* update. Bundling too many things in one commit is too error prone and hard to post-review.
Comment 19 Jan Beich freebsd_committer 2015-02-19 06:20:02 UTC
kodi fails to build on 8.4R which was previously fixed by xbmc/files/patch-xbmc__threads__platform__pthreads__ThreadImpl.cpp:

In file included from /wrkdirs/usr/ports/multimedia/kodi/work/xbmc-14.0-Helix/xbmc/threads/platform/ThreadImpl.cpp:24,
                 from Thread.cpp:37:
/wrkdirs/usr/ports/multimedia/kodi/work/xbmc-14.0-Helix/xbmc/threads/platform/pthreads/ThreadImpl.cpp: In member function 'void CThread::SetThreadInfo()':
/wrkdirs/usr/ports/multimedia/kodi/work/xbmc-14.0-Helix/xbmc/threads/platform/pthreads/ThreadImpl.cpp:84: error: 'pthread_set_name_np' was not declared in this scope
../../Makefile.include:94: recipe for target 'Thread.o' failed
gmake[1]: *** [Thread.o] Error 1
Makefile:515: recipe for target 'xbmc/threads/threads.a' failed
gmake: *** [xbmc/threads/threads.a] Error 2
Comment 20 Jan Beich freebsd_committer 2015-02-19 08:22:56 UTC
Created attachment 153166 [details]
pre-commit fixup

I plan to land it as a series of 3 commits with the attached minor changes. See full commit messages in review D1900.
Comment 21 Ben Woods freebsd_committer 2015-02-19 14:51:34 UTC
I do not seem to have access to change the attachment flag to give my maintainer approval for Jan's proposed changes to multimedia/plexhometheater, so I will just give it here in text: approved.

Jan: thanks for the great work!
Comment 22 mickael.maillot 2015-02-27 16:05:17 UTC
(In reply to Jan Beich from comment #20)
Oh great ! thank you for this nice job.
Comment 23 commit-hook freebsd_committer 2015-02-28 14:15:00 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 28 14:14:24 UTC 2015
New revision: 380143
URL: https://svnweb.freebsd.org/changeset/ports/380143

Log:
  Add new port: audio/shairplay

  PR:		196299
  Differential Revision:	https://reviews.freebsd.org/D1900
  Submitted by:	mickael.maillot@gmail.com

  Shairplay is a free portable AirPlay server implementation similar to
  ShairPort. Currently only AirPort Express emulation is supported.

  WWW: https://github.com/juhovh/shairplay

Changes:
  head/audio/Makefile
  head/audio/shairplay/
  head/audio/shairplay/Makefile
  head/audio/shairplay/distinfo
  head/audio/shairplay/pkg-descr
  head/audio/shairplay/pkg-plist
Comment 24 commit-hook freebsd_committer 2015-02-28 14:21:02 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 28 14:20:13 UTC 2015
New revision: 380144
URL: https://svnweb.freebsd.org/changeset/ports/380144

Log:
  - Update libcec to 2.2.0 [1]
  - Unbreak consumers after update [2]
  - No PORTREVISION bumps because binary compatible

  PR:		196299
  Differential Revision:	https://reviews.freebsd.org/D1900
  Submitted by:	mickael.maillot@gmail.com (maintainer) [1]
  Submitted by:	Ben Woods <woodsb02@gmail.com> (maintainer) [2]

Changes:
  head/multimedia/libcec/Makefile
  head/multimedia/libcec/distinfo
  head/multimedia/libcec/files/
  head/multimedia/libcec/files/patch-configure.ac
  head/multimedia/plexhometheater/Makefile
  head/multimedia/plexhometheater/files/patch-libcec22
  head/multimedia/xbmc/Makefile
  head/multimedia/xbmc/files/patch-libcec22
Comment 25 commit-hook freebsd_committer 2015-02-28 15:07:10 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 28 15:07:00 UTC 2015
New revision: 380146
URL: https://svnweb.freebsd.org/changeset/ports/380146

Log:
  - Rename XBMC to Kodi following upstream
  - Update to 14.0

  Changes:	http://kodi.tv/introducing-kodi-14/
  PR:		196299
  Differential Revision:	https://reviews.freebsd.org/D1900
  Submitted by:	mickael.maillot@gmail.com (maintainer)
  Reviewed by:	bapt

Changes:
  head/MOVED
  head/multimedia/Makefile
  head/multimedia/kodi/
  head/multimedia/kodi/Makefile
  head/multimedia/kodi/distinfo
  head/multimedia/kodi/files/patch-Makefile.include.in
  head/multimedia/kodi/files/patch-configure.in
  head/multimedia/kodi/files/patch-ffmpegx86
  head/multimedia/kodi/files/patch-freebsd
  head/multimedia/kodi/files/patch-lib__ffmpeg__libavutil__x86__asm.h
  head/multimedia/kodi/files/patch-libcec22
  head/multimedia/kodi/files/patch-project__cmake__scripts__common__prepare-env.cmake
  head/multimedia/kodi/files/patch-sidplay
  head/multimedia/kodi/files/patch-tools__depends__target__ffmpeg__autobuild.sh
  head/multimedia/kodi/files/patch-xbmc__cores__AudioEngine__Sinks__AESinkOSS.cpp
  head/multimedia/kodi/files/patch-xbmc__cores__DllLoader__dll_tracker.cpp
  head/multimedia/kodi/files/patch-xbmc__cores__DllLoader__dll_tracker_file.cpp
  head/multimedia/kodi/files/patch-xbmc__threads__platform__pthreads__ThreadImpl.cpp
  head/multimedia/kodi/files/patch-xbmc__visualizations__XBMCProjectM__libprojectM__Common.hpp
  head/multimedia/kodi/files/patch-xbmc_cores_DllLoader_dll__tracker.cpp
  head/multimedia/kodi/files/patch-xbmc_cores_DllLoader_dll__tracker__file.cpp
  head/multimedia/kodi/files/patch-xbmc_cores_DllLoader_exports_emu__kernel32.cpp
  head/multimedia/kodi/files/patch-xbmc_filesystem_iso9660.cpp
  head/multimedia/kodi/files/patch-xbmc_linux_XFileUtils.cpp
  head/multimedia/kodi/files/patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp
  head/multimedia/kodi/pkg-descr
  head/multimedia/kodi/pkg-plist
  head/multimedia/xbmc/
Comment 26 Jan Beich freebsd_committer 2015-02-28 15:12:37 UTC
Thanks. Committed.
Comment 27 commit-hook freebsd_committer 2015-02-28 16:18:18 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 28 16:18:03 UTC 2015
New revision: 380150
URL: https://svnweb.freebsd.org/changeset/ports/380150

Log:
  - Unbreak INDEX build after r380146
  - Mark BROKEN until I figure out if the port works with multimedia/kodi

  PR:		196299
  Reported by:	Portsnap buildbox
  Pointy hat:	jbeich

Changes:
  head/multimedia/xbmc-addon-pvr/Makefile
Comment 28 commit-hook freebsd_committer 2015-02-28 18:48:36 UTC
A commit references this bug:

Author: jbeich
Date: Sat Feb 28 18:48:08 UTC 2015
New revision: 380157
URL: https://svnweb.freebsd.org/changeset/ports/380157

Log:
  Clear BROKEN: Kodi has compatibility symlinks to avoid breaking addons

  PR:		196299

Changes:
  head/multimedia/xbmc-addon-pvr/Makefile
Comment 29 Ben Woods freebsd_committer 2015-02-28 22:17:02 UTC
Thanks for the good work Jan! Well done :)
Comment 30 John Marino freebsd_committer 2015-04-18 14:09:41 UTC
On libcec, the patch "head/multimedia/libcec/files/patch-configure.ac" doesn't seem to do anything. configure.ac is patched, but the pregenerated configure is used.  Was "configure" supposed to be patched instead?
Comment 31 John Marino freebsd_committer 2015-04-18 14:13:36 UTC
Hmm, ignore last, it seems to be incorrect.