diff options
author | H.Merijn Brand <perl5@tux.freedom.nl> | 2022-07-13 17:26:18 +0200 |
---|---|---|
committer | H.Merijn Brand <perl5@tux.freedom.nl> | 2022-07-13 17:26:18 +0200 |
commit | 40ab0c0f56ab609fd757c74a7010cca98d59f259 (patch) | |
tree | f4dcd3ffb5ea50e06b6d51613f59a341207ff56e /README.synology | |
parent | 8befffe0b872bbd510b148859d80238752eba14e (diff) | |
download | perl-40ab0c0f56ab609fd757c74a7010cca98d59f259.tar.gz |
Updates for Synology DSM
Diffstat (limited to 'README.synology')
-rw-r--r-- | README.synology | 131 |
1 files changed, 101 insertions, 30 deletions
diff --git a/README.synology b/README.synology index f2dd7571df..661866210f 100644 --- a/README.synology +++ b/README.synology @@ -23,20 +23,98 @@ L<Synology FAQ|https://kb.synology.com/en-global/DSM/tutorial/What_kind_of_CPU_d Since it is based on Linux, the NAS can run many popular Linux software packages, including Perl. In fact, Synology provides a ready-to-install package for Perl, depending on the version of DSM -the installed perl ranges from 5.8.6 on DSM-4.3 to 5.24.0 on DSM-6.1. +the installed perl ranges from 5.8.6 on DSM-4.3 to 5.28.1 on DSM-7.1. There is an active user community that provides many software packages for the Synology DSM systems; at the time of writing this document -they provide Perl version 5.24.1. +they provide Perl version 5.28.1. This document describes various features of Synology DSM operating system that will affect how Perl 5 (hereafter just Perl) is configured, compiled and/or runs. It has been compiled and verified by Johan Vromans for the Synology DS413 (QorIQ), with feedback from -H.Merijn Brand (DS213, ARMv5tel and RS815, Intel Atom x64). +H.Merijn Brand (DS213: ARMv5tel, RS815: Intel Atom x64, and DS218+: +Celeron J3355). =head2 Setting up the build environment +=head3 DSM 7 + +For a comfortable development environment, Entware is currently the only +viable solution. Just follow the detailed instructions on +L<Install Entware on Synology NAS|https://github.com/Entware/Entware/wiki/Install-on-Synology-NAS>. +supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64. +Check L<here|https://pkg.entware.net/binaries/> for supported platforms. + +That github link also shows what environments should be supported. + +It was tested on DSM-7.1 by H.Merijn Brand on a DS218+ and a DS220+ (both +Intel x64). + +Entware comes with a precompiled 5.26.1 (Jan 2018) that allowes +building shared XS code. Note that this installation does B<not> use +a site_perl folder. The available C<cpan> works. If all required +development packages are installed too, also for XS. + +Installing perl from the Community package center: + +=over 4 + +=item * + +Using your favourite browser open the DSM management page and start +the Package Center. + +=item * + +In Settings, add the following Package Sources: + + Name: Community + Location: https://synopackage.com/repository/spk/All + +=item * + +Still in Settings, in Channel Update, select Beta Channel. + +=back + +To complete the development environment, install make and gcc + + ds220# opkg install make gcc + +Then, optionally, make sure you use the more recent bash and gawk. + + ds220# opkg install bash gawk + ds220# cd /usr/bin + ds220# mv bash bash.syno + ds220# ln -s /opt/bin/bash . + +In order to have Configure find the required libraries + + ds220# cd /opt/lib + ds220# ln -s libcrypt.so.? libcrypt.so + ds220# ln -s libdl.so.? libdl.so + ds220# ln -s libgdbm.so.? libgdbm.so + ds220# ln -s libgdbm_compat.so.? libgdbm_compat.so + ds220# ln -s libm.so.? libm.so + ds220# ln -s libpthread.so.? libpthread.so + ds220# ln -s libutil.so.? libutil.so + +=head3 DSM 6 + +Using iPkg has been deprecated on DSM 6, but an alternative is available +for DSM 6: entware/opkg. For instructions on how to use that, please read +L<Install Entware-ng on Synology NAS|https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS> + +That sadly does not (yet) work on QorIQ. At the moment of writing, the +supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64. +Check L<here|https://pkg.entware.net/binaries/> for supported platforms. + +Entware-ng comes with a precompiled 5.24.1 (June 2017) that allowes +building shared XS code. Note that this installation does B<not> use +a site_perl folder. The available C<cpan> works. If all required +development packages are installed too, also for XS. + =head3 DSM 5 As DSM is a trimmed-down Linux system, it lacks many of the tools and @@ -62,6 +140,9 @@ In Settings, add the following Package Sources: https://www.cphub.net http://packages.quadrat4.de +As these two are both discontinued, it is unlikely you will be able +to set up a build environment on DSM 5. + =item * Still in Settings, in Channel Update, select Beta Channel. @@ -131,21 +212,6 @@ Execute the following commands: B<WARNING:> When you perform a system software upgrade, these links will disappear and need to be re-established. -=head3 DSM 6 - -Using iPkg has been deprecated on DSM 6, but an alternative is available -for DSM 6: entware/opkg. For instructions on how to use that, please read -L<Install Entware-ng on Synology NAS|https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS> - -That sadly does not (yet) work on QorIQ. At the moment of writing, the -supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64. -Check L<here|https://pkg.entware.net/binaries/> for supported platforms. - -Entware-ng comes with a precompiled 5.24.1 (June 2017) that allowes -building shared XS code. Note that this installation does B<not> use -a site_perl folder. The available C<cpan> works. If all required -development packages are installed too, also for XS. - =head2 Compiling Perl 5 When the build environment has been set up, building and testing Perl @@ -158,16 +224,18 @@ sources as usual, and add a file Policy.sh as follows: # Install Perl in a tree in /opt/perl instead of /opt/bin. prefix=/opt/perl - # Select the compiler. Note that there is no 'cc' alias or link. + # Select the compiler. Note that there is no 'cc' alias or link + # on older DSM versions cc=gcc + awk=/opt/bin/gawk - # Build flags. + # Build flags. Optional ccflags="-DDEBUGGING" # Library and include paths. - libpth="/lib" locincpth="/opt/include" - loclibpth="/lib" + loclibpth="/opt/lib /usr/local/lib /usr/lib" + libpth="/opt/lib /usr/local/lib /usr/lib" You may want to create the destination directory and give it the right permissions before installing, thus eliminating the need to build Perl @@ -176,16 +244,19 @@ as a super user. In the directory where you unpacked the sources, issue the familiar commands: - ./Configure -des - make - make test - make install + $ bash ./Configure -Dusedevel -Duseshrplib -Duse64bitall -des + $ make -j2 + $ env TEST_JOBS=2 make test_harness + $ make install =head2 Known problems =head3 Configure -No known problems yet +The GNU C-compiler might spit out unexpected stuff under -v, which +causes the analysis of cppsymbols to fail because of unmatched quotes. + +You'll note if config.sh fails with a syntax error. =head3 Build @@ -216,7 +287,7 @@ some system components will start to fail. =back -=head2 Smoke testing Perl 5 +=head2 Smoke testing Perl If building completes successfully, you can set up smoke testing as described in the Test::Smoke documentation. @@ -267,11 +338,11 @@ the programs are run. =head1 REVISION -June 2017, for Synology DSM 5.1.5022 and DSM 6.1-15101-4. +July 2022, for DSM 5.1.5022 and DSM 6.1-15101-4, and DSM-7.1-42661-3. =head1 AUTHOR Johan Vromans <jvromans@squirrel.nl> -H. Merijn Brand <h.m.brand@xs4all.nl> +H. Merijn Brand <cpan@tux.freedom.nl> =cut |