pDLNA-Portierung

Diese Seite beschreibt meine Erfahrungen bei der Portierung von pDLNA (v0.64.2) von Stefan Heumader auf ein Netgear ReadyNAS 314 (Firmware v6.1.4) - ein mehr oder weniger sauberes Debian 7.1.

root@ReadyNAS:~# cat /etc/debian_version
7.1
root@ReadyNAS:~# cat /etc/issue
ReadyNASOS 6.1.4 \n \l
root@ReadyNAS:~# cat /proc/version
Linux version 3.0.93.RNx86_64.2.1 (jenkins@blocks) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Mon Sep 30 11:46:22 PDT 2013
root@ReadyNAS:~# uname -a
Linux ReadyNAS 3.0.93.RNx86_64.2.1 #1 SMP Mon Sep 30 11:46:22 PDT 2013 x86_64 GNU/Linux

Das Betriebssystemupdata (Firmware v6.1.5) hat dDLNA nicht beeinflusst - allerdings wird die .bashrc neu geschriben (Änderungen darin sollte man sichern).

root@ReadyNAS:~# cat /etc/debian_version
7.1
root@ReadyNAS:~# cat /etc/issue
ReadyNASOS 6.1.5 \n \l
root@ReadyNAS:~# cat /proc/version
Linux version 3.0.101.RNx86_64.2.1 (jenkins@blocks) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Dec 5 12:31:10 PST 2013
root@ReadyNAS:~# uname -a
Linux ReadyNAS 3.0.101.RNx86_64.2.1 #1 SMP Thu Dec 5 12:31:10 PST 2013 x86_64 GNU/Linux


Das Wichtigste in Kürze:
Dank der tollen Zusammenarbeit mit dem Autor Stefan Heumader funktioniert pDLNA inzwischen auf dem Netgear ReadyNAS 314 mit meinem YAMAHA RX-V3067!
… ich bin nur (noch) nicht dazu gekommen, die angefangene Dokumentation fortzusetzen…


Vorgehen

Vorbereitungen auf dem ReadyNAS

Der SSL-Dienst muss auf dem ReadyNAS eingeschaltet werden. Dazu muss gem. Anleitung auf der Web-Oberfläche unter System » Einstellungen » Dienste » SSH der SSH-Dienst eingeschaltet werden. Danach kann man sich als root mit dem Admin-Kennwort der Web-Seite per SSH-Client (bspw.PuTTY) anmelden.

Abarbeiten der Installationsanleitung

Wenn man dem pDLNA Installation, Configuration and Debugging Guide strikt folgt, stößt man auf ein paar Probleme, die ich im folgenden inkl. Lösung beschreibe. „Unwesentliche Ausgaben“ sind verkürzt dargestellt!

Perl Pakete
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2013.12.23 15:06:40 =~=~=~=~=~=~=~=~=~=~=~=
login as: **********
**********@ReadyNAS's password: 

Welcome to ReadyNASOS 6.1.4

root@ReadyNAS:~# apt-get install \
> ffmpeg libaudio-flac-header-perl libaudio-wav-perl \
> libaudio-wma-perl libconfig-apacheformat-perl libdbd-mysql-perl \
> libdbd-sqlite3-perl libdbi-perl libdigest-md5-perl \
> libdigest-sha-perl libfile-mimeinfo-perl libgd-gd2-perl \
> libgd-graph-perl libgetopt-long-descriptive-perl \
> libimage-info-perl libio-interface-perl \
> libio-socket-multicast-perl libmp3-info-perl libmp4-info-perl \
> libnet-ip-perl libnet-netmask-perl \
> libogg-vorbis-header-pureperl-perl libproc-processtable-perl \
> libsoap-lite-perl libsys-syslog-perl libxml-simple-perl

Reading package lists... 0%
Reading package lists... Done

Building dependency tree... 0%
Building dependency tree       

Reading state information... 0%
Reading state information... Done

Note, selecting 'perl' instead of 'libdigest-md5-perl'

The following extra packages will be installed:
  ca-certificates libavdevice54 libavfilter3 libclass-inspector-perl libclass-isa-perl libclass-methodmaker-perl libconvert-binhex-perl libcrypt-ssleay-perl libdata-optlist-perl
  libencode-locale-perl libfcgi-perl libfile-basedir-perl libfile-desktopentry-perl libfile-listing-perl libgd-text-perl libgd2-xpm libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl
  libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libimage-base-bundle-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl
  liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmime-tools-perl libmodule-implementation-perl libmodule-runtime-perl libmysqlclient18 libnet-daemon-perl libnet-http-perl
  libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libparams-classify-perl libparams-util-perl libparams-validate-perl libperl5.14 libplrpc-perl libsub-exporter-perl libsub-install-perl
  libswitch-perl libtask-weaken-perl libtimedate-perl libtry-tiny-perl libunicode-string-perl liburi-perl libwww-perl libwww-robotrules-perl libx11-6 libx11-data libxau6 libxcb1 libxdmcp6
  libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-perl libxpm4 mysql-common perl-base perl-modules shared-mime-info

Suggested packages:
  nvidia-libvdpau1 ttf-dustin libgd-tools libdata-dump-perl libmime-base64-perl uuid libscalar-number-perl libcompress-zlib-perl libapache2-mod-perl2 libmime-lite-perl libnet-jabber-perl
  libauthen-ntlm-perl perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make libpod-plainer-perl

Recommended packages:
  libinline-perl libhtml-format-perl libio-socket-ip-perl libio-socket-inet6-perl libhtml-form-perl libxml-sax-expat-perl

The following NEW packages will be installed:
  ca-certificates ffmpeg libaudio-flac-header-perl libaudio-wav-perl libaudio-wma-perl libavdevice54 libavfilter3 libclass-inspector-perl libclass-isa-perl libclass-methodmaker-perl
  libconfig-apacheformat-perl libconvert-binhex-perl libcrypt-ssleay-perl libdata-optlist-perl libdbd-mysql-perl libdbd-sqlite3-perl libdbi-perl libdigest-sha-perl libencode-locale-perl libfcgi-perl
  libfile-basedir-perl libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libgd-gd2-perl libgd-graph-perl libgd-text-perl libgd2-xpm libgetopt-long-descriptive-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libimage-base-bundle-perl
  libimage-info-perl libio-interface-perl libio-socket-multicast-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl
  libmime-tools-perl libmodule-implementation-perl libmodule-runtime-perl libmp3-info-perl libmp4-info-perl libmysqlclient18 libnet-daemon-perl libnet-http-perl libnet-ip-perl libnet-netmask-perl
  libnet-ssleay-perl libogg-vorbis-header-pureperl-perl libossp-uuid-perl libossp-uuid16 libparams-classify-perl libparams-util-perl libparams-validate-perl libplrpc-perl libproc-processtable-perl
  libsoap-lite-perl libsub-exporter-perl libsub-install-perl libswitch-perl libsys-syslog-perl libtask-weaken-perl libtimedate-perl libtry-tiny-perl libunicode-string-perl liburi-perl libwww-perl
  libwww-robotrules-perl libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-base-perl libxml-sax-perl libxml-simple-perl
  libxpm4 mysql-common perl perl-modules shared-mime-info

The following packages will be upgraded:
  libperl5.14 perl-base

2 upgraded, 94 newly installed, 0 to remove and 28 not upgraded.
Need to get 19.4 MB of archives.
After this operation, 83.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Get:1 http://apt.readynas.com/packages/readynasos/ 6.1.4/main libavdevice54 amd64 7:1.2.2-netgear1 [28.7 kB]
Get:2 http://mirrors.kernel.org/debian/ wheezy/main libperl5.14 amd64 5.14.2-21+deb7u1 [1,184 B]
Get:3 http://mirrors.kernel.org/debian/ wheezy/main perl-base amd64 5.14.2-21+deb7u1 [1,518 kB]
Get:4 http://apt.readynas.com/packages/readynasos/ 6.1.4/main libavfilter3 amd64 7:1.2.2-netgear1 [64.0 kB]
Get:5 http://apt.readynas.com/packages/readynasos/ 6.1.4/main ffmpeg amd64 7:1.2.2-netgear1 [297 kB]
Get:6 http://mirrors.kernel.org/debian/ wheezy/main libxau6 amd64 1:1.0.7-1 [18.8 kB]
Get:7 http://mirrors.kernel.org/debian/ wheezy/main libxdmcp6 amd64 1:1.1.1-1 [26.3 kB]
Get:8 http://mirrors.kernel.org/debian/ wheezy/main libxcb1 amd64 1.8.1-2+deb7u1 [50.2 kB]
Get:9 http://mirrors.kernel.org/debian/ wheezy/main libx11-data all 2:1.5.0-1+deb7u1 [189 kB]
Get:10 http://mirrors.kernel.org/debian/ wheezy/main libx11-6 amd64 2:1.5.0-1+deb7u1 [900 kB]
Get:11 http://mirrors.kernel.org/debian/ wheezy/main libxpm4 amd64 1:3.5.10-1 [49.4 kB]
Get:12 http://mirrors.kernel.org/debian/ wheezy/main libgd2-xpm amd64 2.0.36~rc1~dfsg-6.1 [232 kB]
Get:13 http://mirrors.kernel.org/debian/ wheezy/main mysql-common all 5.5.31+dfsg-0+wheezy1 [85.3 kB]
Get:14 http://mirrors.kernel.org/debian/ wheezy/main libmysqlclient18 amd64 5.5.31+dfsg-0+wheezy1 [687 kB]
Get:15 http://mirrors.kernel.org/debian/ wheezy/main libclass-isa-perl all 0.36-3 [12.3 kB]
Get:16 http://mirrors.kernel.org/debian/ wheezy/main perl-modules all 5.14.2-21+deb7u1 [3,440 kB]
Get:17 http://mirrors.kernel.org/debian/ wheezy/main perl amd64 5.14.2-21+deb7u1 [4,407 kB]
Get:18 http://mirrors.kernel.org/debian/ wheezy/main libswitch-perl all 2.16-2 [21.0 kB]
Get:19 http://mirrors.kernel.org/debian/ wheezy/main ca-certificates all 20130119 [185 kB]
Get:20 http://mirrors.kernel.org/debian/ wheezy/main libaudio-flac-header-perl amd64 2.4-1+b2 [30.8 kB]
Get:21 http://mirrors.kernel.org/debian/ wheezy/main libaudio-wav-perl all 0.13-1 [32.6 kB]
Get:22 http://mirrors.kernel.org/debian/ wheezy/main libaudio-wma-perl all 1.3-1 [18.4 kB]
Get:23 http://mirrors.kernel.org/debian/ wheezy/main libclass-inspector-perl all 1.27-1 [20.6 kB]
Get:24 http://mirrors.kernel.org/debian/ wheezy/main libclass-methodmaker-perl amd64 2.18-1+b1 [499 kB]
Get:25 http://mirrors.kernel.org/debian/ wheezy/main libconfig-apacheformat-perl all 1.2-4 [25.0 kB]
Get:26 http://mirrors.kernel.org/debian/ wheezy/main libconvert-binhex-perl all 1.119+pristine-3 [30.3 kB]
Get:27 http://mirrors.kernel.org/debian/ wheezy/main libcrypt-ssleay-perl amd64 0.58-1 [51.8 kB]
Get:28 http://mirrors.kernel.org/debian/ wheezy/main libparams-util-perl amd64 1.07-1 [25.7 kB]
Get:29 http://mirrors.kernel.org/debian/ wheezy/main libsub-install-perl all 0.926-1 [11.2 kB]
Get:30 http://mirrors.kernel.org/debian/ wheezy/main libdata-optlist-perl all 0.107-1 [10.7 kB]
Get:31 http://mirrors.kernel.org/debian/ wheezy/main libnet-daemon-perl all 0.48-1 [46.2 kB]
Get:32 http://mirrors.kernel.org/debian/ wheezy/main libplrpc-perl all 0.2020-2 [36.0 kB]
Get:33 http://mirrors.kernel.org/debian/ wheezy/main libdbi-perl amd64 1.622-1 [898 kB]
Get:34 http://mirrors.kernel.org/debian/ wheezy/main libdbd-mysql-perl amd64 4.021-1+b1 [126 kB]
Get:35 http://mirrors.kernel.org/debian/ wheezy/main libdbd-sqlite3-perl amd64 1.37-1 [113 kB]
Get:36 http://mirrors.kernel.org/debian/ wheezy/main libdigest-sha-perl amd64 5.71-2+deb7u1 [58.9 kB]
Get:37 http://mirrors.kernel.org/debian/ wheezy/main libencode-locale-perl all 1.03-1 [13.6 kB]
Get:38 http://mirrors.kernel.org/debian/ wheezy/main libfcgi-perl amd64 0.74-1+b1 [42.8 kB]
Get:39 http://mirrors.kernel.org/debian/ wheezy/main libfile-basedir-perl all 0.03-1 [10.4 kB]
Get:40 http://mirrors.kernel.org/debian/ wheezy/main libfile-desktopentry-perl all 0.04-3 [19.0 kB]
Get:41 http://mirrors.kernel.org/debian/ wheezy/main libtimedate-perl all 1.2000-1 [41.2 kB]
Get:42 http://mirrors.kernel.org/debian/ wheezy/main libhttp-date-perl all 6.02-1 [10.7 kB]
Get:43 http://mirrors.kernel.org/debian/ wheezy/main libfile-listing-perl all 6.04-1 [10.3 kB]
Get:44 http://mirrors.kernel.org/debian/ wheezy/main shared-mime-info amd64 1.0-1+b1 [595 kB]
Get:45 http://mirrors.kernel.org/debian/ wheezy/main libfile-mimeinfo-perl all 0.16-1 [52.1 kB]
Get:46 http://mirrors.kernel.org/debian/ wheezy/main libio-stringy-perl all 2.110-5 [98.3 kB]
Get:47 http://mirrors.kernel.org/debian/ wheezy/main libparams-classify-perl amd64 0.013-4 [26.0 kB]
Get:48 http://mirrors.kernel.org/debian/ wheezy/main libmodule-runtime-perl all 0.013-1 [17.8 kB]
Get:49 http://mirrors.kernel.org/debian/ wheezy/main libtry-tiny-perl all 0.11-1 [18.0 kB]
Get:50 http://mirrors.kernel.org/debian/ wheezy/main libmodule-implementation-perl all 0.06-1 [12.8 kB]
Get:51 http://mirrors.kernel.org/debian/ wheezy/main libparams-validate-perl amd64 1.06-1 [67.4 kB]
Get:52 http://mirrors.kernel.org/debian/ wheezy/main libsub-exporter-perl all 0.984-1 [52.4 kB]
Get:53 http://mirrors.kernel.org/debian/ wheezy/main libgetopt-long-descriptive-perl all 0.091-1 [25.9 kB]
Get:54 http://mirrors.kernel.org/debian/ wheezy/main liburi-perl all 1.60-1 [100 kB]
Get:55 http://mirrors.kernel.org/debian/ wheezy/main libhtml-tagset-perl all 3.20-2 [13.5 kB]
Get:56 http://mirrors.kernel.org/debian/ wheezy/main libhtml-parser-perl amd64 3.69-2 [114 kB]
Get:57 http://mirrors.kernel.org/debian/ wheezy/main libhtml-tree-perl all 5.02-1 [225 kB]
Get:58 http://mirrors.kernel.org/debian/ wheezy/main liblwp-mediatypes-perl all 6.02-1 [22.1 kB]
Get:59 http://mirrors.kernel.org/debian/ wheezy/main libhttp-message-perl all 6.03-1 [78.5 kB]
Get:60 http://mirrors.kernel.org/debian/ wheezy/main libhttp-cookies-perl all 6.00-2 [23.5 kB]
Get:61 http://mirrors.kernel.org/debian/ wheezy/main libhttp-daemon-perl all 6.01-1 [17.3 kB]
Get:62 http://mirrors.kernel.org/debian/ wheezy/main libhttp-negotiate-perl all 6.00-2 [13.6 kB]
Get:63 http://mirrors.kernel.org/debian/ wheezy/main libio-string-perl all 1.08-2 [12.0 kB]
Get:64 http://mirrors.kernel.org/debian/ wheezy/main libimage-base-bundle-perl all 1.0.7-3 [30.7 kB]
Get:65 http://mirrors.kernel.org/debian/ wheezy/main libxml-namespacesupport-perl all 1.09-3 [15.3 kB]
Get:66 http://mirrors.kernel.org/debian/ wheezy/main libxml-sax-base-perl all 1.07-1 [23.1 kB]
Get:67 http://mirrors.kernel.org/debian/ wheezy/main libxml-sax-perl all 0.99+dfsg-2 [68.3 kB]
Get:68 http://mirrors.kernel.org/debian/ wheezy/main libxml-libxml-perl amd64 2.0001+dfsg-1 [412 kB]
Get:69 http://mirrors.kernel.org/debian/ wheezy/main libxml-simple-perl all 2.20-1 [74.7 kB]
Get:70 http://mirrors.kernel.org/debian/ wheezy/main libimage-info-perl all 1.28-1 [60.1 kB]
Get:71 http://mirrors.kernel.org/debian/ wheezy/main libio-interface-perl amd64 1.06-1+b1 [26.2 kB]
Get:72 http://mirrors.kernel.org/debian/ wheezy/main libio-socket-multicast-perl amd64 1.12-1+b2 [20.9 kB]
Get:73 http://mirrors.kernel.org/debian/ wheezy/main libnet-ssleay-perl amd64 1.48-1+b1 [335 kB]
Get:74 http://mirrors.kernel.org/debian/ wheezy/main libio-socket-ssl-perl all 1.76-2 [68.0 kB]
Get:75 http://mirrors.kernel.org/debian/ wheezy/main libnet-http-perl all 6.03-2 [24.3 kB]
Get:76 http://mirrors.kernel.org/debian/ wheezy/main libwww-robotrules-perl all 6.01-1 [14.3 kB]
Get:77 http://mirrors.kernel.org/debian/ wheezy/main libwww-perl all 6.04-1 [203 kB]
Get:78 http://mirrors.kernel.org/debian/ wheezy/main liblwp-protocol-https-perl all 6.03-1 [7,580 B]
Get:79 http://mirrors.kernel.org/debian/ wheezy/main libmailtools-perl all 2.09-1 [97.6 kB]
Get:80 http://mirrors.kernel.org/debian/ wheezy/main libmime-tools-perl all 5.503-1 [242 kB]
Get:81 http://mirrors.kernel.org/debian/ wheezy/main libunicode-string-perl amd64 2.09-5 [136 kB]
Get:82 http://mirrors.kernel.org/debian/ wheezy/main libmp3-info-perl all 1.24-1 [45.1 kB]
Get:83 http://mirrors.kernel.org/debian/ wheezy/main libmp4-info-perl all 1.13-1 [16.2 kB]
Get:84 http://mirrors.kernel.org/debian/ wheezy/main libnet-ip-perl all 1.25-3 [29.5 kB]
Get:85 http://mirrors.kernel.org/debian/ wheezy/main libnet-netmask-perl all 1.9016-1 [29.8 kB]
Get:86 http://mirrors.kernel.org/debian/ wheezy/main libogg-vorbis-header-pureperl-perl all 1.0-3 [13.4 kB]
Get:87 http://mirrors.kernel.org/debian/ wheezy/main libossp-uuid16 amd64 1.6.2-1.3 [58.8 kB]
Get:88 http://mirrors.kernel.org/debian/ wheezy/main libossp-uuid-perl amd64 1.6.2-1.3 [31.6 kB]
Get:89 http://mirrors.kernel.org/debian/ wheezy/main libproc-processtable-perl amd64 0.45-6 [48.9 kB]
Get:90 http://mirrors.kernel.org/debian/ wheezy/main libtask-weaken-perl all 1.03-1 [7,690 B]
Get:91 http://mirrors.kernel.org/debian/ wheezy/main libxml-parser-perl amd64 2.41-1+b1 [278 kB]
Get:92 http://mirrors.kernel.org/debian/ wheezy/main libsoap-lite-perl all 0.714-1 [343 kB]
Get:93 http://mirrors.kernel.org/debian/ wheezy/main libsys-syslog-perl amd64 0.29-1+b2 [43.8 kB]
Get:94 http://mirrors.kernel.org/debian/ wheezy/main libgd-gd2-perl amd64 1:2.46-3+b1 [200 kB]
Get:95 http://mirrors.kernel.org/debian/ wheezy/main libgd-text-perl all 0.86-8 [42.4 kB]
Get:96 http://mirrors.kernel.org/debian/ wheezy/main libgd-graph-perl all 1.44-6 [393 kB]
                                                                                                                                                                                                       
Fetched 19.4 MB in 41s (466 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 
(Reading database ... 100%
(Reading database ... 12603 files and directories currently installed.)
Preparing to replace libperl5.14 5.14.2-21 (using .../libperl5.14_5.14.2-21+deb7u1_amd64.deb) ...
Unpacking replacement libperl5.14 ...
Preparing to replace perl-base 5.14.2-21 (using .../perl-base_5.14.2-21+deb7u1_amd64.deb) ...
Unpacking replacement perl-base ...
Setting up perl-base (5.14.2-21+deb7u1) ...
Selecting previously unselected package libavdevice54:amd64.
(Reading database ... 
(Reading database ... 100%
(Reading database ... 12603 files and directories currently installed.)
Unpacking libavdevice54:amd64 (from .../libavdevice54_7%3a1.2.2-netgear1_amd64.deb) ...
Selecting previously unselected package libavfilter3:amd64.
Unpacking libavfilter3:amd64 (from .../libavfilter3_7%3a1.2.2-netgear1_amd64.deb) ...
Selecting previously unselected package libxau6:amd64.
Unpacking libxau6:amd64 (from .../libxau6_1%3a1.0.7-1_amd64.deb) ...
Selecting previously unselected package libxdmcp6:amd64.
Unpacking libxdmcp6:amd64 (from .../libxdmcp6_1%3a1.1.1-1_amd64.deb) ...
Selecting previously unselected package libxcb1:amd64.
Unpacking libxcb1:amd64 (from .../libxcb1_1.8.1-2+deb7u1_amd64.deb) ...
Selecting previously unselected package libx11-data.
Unpacking libx11-data (from .../libx11-data_2%3a1.5.0-1+deb7u1_all.deb) ...
Selecting previously unselected package libx11-6:amd64.
Unpacking libx11-6:amd64 (from .../libx11-6_2%3a1.5.0-1+deb7u1_amd64.deb) ...
Selecting previously unselected package libxpm4:amd64.
Unpacking libxpm4:amd64 (from .../libxpm4_1%3a3.5.10-1_amd64.deb) ...
Selecting previously unselected package libgd2-xpm:amd64.
Unpacking libgd2-xpm:amd64 (from .../libgd2-xpm_2.0.36~rc1~dfsg-6.1_amd64.deb) ...
Selecting previously unselected package mysql-common.
Unpacking mysql-common (from .../mysql-common_5.5.31+dfsg-0+wheezy1_all.deb) ...
Selecting previously unselected package libmysqlclient18:amd64.
Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package libclass-isa-perl.
Unpacking libclass-isa-perl (from .../libclass-isa-perl_0.36-3_all.deb) ...
Selecting previously unselected package perl-modules.
Unpacking perl-modules (from .../perl-modules_5.14.2-21+deb7u1_all.deb) ...
Selecting previously unselected package perl.
Unpacking perl (from .../perl_5.14.2-21+deb7u1_amd64.deb) ...
Selecting previously unselected package libswitch-perl.
Unpacking libswitch-perl (from .../libswitch-perl_2.16-2_all.deb) ...
Selecting previously unselected package ca-certificates.
Unpacking ca-certificates (from .../ca-certificates_20130119_all.deb) ...
Selecting previously unselected package ffmpeg.
Unpacking ffmpeg (from .../ffmpeg_7%3a1.2.2-netgear1_amd64.deb) ...
Selecting previously unselected package libaudio-flac-header-perl.
Unpacking libaudio-flac-header-perl (from .../libaudio-flac-header-perl_2.4-1+b2_amd64.deb) ...
Selecting previously unselected package libaudio-wav-perl.
Unpacking libaudio-wav-perl (from .../libaudio-wav-perl_0.13-1_all.deb) ...
Selecting previously unselected package libaudio-wma-perl.
Unpacking libaudio-wma-perl (from .../libaudio-wma-perl_1.3-1_all.deb) ...
Selecting previously unselected package libclass-inspector-perl.
Unpacking libclass-inspector-perl (from .../libclass-inspector-perl_1.27-1_all.deb) ...
Selecting previously unselected package libclass-methodmaker-perl.
Unpacking libclass-methodmaker-perl (from .../libclass-methodmaker-perl_2.18-1+b1_amd64.deb) ...
Selecting previously unselected package libconfig-apacheformat-perl.
Unpacking libconfig-apacheformat-perl (from .../libconfig-apacheformat-perl_1.2-4_all.deb) ...
Selecting previously unselected package libconvert-binhex-perl.
Unpacking libconvert-binhex-perl (from .../libconvert-binhex-perl_1.119+pristine-3_all.deb) ...
Selecting previously unselected package libcrypt-ssleay-perl.
Unpacking libcrypt-ssleay-perl (from .../libcrypt-ssleay-perl_0.58-1_amd64.deb) ...
Selecting previously unselected package libparams-util-perl.
Unpacking libparams-util-perl (from .../libparams-util-perl_1.07-1_amd64.deb) ...
Selecting previously unselected package libsub-install-perl.
Unpacking libsub-install-perl (from .../libsub-install-perl_0.926-1_all.deb) ...
Selecting previously unselected package libdata-optlist-perl.
Unpacking libdata-optlist-perl (from .../libdata-optlist-perl_0.107-1_all.deb) ...
Selecting previously unselected package libnet-daemon-perl.
Unpacking libnet-daemon-perl (from .../libnet-daemon-perl_0.48-1_all.deb) ...
Selecting previously unselected package libplrpc-perl.
Unpacking libplrpc-perl (from .../libplrpc-perl_0.2020-2_all.deb) ...
Selecting previously unselected package libdbi-perl.
Unpacking libdbi-perl (from .../libdbi-perl_1.622-1_amd64.deb) ...
Selecting previously unselected package libdbd-mysql-perl.
Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1+b1_amd64.deb) ...
Selecting previously unselected package libdbd-sqlite3-perl.
Unpacking libdbd-sqlite3-perl (from .../libdbd-sqlite3-perl_1.37-1_amd64.deb) ...
Selecting previously unselected package libdigest-sha-perl.
Unpacking libdigest-sha-perl (from .../libdigest-sha-perl_5.71-2+deb7u1_amd64.deb) ...
Adding 'diversion of /usr/bin/shasum to /usr/bin/shasum.bundled by libdigest-sha-perl'
Adding 'diversion of /usr/share/man/man1/shasum.1.gz to /usr/share/man/man1/shasum.bundled.1.gz by libdigest-sha-perl'
Selecting previously unselected package libencode-locale-perl.
Unpacking libencode-locale-perl (from .../libencode-locale-perl_1.03-1_all.deb) ...
Selecting previously unselected package libfcgi-perl.
Unpacking libfcgi-perl (from .../libfcgi-perl_0.74-1+b1_amd64.deb) ...
Selecting previously unselected package libfile-basedir-perl.
Unpacking libfile-basedir-perl (from .../libfile-basedir-perl_0.03-1_all.deb) ...
Selecting previously unselected package libfile-desktopentry-perl.
Unpacking libfile-desktopentry-perl (from .../libfile-desktopentry-perl_0.04-3_all.deb) ...
Selecting previously unselected package libtimedate-perl.
Unpacking libtimedate-perl (from .../libtimedate-perl_1.2000-1_all.deb) ...
Selecting previously unselected package libhttp-date-perl.
Unpacking libhttp-date-perl (from .../libhttp-date-perl_6.02-1_all.deb) ...
Selecting previously unselected package libfile-listing-perl.
Unpacking libfile-listing-perl (from .../libfile-listing-perl_6.04-1_all.deb) ...
Selecting previously unselected package shared-mime-info.
Unpacking shared-mime-info (from .../shared-mime-info_1.0-1+b1_amd64.deb) ...
Selecting previously unselected package libfile-mimeinfo-perl.
Unpacking libfile-mimeinfo-perl (from .../libfile-mimeinfo-perl_0.16-1_all.deb) ...
Selecting previously unselected package libio-stringy-perl.
Unpacking libio-stringy-perl (from .../libio-stringy-perl_2.110-5_all.deb) ...
Selecting previously unselected package libparams-classify-perl.
Unpacking libparams-classify-perl (from .../libparams-classify-perl_0.013-4_amd64.deb) ...
Selecting previously unselected package libmodule-runtime-perl.
Unpacking libmodule-runtime-perl (from .../libmodule-runtime-perl_0.013-1_all.deb) ...
Selecting previously unselected package libtry-tiny-perl.
Unpacking libtry-tiny-perl (from .../libtry-tiny-perl_0.11-1_all.deb) ...
Selecting previously unselected package libmodule-implementation-perl.
Unpacking libmodule-implementation-perl (from .../libmodule-implementation-perl_0.06-1_all.deb) ...
Selecting previously unselected package libparams-validate-perl.
Unpacking libparams-validate-perl (from .../libparams-validate-perl_1.06-1_amd64.deb) ...
Selecting previously unselected package libsub-exporter-perl.
Unpacking libsub-exporter-perl (from .../libsub-exporter-perl_0.984-1_all.deb) ...
Selecting previously unselected package libgetopt-long-descriptive-perl.
Unpacking libgetopt-long-descriptive-perl (from .../libgetopt-long-descriptive-perl_0.091-1_all.deb) ...
Selecting previously unselected package liburi-perl.
Unpacking liburi-perl (from .../liburi-perl_1.60-1_all.deb) ...
Selecting previously unselected package libhtml-tagset-perl.
Unpacking libhtml-tagset-perl (from .../libhtml-tagset-perl_3.20-2_all.deb) ...
Selecting previously unselected package libhtml-parser-perl.
Unpacking libhtml-parser-perl (from .../libhtml-parser-perl_3.69-2_amd64.deb) ...
Selecting previously unselected package libhtml-tree-perl.
Unpacking libhtml-tree-perl (from .../libhtml-tree-perl_5.02-1_all.deb) ...
Selecting previously unselected package liblwp-mediatypes-perl.
Unpacking liblwp-mediatypes-perl (from .../liblwp-mediatypes-perl_6.02-1_all.deb) ...
Selecting previously unselected package libhttp-message-perl.
Unpacking libhttp-message-perl (from .../libhttp-message-perl_6.03-1_all.deb) ...
Selecting previously unselected package libhttp-cookies-perl.
Unpacking libhttp-cookies-perl (from .../libhttp-cookies-perl_6.00-2_all.deb) ...
Selecting previously unselected package libhttp-daemon-perl.
Unpacking libhttp-daemon-perl (from .../libhttp-daemon-perl_6.01-1_all.deb) ...
Selecting previously unselected package libhttp-negotiate-perl.
Unpacking libhttp-negotiate-perl (from .../libhttp-negotiate-perl_6.00-2_all.deb) ...
Selecting previously unselected package libio-string-perl.
Unpacking libio-string-perl (from .../libio-string-perl_1.08-2_all.deb) ...
Selecting previously unselected package libimage-base-bundle-perl.
Unpacking libimage-base-bundle-perl (from .../libimage-base-bundle-perl_1.0.7-3_all.deb) ...
Selecting previously unselected package libxml-namespacesupport-perl.
Unpacking libxml-namespacesupport-perl (from .../libxml-namespacesupport-perl_1.09-3_all.deb) ...
Selecting previously unselected package libxml-sax-base-perl.
Unpacking libxml-sax-base-perl (from .../libxml-sax-base-perl_1.07-1_all.deb) ...
Selecting previously unselected package libxml-sax-perl.
Unpacking libxml-sax-perl (from .../libxml-sax-perl_0.99+dfsg-2_all.deb) ...
Selecting previously unselected package libxml-libxml-perl.
Unpacking libxml-libxml-perl (from .../libxml-libxml-perl_2.0001+dfsg-1_amd64.deb) ...
Selecting previously unselected package libxml-simple-perl.
Unpacking libxml-simple-perl (from .../libxml-simple-perl_2.20-1_all.deb) ...
Selecting previously unselected package libimage-info-perl.
Unpacking libimage-info-perl (from .../libimage-info-perl_1.28-1_all.deb) ...
Selecting previously unselected package libio-interface-perl.
Unpacking libio-interface-perl (from .../libio-interface-perl_1.06-1+b1_amd64.deb) ...
Selecting previously unselected package libio-socket-multicast-perl.
Unpacking libio-socket-multicast-perl (from .../libio-socket-multicast-perl_1.12-1+b2_amd64.deb) ...
Selecting previously unselected package libnet-ssleay-perl.
Unpacking libnet-ssleay-perl (from .../libnet-ssleay-perl_1.48-1+b1_amd64.deb) ...
Selecting previously unselected package libio-socket-ssl-perl.
Unpacking libio-socket-ssl-perl (from .../libio-socket-ssl-perl_1.76-2_all.deb) ...
Selecting previously unselected package libnet-http-perl.
Unpacking libnet-http-perl (from .../libnet-http-perl_6.03-2_all.deb) ...
Selecting previously unselected package libwww-robotrules-perl.
Unpacking libwww-robotrules-perl (from .../libwww-robotrules-perl_6.01-1_all.deb) ...
Selecting previously unselected package libwww-perl.
Unpacking libwww-perl (from .../libwww-perl_6.04-1_all.deb) ...
Selecting previously unselected package liblwp-protocol-https-perl.
Unpacking liblwp-protocol-https-perl (from .../liblwp-protocol-https-perl_6.03-1_all.deb) ...
Selecting previously unselected package libmailtools-perl.
Unpacking libmailtools-perl (from .../libmailtools-perl_2.09-1_all.deb) ...
Selecting previously unselected package libmime-tools-perl.
Unpacking libmime-tools-perl (from .../libmime-tools-perl_5.503-1_all.deb) ...
Selecting previously unselected package libunicode-string-perl.
Unpacking libunicode-string-perl (from .../libunicode-string-perl_2.09-5_amd64.deb) ...
Selecting previously unselected package libmp3-info-perl.
Unpacking libmp3-info-perl (from .../libmp3-info-perl_1.24-1_all.deb) ...
Selecting previously unselected package libmp4-info-perl.
Unpacking libmp4-info-perl (from .../libmp4-info-perl_1.13-1_all.deb) ...
Selecting previously unselected package libnet-ip-perl.
Unpacking libnet-ip-perl (from .../libnet-ip-perl_1.25-3_all.deb) ...
Selecting previously unselected package libnet-netmask-perl.
Unpacking libnet-netmask-perl (from .../libnet-netmask-perl_1.9016-1_all.deb) ...
Selecting previously unselected package libogg-vorbis-header-pureperl-perl.
Unpacking libogg-vorbis-header-pureperl-perl (from .../libogg-vorbis-header-pureperl-perl_1.0-3_all.deb) ...
Selecting previously unselected package libossp-uuid16.
Unpacking libossp-uuid16 (from .../libossp-uuid16_1.6.2-1.3_amd64.deb) ...
Selecting previously unselected package libossp-uuid-perl.
Unpacking libossp-uuid-perl (from .../libossp-uuid-perl_1.6.2-1.3_amd64.deb) ...
Selecting previously unselected package libproc-processtable-perl.
Unpacking libproc-processtable-perl (from .../libproc-processtable-perl_0.45-6_amd64.deb) ...
Selecting previously unselected package libtask-weaken-perl.
Unpacking libtask-weaken-perl (from .../libtask-weaken-perl_1.03-1_all.deb) ...
Selecting previously unselected package libxml-parser-perl.
Unpacking libxml-parser-perl (from .../libxml-parser-perl_2.41-1+b1_amd64.deb) ...
Selecting previously unselected package libsoap-lite-perl.
Unpacking libsoap-lite-perl (from .../libsoap-lite-perl_0.714-1_all.deb) ...
Selecting previously unselected package libsys-syslog-perl.
Unpacking libsys-syslog-perl (from .../libsys-syslog-perl_0.29-1+b2_amd64.deb) ...
Selecting previously unselected package libgd-gd2-perl.
Unpacking libgd-gd2-perl (from .../libgd-gd2-perl_1%3a2.46-3+b1_amd64.deb) ...
Selecting previously unselected package libgd-text-perl.
Unpacking libgd-text-perl (from .../libgd-text-perl_0.86-8_all.deb) ...
Selecting previously unselected package libgd-graph-perl.
Unpacking libgd-graph-perl (from .../libgd-graph-perl_1.44-6_all.deb) ...
Setting up libperl5.14 (5.14.2-21+deb7u1) ...
Setting up libavdevice54:amd64 (7:1.2.2-netgear1) ...
Setting up libavfilter3:amd64 (7:1.2.2-netgear1) ...
Setting up libxau6:amd64 (1:1.0.7-1) ...
Setting up libxdmcp6:amd64 (1:1.1.1-1) ...
Setting up libxcb1:amd64 (1.8.1-2+deb7u1) ...
Setting up libx11-data (2:1.5.0-1+deb7u1) ...
Setting up libx11-6:amd64 (2:1.5.0-1+deb7u1) ...
Setting up libxpm4:amd64 (1:3.5.10-1) ...
Setting up libgd2-xpm:amd64 (2.0.36~rc1~dfsg-6.1) ...
Setting up mysql-common (5.5.31+dfsg-0+wheezy1) ...
Setting up libmysqlclient18:amd64 (5.5.31+dfsg-0+wheezy1) ...
Setting up libclass-isa-perl (0.36-3) ...
Setting up ca-certificates (20130119) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Setting up ffmpeg (7:1.2.2-netgear1) ...
Setting up shared-mime-info (1.0-1+b1) ...
Setting up libossp-uuid16 (1.6.2-1.3) ...
Setting up libswitch-perl (2.16-2) ...
Setting up perl-modules (5.14.2-21+deb7u1) ...
Setting up perl (5.14.2-21+deb7u1) ...
update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode
Setting up libaudio-flac-header-perl (2.4-1+b2) ...
Setting up libaudio-wav-perl (0.13-1) ...
Setting up libaudio-wma-perl (1.3-1) ...
Setting up libclass-inspector-perl (1.27-1) ...
Setting up libclass-methodmaker-perl (2.18-1+b1) ...
Setting up libconfig-apacheformat-perl (1.2-4) ...
Setting up libconvert-binhex-perl (1.119+pristine-3) ...
Setting up libcrypt-ssleay-perl (0.58-1) ...
Setting up libparams-util-perl (1.07-1) ...
Setting up libsub-install-perl (0.926-1) ...
Setting up libdata-optlist-perl (0.107-1) ...
Setting up libnet-daemon-perl (0.48-1) ...
Setting up libplrpc-perl (0.2020-2) ...
Setting up libdbi-perl (1.622-1) ...
Setting up libdbd-mysql-perl (4.021-1+b1) ...
Setting up libdbd-sqlite3-perl (1.37-1) ...
Setting up libdigest-sha-perl (5.71-2+deb7u1) ...
Setting up libencode-locale-perl (1.03-1) ...
Setting up libfcgi-perl (0.74-1+b1) ...
Setting up libfile-basedir-perl (0.03-1) ...
Setting up libfile-desktopentry-perl (0.04-3) ...
Setting up libtimedate-perl (1.2000-1) ...
Setting up libhttp-date-perl (6.02-1) ...
Setting up libfile-listing-perl (6.04-1) ...
Setting up libfile-mimeinfo-perl (0.16-1) ...
Setting up libio-stringy-perl (2.110-5) ...
Setting up libparams-classify-perl (0.013-4) ...
Setting up libmodule-runtime-perl (0.013-1) ...
Setting up libtry-tiny-perl (0.11-1) ...
Setting up libmodule-implementation-perl (0.06-1) ...
Setting up libparams-validate-perl (1.06-1) ...
Setting up libsub-exporter-perl (0.984-1) ...
Setting up libgetopt-long-descriptive-perl (0.091-1) ...
Setting up liburi-perl (1.60-1) ...
Setting up libhtml-tagset-perl (3.20-2) ...
Setting up libhtml-parser-perl (3.69-2) ...
Setting up libhtml-tree-perl (5.02-1) ...
Setting up liblwp-mediatypes-perl (6.02-1) ...
Setting up libhttp-message-perl (6.03-1) ...
Setting up libhttp-cookies-perl (6.00-2) ...
Setting up libhttp-daemon-perl (6.01-1) ...
Setting up libhttp-negotiate-perl (6.00-2) ...
Setting up libio-string-perl (1.08-2) ...
Setting up libimage-base-bundle-perl (1.0.7-3) ...
Setting up libxml-namespacesupport-perl (1.09-3) ...
Setting up libxml-sax-base-perl (1.07-1) ...
Setting up libxml-sax-perl (0.99+dfsg-2) ...
update-perl-sax-parsers: Registering Perl SAX parser XML::SAX::PurePerl with priority 10...
update-perl-sax-parsers: Updating overall Perl SAX parser modules info file...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline

Creating config file /etc/perl/XML/SAX/ParserDetails.ini with new version
Setting up libxml-libxml-perl (2.0001+dfsg-1) ...
update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX::Parser with priority 50...
update-perl-sax-parsers: Registering Perl SAX parser XML::LibXML::SAX with priority 50...
update-perl-sax-parsers: Updating overall Perl SAX parser modules info file...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Replacing config file /etc/perl/XML/SAX/ParserDetails.ini with new version
Setting up libxml-simple-perl (2.20-1) ...
Setting up libimage-info-perl (1.28-1) ...
Setting up libio-interface-perl (1.06-1+b1) ...
Setting up libio-socket-multicast-perl (1.12-1+b2) ...
Setting up libnet-ssleay-perl (1.48-1+b1) ...
Setting up libio-socket-ssl-perl (1.76-2) ...
Setting up libnet-http-perl (6.03-2) ...
Setting up libwww-robotrules-perl (6.01-1) ...
Setting up liblwp-protocol-https-perl (6.03-1) ...
Setting up libmailtools-perl (2.09-1) ...
Setting up libmime-tools-perl (5.503-1) ...
Setting up libunicode-string-perl (2.09-5) ...
Setting up libmp3-info-perl (1.24-1) ...
Setting up libmp4-info-perl (1.13-1) ...
Setting up libnet-ip-perl (1.25-3) ...
Setting up libnet-netmask-perl (1.9016-1) ...
Setting up libogg-vorbis-header-pureperl-perl (1.0-3) ...
Setting up libossp-uuid-perl (1.6.2-1.3) ...
Setting up libproc-processtable-perl (0.45-6) ...
Setting up libtask-weaken-perl (1.03-1) ...
Setting up libsys-syslog-perl (0.29-1+b2) ...
Setting up libgd-gd2-perl (1:2.46-3+b1) ...
Setting up libgd-text-perl (0.86-8) ...
Setting up libgd-graph-perl (1.44-6) ...
Setting up libwww-perl (6.04-1) ...
Setting up libxml-parser-perl (2.41-1+b1) ...
Setting up libsoap-lite-perl (0.714-1) ...
Processing triggers for ca-certificates ...
Updating certificates in /etc/ssl/certs... 158 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
pDLNA Paket laden, umbenennen und entpacken
root@ReadyNAS:~# cd /tmp/
root@ReadyNAS:/tmp# wget \
> http://www.pdlna.org/cgi-bin/index.pl?menu=download&type=release&version=latest
--2013-12-23 15:19:59--  http://www.pdlna.org/cgi-bin/index.pl?menu=download
Resolving www.pdlna.org (www.pdlna.org)... 84.38.65.216
Connecting to www.pdlna.org (www.pdlna.org)|84.38.65.216|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.pl?menu=download'
2013-12-23 15:20:00 (4.15 MB/s) - `index.pl?menu=download' saved [2753]
[1]-  Done                    wget http://www.pdlna.org/cgi-bin/index.pl?menu=download
[2]+  Done                    type=release

root@ReadyNAS:/tmp# ll
-rw-r--r-- 1 root root 2753 Dec 23 15:20 index.pl?menu=download

root@ReadyNAS:/tmp# mv "index.pl\?menu\=download" "pDLNA-$pDLNAversion.tgz" 

root@ReadyNAS:/tmp# ll
-rw-r--r-- 1 root root 139355 Dec 23 15:22 pDLNA-.tgz

root@ReadyNAS:/tmp# tar xzf pDLNA-.tgz 
root@ReadyNAS:/tmp# ll
drwx------ 1 1000 1000    196 Dec  9 18:40 pDLNA
-rw-r--r-- 1 root root 139355 Dec 23 15:22 pDLNA-.tgz
root@ReadyNAS:/tmp# cd pDLNA
root@ReadyNAS:/tmp/pDLNA# ll
-rwx------ 1 1000 1000 18527 Dec  9 18:22 CHANGELOG
drwx------ 1 1000 1000    34 Apr  5  2013 external_programs
-rwx------ 1 1000 1000  1178 Nov 25 09:33 INSTALL
-rwx------ 1 1000 1000  6278 Jul 21 14:24 install.pl
-rwx------ 1 1000 1000 35147 Apr  5  2013 LICENSE
drwx------ 1 1000 1000   476 Dec  9 18:40 PDLNA
-rwx------ 1 1000 1000 10801 Nov 25 09:34 pdlna.conf
-rwx------ 1 1000 1000  3088 Jul  6 13:14 pDLNA.pl
-rwx------ 1 1000 1000  2180 Apr  5  2013 rc.pDLNA
-rwx------ 1 1000 1000   845 Nov 25 09:34 README
-rwx------ 1 1000 1000  1403 Aug 16 08:13 TODO
-rwx------ 1 1000 1000    21 Dec  9 18:40 VERSION
Install-Test 1

File/Copy/Recursive.pm ist nicht vorhanden! :-(

root@ReadyNAS:/tmp/pDLNA# perl install.pl -c
Can't locate File/Copy/Recursive.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at install.pl line 115.
BEGIN failed--compilation aborted at install.pl line 115.
Nachinstallation von libfile-copy-recursive-perl
root@ReadyNAS:/tmp/pDLNA# apt-get install libfile-copy-recursive-perl

Reading package lists... 0%
Reading package lists... Done

Building dependency tree... 0%
Building dependency tree       

Reading state information... 0%
Reading state information... Done

The following NEW packages will be installed:
  libfile-copy-recursive-perl
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 20.6 kB of archives.
After this operation, 90.1 kB of additional disk space will be used.

Get:1 http://mirrors.kernel.org/debian/ wheezy/main libfile-copy-recursive-perl all 0.38-1 [20.6 kB]
              
Fetched 20.6 kB in 0s (27.2 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libfile-copy-recursive-perl.
(Reading database ... 
(Reading database ... 100%
(Reading database ... 17498 files and directories currently installed.)
Unpacking libfile-copy-recursive-perl (from .../libfile-copy-recursive-perl_0.38-1_all.deb) ...
Setting up libfile-copy-recursive-perl (0.38-1) ...
Install-Test 2

Bis auf ein paar Subroutine redefined und Prototype mismatch scheint alles i.O. :-)

root@ReadyNAS:/tmp/pDLNA# perl install.pl -c
------------------------------------------------------
Step 1:
Testing for necessary Perl Modules ...
------------------------------------------------------
ok 1 - use Audio::FLAC::Header;
ok 2 - use Audio::Wav;
ok 3 - use Audio::WMA;
ok 4 - use Config;
ok 5 - use Config::ApacheFormat;
ok 6 - use Data::Dumper;
ok 7 - use Date::Format;
ok 8 - use DBD::mysql;
ok 9 - use DBD::SQLite;
ok 10 - use DBI;
ok 11 - use Digest::MD5;
ok 12 - use Digest::SHA;
ok 13 - use Fcntl;
ok 14 - use File::Basename;
ok 15 - use File::Glob;
ok 16 - use File::MimeInfo;
ok 17 - use GD;
ok 18 - use GD::Graph::area;
ok 19 - use Getopt::Long::Descriptive;
ok 20 - use Image::Info;
ok 21 - use IO::Interface::Simple;
ok 22 - use IO::Select;
ok 23 - use IO::Socket;
ok 24 - use IO::Socket::INET;
ok 25 - use IO::Socket::Multicast;
ok 26 - use LWP::UserAgent;
ok 27 - use MP3::Info;
ok 28 - use MP4::Info;
ok 29 - use Net::IP;
ok 30 - use Net::Netmask;
ok 31 - use Ogg::Vorbis::Header::PurePerl;
Subroutine main::ctime redefined at (eval 90) line 2
Prototype mismatch: sub main::ctime ($;$) vs none at (eval 90) line 2
Subroutine main::strftime redefined at (eval 90) line 2
Prototype mismatch: sub main::strftime ($\@;$) vs none at (eval 90) line 2
Subroutine main::asctime redefined at (eval 90) line 2
Prototype mismatch: sub main::asctime (\@;$) vs none at (eval 90) line 2
ok 32 - use POSIX;
ok 33 - use Proc::ProcessTable;
ok 34 - use SOAP::Lite;
ok 35 - use Socket;
ok 36 - use Sys::Hostname;
ok 37 - use Sys::Syslog;
ok 38 - use threads;
ok 39 - use threads::shared;
ok 40 - use Time::HiRes;
ok 41 - use URI::Split;
ok 42 - use XML::Simple;
1..42
... und Installation

Bis auf ein paar Subroutine redefined und Prototype mismatch scheint alles i.O. :-)

root@ReadyNAS:/tmp/pDLNA# perl install.pl -i
------------------------------------------------------
Step 1:
Testing for necessary Perl Modules ...
------------------------------------------------------
ok 1 - use Audio::FLAC::Header;
ok 2 - use Audio::Wav;
ok 3 - use Audio::WMA;
ok 4 - use Config;
ok 5 - use Config::ApacheFormat;
ok 6 - use Data::Dumper;
ok 7 - use Date::Format;
ok 8 - use DBD::mysql;
ok 9 - use DBD::SQLite;
ok 10 - use DBI;
ok 11 - use Digest::MD5;
ok 12 - use Digest::SHA;
ok 13 - use Fcntl;
ok 14 - use File::Basename;
ok 15 - use File::Glob;
ok 16 - use File::MimeInfo;
ok 17 - use GD;
ok 18 - use GD::Graph::area;
ok 19 - use Getopt::Long::Descriptive;
ok 20 - use Image::Info;
ok 21 - use IO::Interface::Simple;
ok 22 - use IO::Select;
ok 23 - use IO::Socket;
ok 24 - use IO::Socket::INET;
ok 25 - use IO::Socket::Multicast;
ok 26 - use LWP::UserAgent;
ok 27 - use MP3::Info;
ok 28 - use MP4::Info;
ok 29 - use Net::IP;
ok 30 - use Net::Netmask;
ok 31 - use Ogg::Vorbis::Header::PurePerl;
Subroutine main::ctime redefined at (eval 90) line 2
Prototype mismatch: sub main::ctime ($;$) vs none at (eval 90) line 2
Subroutine main::strftime redefined at (eval 90) line 2
Prototype mismatch: sub main::strftime ($\@;$) vs none at (eval 90) line 2
Subroutine main::asctime redefined at (eval 90) line 2
Prototype mismatch: sub main::asctime (\@;$) vs none at (eval 90) line 2
ok 32 - use POSIX;
ok 33 - use Proc::ProcessTable;
ok 34 - use SOAP::Lite;
ok 35 - use Socket;
ok 36 - use Sys::Hostname;
ok 37 - use Sys::Syslog;
ok 38 - use threads;
ok 39 - use threads::shared;
ok 40 - use Time::HiRes;
ok 41 - use URI::Split;
ok 42 - use XML::Simple;
------------------------------------------------------
Step 2:
Testing for necessary Perl Modules for installation ...
------------------------------------------------------
ok 43 - use File::Copy;
ok 44 - use File::Copy::Recursive;
------------------------------------------------------
Step 3:
Installing files ...
------------------------------------------------------
ok 45 - Installed './pDLNA.pl' to '/opt/pDLNA/pDLNA.pl'.
ok 46 - Set rights for '/opt/pDLNA/pDLNA.pl'.
ok 47 - Installed './pdlna.conf' to '/etc/pdlna.conf'.
ok 48 - Set rights for '/etc/pdlna.conf'.
ok 49 - Installed './rc.pDLNA' to '/etc/init.d/rc.pDLNA'.
ok 50 - Set rights for '/etc/init.d/rc.pDLNA'.
ok 51 - Installed './PDLNA' to '/opt/pDLNA/PDLNA'.
ok 52 - Set rights for '/opt/pDLNA/PDLNA'.
ok 53 - Installed './external_programs' to '/opt/pDLNA/external_programs'.
ok 54 - Set rights for '/opt/pDLNA/external_programs'.
ok 55 - Installed './VERSION' to '/opt/pDLNA/VERSION'.
ok 56 - Set rights for '/opt/pDLNA/VERSION'.
ok 57 - Installed './README' to '/opt/pDLNA/README'.
ok 58 - Set rights for '/opt/pDLNA/README'.
ok 59 - Installed './LICENSE' to '/opt/pDLNA/LICENSE'.
ok 60 - Set rights for '/opt/pDLNA/LICENSE'.
------------------------------------------------------
Step 4:
Setting of relevant paths ...
------------------------------------------------------
ok 61 - Changed path for binary in '/etc/init.d/rc.pDLNA'.
ok 62 - Changed path for lib in '/opt/pDLNA/pDLNA.pl'.
------------------------------------------------------
Step 5:
Checking for pDLNA Perl Modules ...
------------------------------------------------------
ok 63 - use PDLNA::Config;
ok 64 - use PDLNA::ContentLibrary;
ok 65 - use PDLNA::Daemon;
ok 66 - use PDLNA::Database;
ok 67 - use PDLNA::Devices;
ok 68 - use PDLNA::FFmpeg;
ok 69 - use PDLNA::HTTPServer;
ok 70 - use PDLNA::HTTPXML;
ok 71 - use PDLNA::Log;
ok 72 - use PDLNA::Media;
ok 73 - use PDLNA::SOAPClient;
ok 74 - use PDLNA::SOAPMessages;
ok 75 - use PDLNA::SpecificViews;
ok 76 - use PDLNA::SSDP;
ok 77 - use PDLNA::Statistics;
ok 78 - use PDLNA::Status;
ok 79 - use PDLNA::Utils;
ok 80 - use PDLNA::WebUI;
1..80
Test-Lauf 1
root@ReadyNAS:/tmp/pDLNA# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
A disabled LowResourceMode requires a valid FFmpeg installation.
Invalid FFmpeg Binary: Unable to detect FFmpeg installation.
Invalid Directory '/media/video/': Not a directory.
Invalid Directory '/media/music/': Not a directory.
Invalid Directory '/media/images/': Not a directory.
Invalid Directory '/media/misc/': Not a directory.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
Konfiguration anpassen

Verzeichnisse in der Konfiguration gem. Anleitung an meine Verhältnisse angepasst.

Test-Lauf 2
root@ReadyNAS:/Main-Raid-5# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
A disabled LowResourceMode requires a valid FFmpeg installation.
Invalid FFmpeg Binary: Unable to detect FFmpeg installation.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
FFmpeg testen

FFmpeg ist installiert. (Auch die exlizite Konfiguration des Binary mit vollem Pfad bringt keine Abhilfe.)

root@ReadyNAS:/tmp/pDLNA# ffmpeg
ffmpeg version 1.2.2 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul 29 2013 12:20:10 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc=cc --libdir=/usr/lib/x86_64-linux-gnu --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-stripping --enable-small --disable-amd3dnow --disable-bsfs --disable-devices --disable-protocols --enable-protocol=file --disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=dvbsub --enable-parser=dvdsub --enable-parser=flac --enable-parser=h261 --enable-parser=h263 --enable-parser=h264 --enable-parser=mjpeg --enable-parser=mlp --enable-parser=mpeg4video --enable-parser=mpegaudio --enable-parser=mpegvideo --enable-parser=vc1 --enable-parser=vorbis --enable-parser=vp3 --enable-parser=vp8 --disable-demuxers --enable-demuxer=aac --enable-demuxer=ac3 --enable-demuxer=asf --enable-demuxer=avi --enable-demuxer=dts --enable-demuxer=dv --enable-demuxer=eac3 --enable-demuxer=flac --enable-demuxer=h261 --enable-demuxer=h263 --enable-  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
Codeanalyse 1
PDLNA/Config.pm
	#
	# FFmpegBinaryPath
	#
	$CONFIG{'FFMPEG_BIN'} = $cfg->get('FFmpegBinaryPath') if defined($cfg->get('FFmpegBinaryPath'));
	my $ffmpeg_error_message = undef;
	if (-x $CONFIG{'FFMPEG_BIN'})
	{
		unless (PDLNA::FFmpeg::get_ffmpeg_codecs($CONFIG{'FFMPEG_BIN'}, \$CONFIG{'FFMPEG_VERSION'}, $CONFIG{'AUDIO_CODECS_DECODE'}, $CONFIG{'AUDIO_CODECS_ENCODE'}, $CONFIG{'VIDEO_CODECS_DECODE'}, $CONFIG{'VIDEO_CODECS_ENCODE'}))
		{
			$ffmpeg_error_message = 'Invalid FFmpeg Binary: Unable to detect FFmpeg installation.';
		}
		unless (PDLNA::FFmpeg::get_ffmpeg_formats($CONFIG{'FFMPEG_BIN'}, $CONFIG{'FORMATS_DECODE'}, $CONFIG{'FORMATS_ENCODE'}))
		{
			$ffmpeg_error_message = 'Invalid FFmpeg Binary: Unable to detect FFmpeg installation.';
		}
	}
	else
	{
		$ffmpeg_error_message = 'Invalid path for FFmpeg Binary: Please specify the correct path or install FFmpeg.';
	}
 
	# a disabled LOW_RESOURCE_MODE requires FFmpeg
	if (defined($ffmpeg_error_message) && $CONFIG{'LOW_RESOURCE_MODE'} == 0)
	{
		push(@{$errormsg}, 'A disabled LowResourceMode requires a valid FFmpeg installation.');
		push(@{$errormsg}, $ffmpeg_error_message);
	} 

Nach einer Erweiterung der Fehlermeldungen zeigt sich, dass die Formatprüfung fehlschlägt:

PDLNA/Config.pm
		unless (PDLNA::FFmpeg::get_ffmpeg_codecs($CONFIG{'FFMPEG_BIN'}, \$CONFIG{'FFMPEG_VERSION'}, $CONFIG{'AUDIO_CODECS_DECODE'}, $CONFIG{'AUDIO_CODECS_ENCODE'}, $CONFIG{'VIDEO_CODECS_DECODE'}, $CONFIG{'VIDEO_CODECS_ENCODE'}))
		{
			$ffmpeg_error_message = 'Invalid FFmpeg Binary (A): Unable to detect FFmpeg installation.';
		}
		unless (PDLNA::FFmpeg::get_ffmpeg_formats($CONFIG{'FFMPEG_BIN'}, $CONFIG{'FORMATS_DECODE'}, $CONFIG{'FORMATS_ENCODE'}))
		{
			$ffmpeg_error_message = 'Invalid FFmpeg Binary (B): Unable to detect FFmpeg installation.';
		}
root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
A disabled LowResourceMode requires a valid FFmpeg installation.
Invalid FFmpeg Binary (B): Unable to detect FFmpeg installation.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
Codeanalyse 2

Mit kleiner Anpassung…

PDLNA/ffmpeg.pm
sub get_ffmpeg_formats
{
	my $ffmpeg_bin = shift;
	my $decode = shift;
	my $encode = shift;
 
	open(CMD, $CONFIG{'FFMPEG_BIN'}.' -formats 2>&1 |');
	my @output = <CMD>;
	close(CMD);
 
	unless ($output[0] =~ /^ffmpeg\s+version\s+(.+),\scopyright/i)
	{
		print "get_ffmpeg_formats: return 0\n";
		return 0;
	}
 
	foreach my $line (@output)
	{
		if ($line =~ /\s+([DE\s]{2})\s([a-z0-9\_]+)\s+/)
		{
			my $support = $1;
			my $codec = $2;
 
			next if !defined($support);
			next if !defined($codec);
 
			if (substr($support, 0, 1) eq 'D')
			{
				push(@{$decode}, $codec);
			}
			if (substr($support, 1, 1) eq 'E')
			{
				push(@{$encode}, $codec);
			}
		}
	}
 
	return 1;
}

… kommen wir der Sache näher:

root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
get_ffmpeg_formats: return 0
A disabled LowResourceMode requires a valid FFmpeg installation.
Invalid FFmpeg Binary (B): Unable to detect FFmpeg installation.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...

Der Reguläre Ausdruck

/^ffmpeg\s+version\s+(.+),\scopyright/i

passt nicht bzw. liefert nicht das gewünschte Ergebnis. Die erste Zeile des Outputs ist:

ffmpeg version 1.2.2 Copyright (c) 2000-2013 the FFmpeg developers

→ Das „,“ ist zu viel!
Nach dem Löschen des „,“ gibt es anscheinend das gleiche Problem bei „get_ffmpeg_codecs“.

root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
A disabled LowResourceMode requires a valid FFmpeg installation.
Invalid FFmpeg Binary (A): Unable to detect FFmpeg installation.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
Codeanalyse 3
PDLNA/ffmpeg.pm
sub get_ffmpeg_codecs
{
	my $ffmpeg_bin = shift;
	my $ffmpeg_ver = shift;
	my $audio_decode = shift;
	my $audio_encode = shift;
	my $video_decode = shift;
	my $video_encode = shift;
 
	my $exitcode = system($CONFIG{'FFMPEG_BIN'}.' -codecs > /dev/null 2>&1'); # FIX ME for WINDOWS
	if (defined($exitcode) && $exitcode == 0)
	{
		open(CMD, $CONFIG{'FFMPEG_BIN'}.' -codecs 2>&1 |');
	}
	else
	{
		open(CMD, $CONFIG{'FFMPEG_BIN'}.' -formats 2>&1 |');
	}
	my @output = <CMD>;
	close(CMD);
 
	if ($output[0] =~ /^ffmpeg\s+version\s+(.+),\scopyright/i)
	{
		$$ffmpeg_ver = $1;
	}
	else
	{
		return 0;
	}
 
	foreach my $line (@output)
	{
		if ($line =~ /\s+([A-Z\s]{6})\s([a-z0-9\_]+)\s+/)
		{
			my $support = $1;
			my $codec = $2;
 
			next if !defined($support);
			next if !defined($codec);
 
			if (substr($support, 2, 1) eq 'A') # audio codecs
			{
				# $codec = PDLNA::Media::audio_codec_by_beautiful_name($codec);
				# next unless defined($codec);
 
				if (substr($support, 0, 1) eq 'D')
				{
					push(@{$audio_decode}, $codec);
				}
				if (substr($support, 1, 1) eq 'E')
				{
					push(@{$audio_encode}, $codec);
				}
			}
			elsif (substr($support, 2, 1) eq 'V') # video codecs
			{
				# TODO transcoding profiles for videos
			}
		}
	}
 
	return 1;
}

Nach dem Löschen des „,“ ist diese Thema durch. :-)

root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
2013-12-26 18:25:25 default(0): Starting pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' with UUID uuid:b4e17da2-9019-d294-8eec-4cd636e69f12.
2013-12-26 18:25:29 default(0): Starting HTTP Server listening on 10.0.0.110:8001.
Cannot bind to Multicast socket: Address already in use
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...

Allerdings laufen die Dienste ReadyDLNA und UPnP des ReadyNAS noch…
… was pDLNA mit „Cannot bind to Multicast socket: Address already in use“ quitiert.

Dienste abschalten und Reboot

Die Dienst müssen auf dem ReadyNAS abgeschaltet werden. Dazu muss gem. Anleitung auf der Web-Oberfläche unter System » Einstellungen » Dienste » ReadyDLNA bzw. UPnP abgeschaltet werden. Der „Multicast Socket“ wird dadurch aber scheinbar noch nicht freigegeben. Nach einem Reboot und dem Löschen der Datei „/var/run/pdlna.pid“ (pDLNA scheint hier nicht richt aufzuräumen - Bug oder Feature?) läuft der pDLNA-Server - bis auf die Datenbank…

root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
Warning PIDFile: The file named /var/run/pdlna.pid is already existing. Please change the filename or delete the file.
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
root@ReadyNAS:~# rm /var/run/pdlna.pid
root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
2013-12-26 18:38:13 default(0): Starting pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' with UUID uuid:b9f5ee0c-aa27-3f2e-e6e3-1c8650011a16.
2013-12-26 18:38:13 default(0): Starting HTTP Server listening on 10.0.0.110:8001.
Cannot bind to Multicast socket: Address already in use
Going to terminate pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' ...
root@ReadyNAS:~# rm /var/run/pdlna.pid
root@ReadyNAS:~# shutdown -r now

root@ReadyNAS:~# login as: **********
**********@ReadyNAS's password: 

Welcome to ReadyNASOS 6.1.4

root@ReadyNAS:~# /etc/init.d/rc.pDLNA start
Starting pDLNA ...
2013-12-26 18:51:01 default(0): Starting pDLNA/v0.64.2 on linux/3.2.0-4-amd64 with FriendlyName 'pDLNA v0.64.2 on ReadyNAS' with UUID uuid:e7974f98-ef2d-ef52-4e90-0b69d421e289.
2013-12-26 18:51:04 default(0): Starting HTTP Server listening on 10.0.0.110:8001.
2013-12-26 18:51:18 database(0): ERROR: Cannot execute database query: database is locked
2013-12-26 18:51:18 database(0): ERROR: Cannot execute database query: database is locked
2013-12-26 18:51:18 database(0): ERROR: Cannot execute database query: database is locked
...
Datenbank

Die Datenbank schien zu laufen und nur gelegentlich ein Zugriffsproblem zu haben (bei nur einem Thread?), bis sie beim Import ausstieg…

2013-12-26 18:58:38 database(0): ERROR: Cannot execute database query: database is locked
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::SQLite::db handle dbname=/tmp/pdlna.db at ./pDLNA.pl line 63.
Thread 1 terminated abnormally: Unmatched ) in regex; marked by <-- HERE in m/^Crosby, Stills, Nash & Young - Déjà vu - 09 - Country Girl - a) <-- HERE  Whisky Boot Hill  b) Down, Down, Down  c) ''Country Girl'' (I Think You're Pretty).flac$/ at PDLNA/ContentLibrary.pm line 268.

Analyse folgt…
… Klammer zu „)“ im Dateinamen!?!

Crosby, Stills, Nash & Young - Déjà vu - 09 - Country Girl - a) Whisky Boot Hill  b) Down, Down, Down  c) ''Country Girl'' (I Think You're Pretty).flac
Web-Server

Kein Zugriff mit Firefox (v26.0) oder Internet Explorer (v11.0.9600.16476) möglich:

  • leere Seite (Firefox)
  • ERROR: HTTP 501/HTTP 505 (IE)
2013-12-26 19:09:14 httpstream(0): ERROR: Unable to parse HTTP request from 10.0.0.43:57858.
2013-12-26 19:12:35 httpstream(0): ERROR: Unable to parse HTTP request from 10.0.0.43:57916.
2013-12-26 19:29:57 httpdir(0): ERROR: Unable to find (a known) ObjectID in XML (POSTDATA).

Analyse folgt…

Zugriff per DLNA

Der Server wird auf meinem Yamaha RX-V3067 gefunden. Er zeigt aber „[no content]“ an und läßt sich dann nicht mehr davon überzeugen meinen anderen DLNA-Server anzusteuern…

 
projekte/pdlna-portierung.txt · Zuletzt geändert: 23.02.2014, 17:52 von 127.0.0.1
 
Impressum Datenschutz Copyright Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki