conda-forge / epics-base-feedstock

A conda-smithy repository for epics-base.
BSD 3-Clause "New" or "Revised" License
0 stars 6 forks source link

ENH: Add support for Epics 7. #2

Closed hhslepicka closed 4 years ago

hhslepicka commented 5 years ago

Checklist

This PR adds support for the latest version of EPICS 7.

conda-forge-linter commented 5 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

hhslepicka commented 5 years ago

@conda-forge-admin, please rerender

tacaswell commented 5 years ago

Should we merge this @hhslepicka ?

hhslepicka commented 5 years ago

@tacaswell I now use https://github.com/conda-forge/epicscorelibs-feedstock ... I noticed that the build of this epics base is only valid for Linux and OSX (I don't remember if it works 100%). For Windows it is completely broken (https://github.com/conda-forge/epics-base-feedstock/issues/3). This PR is still valid for Linux and OSX so feel free to merge..

duncanmmacleod commented 4 years ago

@conda-forge-admin, please rerender.

hhslepicka commented 4 years ago

@duncanmmacleod I would recommend using https://github.com/conda-forge/epicscorelibs-feedstock instead of this epics-base-feedstock if there is no need to have the binaries and if the intention is to use it with the Python wrappers. The Windows recipe here is broken, I only realized that later. So feel free to merge it in or not. Thank you for looking at it.

duncanmmacleod commented 4 years ago

@hhslepicka, I'm confused by epics in many ways. Does epicscorelibs provide a full epics build that can be used on its own, without python? I am trying to build out a conda package set that enables using epics from python, but also from other interfaces, including medm etc.

hhslepicka commented 4 years ago

@duncanmmacleod epicscorelibs provides the epics libraries as a python module. Technically you could use it to build and run MEDM and other packages with some tweaking to the makefile or build configuration (See https://github.com/mdavidsaver/epicscorelibs#building-against-epicscorelibs). It does not offer the binaries like caget, caput, camonitor... that is not included. Just libraries.

duncanmmacleod commented 4 years ago

Ok, so that's my worry about epicscorelibs. For those people who need a full epics package, including binaries, they would have to come here, which is fair, but then there's a completely independent build of the library. Why not just congregate on one build?

Just to reiterate, I'm not really an EPICS user, just someone trying to support a community of users. Who need the epics binaries and python wrappers.

hhslepicka commented 4 years ago

I got your point. epicscorelibs provides a solid build of the libraries for all architecture and it is always up to date with the EPICS base releases. I think this recipe is great and they can coexist as the epicscorelibs libraries live in their own namespace. I ended up using epicscorelibs instead of this package because at my package I also need to cover Windows users. But overall, like I said... this recipe works great for Linux and OSX... which is more than enough in most cases. 👍

tacaswell commented 4 years ago

Long term I think we should standardize on this one and drop epicscorelib, but in the short term no one has the bandwidth or motivation to fix the windows build.

hhslepicka commented 4 years ago

@tacaswell I disagree. They both can live in parallel without prejudice. epicscorelib is great to build python packages and provide isolation and also it works with all three major OSs and is kept up to date by EPICS core developer. Other than the binaries there is not really an advantage to the epics-base recipe if one only wants to use client libraries.

tacaswell commented 4 years ago

They only co-exist until there are symbol collisions and you can't use them both in the same application or collide with each other in surprising ways.

I accept that epicscorelib is a pragmatic hack, but from a packaging point of view is the wrong approach. We only need one version of libca and friends to be available.

hhslepicka commented 4 years ago

If you can provide a version of libca and friends (including the PVAccess libraries) that works for Windows, MacOS and Linux and it is up-to-date with the latest releases of the collaboration I would be happy to give it a try.

For now, even being according to your view the wrong approach, epicscorelib gets the job done.

beenje commented 4 years ago

Hello, I work at ESS and maintain some conda recipes for epics: https://gitlab.esss.lu.se/e3-recipes/epics-base-recipe We build only for linux, but I recently built for OSX locally as well. I didn't know this feedstock existed. I'd be happy to contribute if I can.

I've been thinking about using a subpackage to provide only the libs for those who want. Personally I find having the binaries installed as well useful so I don't know if it's worth it.

I don't have much windows experience but could give it a try.

Would you be interested in a PR to merge part of our recipe?

simongregorebner commented 4 years ago

Hey @beenje we're always happy about contributions and pull requests!

beenje commented 4 years ago

Closing this as it has been superseded by https://github.com/conda-forge/epics-base-feedstock/pull/6