From 40ab0c0f56ab609fd757c74a7010cca98d59f259 Mon Sep 17 00:00:00 2001 From: "H.Merijn Brand" Date: Wed, 13 Jul 2022 17:26:18 +0200 Subject: Updates for Synology DSM --- README.synology | 131 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 101 insertions(+), 30 deletions(-) (limited to 'README.synology') diff --git a/README.synology b/README.synology index f2dd7571df..661866210f 100644 --- a/README.synology +++ b/README.synology @@ -23,20 +23,98 @@ L. +supported architectures are armv5, armv7, mipsel, wl500g, x86_32, and x86_64. +Check L 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 use +a site_perl folder. The available C 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 + +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 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 use +a site_perl folder. The available C 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 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 - -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 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 use -a site_perl folder. The available C 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 -H. Merijn Brand +H. Merijn Brand =cut -- cgit v1.2.1