Bug 242345

Summary: audio/logitechmediaserver : Update to version 8.0.0, 8.1.0
Product: Ports & Packages Reporter: Hans Soonieus <hans>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: New ---    
Severity: Affects Some People CC: braslau, daz, gsutter, phk, trueos
Priority: --- Keywords: buildisok
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
diff between current port and new version
none
Update logitechmediaserver to 8.0.0
none
Update logitechmediaserver to 8.0.0 v2
none
Update logitechmediaserver to 8.1.0
none
Update logitechmediaserver to 8.2.0
none
Update logitechmediaserver to 8.2.0 v2
none
Update logitechmediaserver to 8.2.0 none

Description Hans Soonieus 2019-12-01 21:46:53 UTC
Created attachment 209578 [details]
diff between current port and new version

This is an update to this port.
2 files have been deleted :
files/custom-convert.conf.in
files/patch-convert.conf

No files have been added.

The port now also builds a modified version of faad. this does not conflict with the audio/faad port and this modified version is only used by logitechmediaserver.
Comment 1 Automation User 2019-12-01 22:04:09 UTC
Build info is available at https://gitlab.com/swills/freebsd-ports/pipelines/99816642
Comment 2 Poul-Henning Kamp freebsd_committer 2020-11-30 17:48:25 UTC
I tried this patch, but it seems to fail on perl5.32 ?

Will try forcing to perl5.30 and report.
Comment 3 Hans Soonieus 2020-11-30 18:53:57 UTC
Created attachment 220112 [details]
Update logitechmediaserver to 8.0.0
Comment 4 Hans Soonieus 2020-11-30 18:58:13 UTC
New patch updates logitechmediaserver to 8.0.0
Tested on i386,amd64,11.4,12.2,Perl-5.30 and Perl-5.32

One file added to port 
files/revision.txt.in

two files deleted
files/custom-convert.conf
files/patch-convert.conf
Comment 5 Poul-Henning Kamp freebsd_committer 2020-11-30 19:57:26 UTC
Tried the 8.0.0 upgrade, works fine, thanks a lot!
Comment 6 Daniel Engberg freebsd_committer 2020-12-12 06:14:56 UTC
Fails in poudriere (12.2 amd64):

....

====> Running Q/A tests (stage-qa)
Warning: Symlink '/usr/local/share/logitechmediaserver/Cache' pointing to '/var/db/logitechmediaserver/cache' which does not exist in the stage directory or in localbase
Notice: You have some Perl modules as dependencies but you do not have devel/p5-Module-CoreList installed, the perlcore QA check gets better results when using it, especially with older Perl versions.
Warning: License is not auto-accepted, packages will not be built, ports depending on this one will be ignored.
Warning: License does not allow package to be distributed, ports depending on this one will be ignored
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: %%SLIMDIR%%/.editorconfig
Error: Orphaned: %%SLIMDIR%%/.github/workflows/00_smoketest.yaml
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBD/File/Developers.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBD/File/HowTo.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBD/File/Roadmap.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBD/SQLite/Cookbook.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBD/SQLite/Fulltext_search.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBI/DBD/SqlEngine/Developers.pod
Error: Orphaned: %%SLIMDIR%%/CPAN/arch/%%PERL_VER%%/DBI/DBD/SqlEngine/HowTo.pod
Error: Orphaned: %%SLIMDIR%%/t/00_smoketest.sh
===> Checking for items in pkg-plist which are not in STAGEDIR
===> Error: Plist issues found.
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/logitechmediaserver
=>> Error: check-plist failures detected

...

It also seems to bundle quite a few libraries which isn't ideal...
https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#bundled-libs

Best regards,
Daniel
Comment 7 Hans Soonieus 2020-12-12 13:35:23 UTC
Created attachment 220483 [details]
Update logitechmediaserver to 8.0.0 v2
Comment 8 Hans Soonieus 2020-12-12 13:37:56 UTC
Directory /var/db/logitechmediaserver/cache is created on first run and needs to be preserved during updates

Files missing in pkg-plist were deliberate, they are not needed. New patch now removes them from stagedir.

Any libraries are only used to build specific versions of Perl Modules, no libraries are installed.
Comment 9 Hans Soonieus 2020-12-25 23:24:07 UTC
Created attachment 220924 [details]
Update logitechmediaserver to 8.1.0
Comment 10 Alan Braslau 2020-12-27 05:07:02 UTC
I do not really know what I am doing ... but I succeeded in installing the 8.1.0 patch on freebsd 12.2 amd64.
1) I had to "touch files/revision.txt.in" as this did not exist
2) It used perl5.28 as that is what was installed for the port to compile previously.

I then removed perl5.28 and reinstalled. This pulled in perl5.32 and LMS 8.1.0 is now running fine with perl5.32.

Thank you!
Comment 11 Hans Soonieus 2020-12-27 11:33:33 UTC
I am happy you found this useful Alan.
For other people who are not familiar with patch files ( including me ) here is a way to use them :

1. Download the patch and copy it to your home-directory with the name patchfile ( you can use any name you wish but in the following example I use patchfile )

2. Create a copy of the original port from the ports-tree in your home-directory

cp -r /usr/ports/audio/logitechmediaserver logitechmediaserver

3. Create an empty file revision.txt.in in the correct location

touch logitechmediaserver/files/revision.txt.in

4. Run patch

patch -E -i patchfile -V none

( the -E option removes two files that are empty after the patch and the -V none option means no backup files ( .orig ) are created )

5. You can now install the new version of logitechmediaserver from the direcory ~/logitechmediaserver in the normal way
Comment 12 Gregory Sutter 2021-08-10 22:16:16 UTC
Created attachment 227095 [details]
Update logitechmediaserver to 8.2.0

This patch adds to the work of Hans Soonieus on previous versions to update LMS to 8.2.0.
Comment 13 Gregory Sutter 2021-08-10 22:40:01 UTC
Created attachment 227096 [details]
Update logitechmediaserver to 8.2.0 v2

This patch adds to the work of Hans Soonieus on previous versions to update LMS to 8.2.0.  patch v2 avoids re-inclusion of $FreeBSD$ tags within 'files/'.
Comment 14 Trenton Schulz 2021-09-18 06:44:11 UTC
I used the latest 8.2.0 v2 patch (which looks like it is actually version 8.2.1, not that I would complain) and it mostly works. The only thing is that somewhere along in your series of patches a "files/revision.txt.in" was added, and this patch only changes the permissions on it. It doesn't add the file.

As a result, there is an error when "make patch" runs. I simply did a 

touch files/revision.txt.in

and the port built. I have no idea if the revision.txt.in is necessary or not, but you may want to update the patch regarding that.

Regardless, hats off to you. I have tried to update this port myself and ran into issues. I was running a hand-rolled build, but it leaked memory and couldn't be trusted. Your patched port is keeping memory right where it needs to be. Hope it can be committed soon.
Comment 15 David Z. 2021-09-25 20:03:23 UTC
(In reply to Gregory Sutter from comment #13)
Besides the missing "files/revision.txt.in" file, poudriere prints a few warnings on 13.0R amd64:

[00:00:04] Gathering ports metadata
[00:00:04] Warning: (audio/logitechmediaserver): sh: perl: not found
[00:00:04] Warning: (audio/logitechmediaserver): make: "/usr/ports/audio/logitec
hmediaserver/Makefile" line 85: warning: "perl -MConfig -le 'print $Config{archn
ame}'" returned non-zero status
[00:00:07] Calculating ports order and dependencies

Otherwise, the port builds properly (and actually builds v8.2.1).  Thanks for the patch!
Comment 16 Hans Soonieus 2021-09-25 21:44:37 UTC
Created attachment 228180 [details]
Update logitechmediaserver to 8.2.0
Comment 17 Hans Soonieus 2021-09-25 22:04:15 UTC
Regards the version of the patch submitted by Gregory Sutter, this does indeed pick up the github repository a few commits beyond version 8.2.0. The actual version of his patch is 8.2.1.g2021.08.09.

Added a patch to the official version 8.2.0.

Regarding the error encountered by David Z this seems to indicate that Perl was not (yet) available during this phase. The port uses Perl during the build phase to determine the Perl arch ( amd64-freebsd-thread-multi on amd64 etc ) in the original version of the port this was configured statically in Makefile and was probably the reason for the fact this port is i386 amd64 only. It will probably build on other platforms but I do have the equipment to test this so I have left the i386/amd64 limit.

I have not yet tested this on 13.0.

Regards the file revision.txt.in this is purely cosmetic. The contents of this file is used to display some information on the information webpage :

Version: 8.2.0 - Release @ FRI 06 AUG 12:00:00 CET 2021

Without this file this line would state :

Version: 8.2.0 - TRUNK @ UNKNOWN

The contents of this file is in the diff :

diff -ruN /usr/ports/audio/logitechmediaserver/files/revision.txt.in logitechmediaserver/files/revision.txt.in
--- /usr/ports/audio/logitechmediaserver/files/revision.txt.in	1970-01-01 01:00:00.000000000 +0100
+++ logitechmediaserver/files/revision.txt.in	2021-08-06 12:00:27.000000000 +0200
@@ -0,0 +1,2 @@
+Release
+FRI 06 AUG 12:00:00 CET 2021
Comment 18 Hans Soonieus 2021-09-25 22:11:22 UTC
For people who do not want to mess with diff files the complete port is in post #11 of the following thread :

https://forums.slimdevices.com/showthread.php?105656-Help-making-a-FreeBSD-port-for-Logitech-Media-Server/page2

If there is a new official release I will put the port on that forum and a link here.
Comment 19 David Z. 2021-09-26 03:34:31 UTC
(In reply to Hans Soonieus from comment #17)
Hans, your patch also builds on my 13.0R amd64 system.  The perl warnings I noted earlier are still there when building with poudriere, but everything else is OK.  Should the arch determination be reverted back to the previous method?
Comment 20 Hans Soonieus 2021-09-26 13:39:53 UTC
(In reply to David Z. from comment #19)

Hello David,

This seems to be a warning specific to poudriere. If the build completes without error than the arch determination works because if it didn't then the build would fail with an error like this :

cd: /usr/home/hans/logitechmediaserver-8.2.1/work/slimserver-vendor-1a6dc71/CPAN/build/arch/5.32/nonesense: No such file or directory
*** Error code 2

Stop.
make[1]: stopped in /usr/home/hans/logitechmediaserver-8.2.1
*** Error code 1

Stop.
make: stopped in /usr/home/hans/logitechmediaserver-8.2.1


In Makefile line 87 and 88 the perl archname is determined and put in a variable ARCHNAME which is later (from line 102) used to copy files from the slimserver-vendor work directory to the staging directory.

Originally this was done like this :

.if ${ARCH} == "i386"
ARCHNAME=       i386-freebsd-thread-multi-64int
PLIST_SUB+=     I386_ONLY=""
.else
PLIST_SUB+=     I386_ONLY="@comment "
.endif

.if ${ARCH} == "amd64"
ARCHNAME=       amd64-freebsd-thread-multi
PLIST_SUB+=     AMD64_ONLY=""
.else
PLIST_SUB+=     AMD64_ONLY="@comment "
.endif

The PLIST_SUB is no longer necessary so line 87 and 88 could be replaced by :

.if ${ARCH} == "i386"
ARCHNAME=       i386-freebsd-thread-multi-64int
.endif

.if ${ARCH} == "amd64"
ARCHNAME=       amd64-freebsd-thread-multi
.endif