New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix build errors on more recent operating systems #65
Comments
Dear IPbus developers,
The same tricks worked for us on some Ubuntu 16.04 computers where we do only code development. I started investigating compilation on Debian 9 (stretch) some weeks ago because Debian 8 (jessie) will be out of security support next year.
For the second compilation, the openssl version shipped with Debian 9 (v1.1.0) is actually not properly detected or not compatible and erlang-crypto is deactivated at configure stage. I must confess of being a plain user of controlhub and not knowing anything about erlang, so I am not sure exactly how difficult it would be to upgrade erlang or erlang-crypto in IPbus. But we would be grateful if we could make the full IPbus compatible with this Debian version. Worst case maybe requesting a downgrade to openssl v1.0.2 is the solution, but we would like to avoid it if possible. If needed I can try applying patches locally and testing compilation/operation as we have a machine dedicated to this. Best regards PS: I can also make the compilation logs available if needed. |
@PALoizeau |
@PALoizeau @dreyling Thanks for your questions and comments. I have made some structural changes to the IPbus software makefiles over the past couple of months, partly in order to make sure that it's easy to build the software on non-RedHat-based operating systems. The easiest approach right now for recent non-RedHat-based operating systems such as debian and ubuntu is to install the system-version of boost and erlang (via
Could you try running these commands, after installing the system version of boost, pugixml and erlang ( These changes simplifying compilation on non-RedHat-based systems will then be included in the next release of the IPbus software, v2.6.0, which will be created around the end of the year. Cheers, |
@tswilliams Thanks for this! I have tried it, it seems that it works quite far, but ended with that error: However, I was curious and have tried to run your unit test:
which ended with that: |
Regarding the ControlHub build error: This is a problem in the standard packaging of Erlang on Ubuntu 16.04; a common workaround is:
This should allow the controlhub to be built, but not adversely affect it's functionality. I have tested this fix on the ubuntu docker container that I'm using for development, and they work in my setup; can you try running the above workaround commands, then re-running Regarding the test suite errors: these all appear to be spurious errors from bugs within the script itself when running on Ubuntu; I'll fix these soon, but the 3 errors within the output that you attached do not indicate any problems within the uHAL libraries themselves. |
@tswilliams Thank you very much for your quick reply! I can confirm your proposed installation recipe for this Ubuntu version:
Installation summary:
|
@tswilliams @dreyling Thanks for the info. The Ubuntu installation branch is also working with these commands for Ubuntu 16.04.3 LTS with GA (4.4. x kernels, long support) and HWE packages (4.10.x kernels, rolling release toward next LTS). Edit 17/11/2017:
You can find the modifications I did to use OTP 20 in the attached text file (git diff output). I could run the test script mentioned above with the same result as on Ubuntu, so I will probably try to run a few tests with our hardware on Monday to see if not only compilation but running is OK. Are there any points that I should more specifically survey to detect potential problems due to the change to OTP 20? |
…m unnecessary loading of 'hipe'; refs #65
…undefined symbol' error on loading python bindings; refs #65
…m unnecessary loading of 'hipe'; refs #65
…gen_udp sockets in Erlang R19 onwards; refs #65
Hi @PALoizeau , This evening I've merged into the My general recommendation for recent operating systems, such as Debian 9, would be to use the system version of boost, pugixml and erlang, unless other versions must be used for compatibility with experiment/other frameworks. To support that approach, a few days ago, I updated the makefiles on the master branch so that boost, pugixml and erlang are not rebuilt by default on all operating systems apart from RHEL 6. So, my current recommendation for debian 9 would be to use the system versions of boost, pugixml and erlang - or those from your experiment's framework - check out the latest commit from the
If you're using the version of pugixml and/or boost from your experiment's framework, and need to specify the include paths for their headers/libraries, you can do so using the following macros:
Cheers, |
Hi @tswilliams, I indeed had funny runtime timeouts last Friday when using Ipbus with Erlang 20 . I used
I will switch our standard IPbus version for users to 2.6 when it is out, and I can now wait completely relaxed for the later time when we have to switch to Debian 9 :-) Thanks a lot again and best regards, |
Hi all, I'm closing this ticket now, since I'm not aware of any remaining unsolved build errors on recent operating systems, but please re-open this ticket if you're still encountering a build error. All of the fixes & improvements related to this ticket have been merged into the I've updated the documentation in the user's guide for building and installing from source - specifically http://ipbus.web.cern.ch/ipbus/doc/user/html/software/install/compile.html - to contain all of the information from this ticket (and more that wasn't discussed above). This commands in this page will always reference the latest recommended tag that should be used when compiling + installing from source. Cheers, |
Adding read / write functionality to counter block
Currently, the IPbus software is only regularly built on SLC6 & CentOS7, and so requires a few minor fixes in order to compile on more recent operating systems, which have more recent versions of g++ and boost - e.g:
The text was updated successfully, but these errors were encountered: