Optware / Optware-ng

280 stars 52 forks source link

missing perl module forks #101

Closed GUHU0433 closed 8 years ago

GUHU0433 commented 8 years ago

Hello, for the home automation software fhem i use Optware-ng on ARM7, and with your aid I could start a couple of needed modules. However, one module uses threads and the perl implementation was compiled without the multithreading option. Thus, I think, the easiest way to use the module is to use the perl module forks, which is a drop-in replacement.

Do you think this is a good idea? Is it possible that you make a package with forks?

With kind regards

alllexx88 commented 8 years ago

Hi, I've enabled threads in perl: 885b9cdb9bbe1cee75850eb879140986f0b47f24. Feeds will be updated soon, version 5.20.1-5

Regards

P.S. I think this should eliminate the need in forks module

GUHU0433 commented 8 years ago

Yes! Thank you.

GUHU0433 commented 8 years ago

@alllexx88 , Thanks for upgrading perl. Unfortunately, I have now issues with perl modules. I upgraded all. Here is one issue:

Diskstation> perl -MHTML::Parser -e 1
Can't load '/opt/lib/perl5/site_perl/5.20.1/armv7l-linux/auto/HTML/Parser/Parser.so' for module HTML::Parser: /opt/lib/perl5/site_perl/5.20.1/armv7l-linux/auto/HTML/Parser/Parser.so: undefined symbol: PL_stack_sp at /opt/lib/perl5/5.20.1/XSLoader.pm line 68. at /opt/lib/perl5/site_perl/5.20.1/armv7l-linux/HTML/Parser.pm line 17. Compilation failed in require. BEGIN failed--compilation aborted.

alllexx88 commented 8 years ago

@GUHU0433 This means that perl modules have to be rebuilt. And since I was at it, I also decided bumped perl to 5.22.1. Please test whether it works

GUHU0433 commented 8 years ago

Thanks, i updated and upgraded all packages.

result after restart:

Bareword "Errno::EINVAL" not allowed while "strict subs" in use at /opt/lib/perl5/5.22.1/armv7l-linux/IO/Socket.pm line 135. Compilation failed in require at /usr/local/FHEM/bin/fhem.pl line 35. BEGIN failed--compilation aborted at /usr/local/FHEM/bin/fhem.pl line 35.

I have a couple of Perl modules which I do not have installed via ipkg. Could this be the reason?

alllexx88 commented 8 years ago

I have a couple of Perl modules which I do not have installed via ipkg. Could this be the reason?

No, this is unrelated. Looks similar to this https://rt.perl.org/Public/Bug/Display.html?id=125930 Can you please try the patch from that page?

First

chmod 644 /opt/lib/perl5/5.22.1/armv7l-linux/IO/Socket.pm

Then edit /opt/lib/perl5/5.22.1/armv7l-linux/IO/Socket.pm with any text editor you like to change line

($! == (($] < 5.019004) ? 10022 : Errno::EINVAL)))) to ($! == (($] < 5.019004) ? 10022 : &Errno::EINVAL))))

If it solves the issue, I'll apply it on build

alllexx88 commented 8 years ago

@GUHU0433 on second thought, I see that /opt/lib/perl5/5.22.1/armv7l-linux/Errno.pm is missing %err definition. It is OK for mipsel platform, but broken for armv7! Strange. Anyway, I'll try to port 5.20.1 fix I used for this very issue to 5.22.1. Stay tuned

alllexx88 commented 8 years ago

@GUHU0433 Errno.pm issue fixed: 11e84fe9efd043be852fa88086c56279bb0c09b3. %err isn't empty anymore, please test whether this solves your issue.

GUHU0433 commented 8 years ago

Great! Everything seems to be fine! Thank you very much!