Bug 240117

Summary: [NEW PORT] graphics/embree2: Collection of high-performance ray tracing kernels (and unbreak ports using graphics/embree)
Product: Ports & Packages Reporter: Shane <FreeBSD>
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: FreeBSD, danfe, koobs, luzpaz
Priority: --- Keywords: feature, needs-patch, needs-qa
Version: LatestFlags: FreeBSD: maintainer-feedback+
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239314
Bug Depends on:    
Bug Blocks: 239314, 242265    
Attachments:
Description Flags
new port graphics/embree2
FreeBSD: maintainer-approval+
unbreak graphics/py-embree
none
unbreak math/py-yt none

Description Shane 2019-08-26 04:20:24 UTC
Created attachment 206909 [details]
new port graphics/embree2

Currently graphics/embree is marked broken and is due to be deleted, I have submitted an update to bring that port to v3.6.0 in bug #239314.

Updating embree to 3.6.0 does not fix any existing dependencies, here I propose a new port as graphics/embree2 to support some of the existing ports.

The existing port enables ISPC as a default, I find that all but one system config breaks with this enabled. Therefore this new port is a small update to the existing port without ISPC enabled, I have also added strip commands for the binaries.

graphics/py-embree and math/py-yt can use this port to remain active.

graphics/luxrender would use this port but has other build issues related to boost.
Comment 1 Shane 2019-08-26 04:21:33 UTC
Created attachment 206910 [details]
unbreak graphics/py-embree

unbreak py-embree by adjusting to use new embree2 port
Comment 2 Shane 2019-08-26 04:22:12 UTC
Created attachment 206911 [details]
unbreak math/py-yt

unbreak py-yt by adjusting to use new embree2 port
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2019-08-26 04:36:23 UTC
If graphics/embree gets the update in bug 239314 is this port, or the changes to graphics/py-embree or math/py-yt still needed?
Comment 4 Shane 2019-08-28 08:32:00 UTC
(In reply to Kubilay Kocak from comment #3)

Yes, embree v2 and v3 are not compatible and are setup to be installed simultaneously.
Comment 5 Rene Ladan freebsd_committer freebsd_triage 2019-09-07 11:46:00 UTC
In the meantime the following ports have been removed because they expired as they depended on embree:
- py-pyembree
- py-yt
- luxrender
- luxrender14

We need to fix embree first, and then we can resurrect py-pyembree and py-yt.
Comment 6 Rene Ladan freebsd_committer freebsd_triage 2019-09-07 11:47:00 UTC
In the meantime the following ports have been removed because they expired as they depended on embree:
- py-pyembree
- py-yt
- luxrender
- luxrender14

We need to fix embree first, and then we can resurrect py-pyembree and py-yt.
Comment 7 commit-hook freebsd_committer freebsd_triage 2019-09-08 12:56:37 UTC
A commit references this bug:

Author: rene
Date: Sun Sep  8 12:56:21 UTC 2019
New revision: 511574
URL: https://svnweb.freebsd.org/changeset/ports/511574

Log:
  Resurrect graphics/py-pyembree and math/py-yt now that graphics/embree is fixed.

  PR:		240117 (related)
  Submitted by:	FreeBSD@ShaneWare.Biz

Changes:
  head/MOVED
  head/graphics/Makefile
  head/graphics/py-pyembree/
  head/graphics/py-pyembree/Makefile
  head/math/Makefile
  head/math/py-yt/
  head/math/py-yt/Makefile
Comment 8 kunda 2020-01-12 10:01:52 UTC
heads up that 3.7.0 has been released: https://github.com/embree/embree/releases/tag/v3.7.0
Comment 9 Shane 2020-01-15 02:57:28 UTC
The embree 3.7 release is not relevant to this, which is to create an embree2 port to support code not supporting embree 3.x

bug #239314 needs updating to 3.7 and that is blocked until this is committed.
Comment 10 Alexey Dokuchaev freebsd_committer freebsd_triage 2020-02-11 05:59:31 UTC
Embree port had been updated to the latest version 3.8.0 as of ports r525724.  Python bindings port (graphics/py-embree) is outdated and incompatible with new 3.x API, and was marked as BROKEN accordingly.  Quoting the software authors:

> We decided to introduce an improved API in Embree 3 that is
> not backward compatible with the Embree 2 API. This step was
> required to remove various deprecated API functions that
> accumulated over time, improve extensibility of the API, fix
> suboptimal design decisions, fix design mistakes (such as
> incompatible single ray and ray packet layouts), clean up
> inconsistent naming, and increase flexibility.
> 
> To make porting to the new API easy, we provide a conversion
> script that can do most of the work, and will annotate the
> code with remaining changes required. The script can be
> invoked the following way for CPP files:
> 
>     ./scripts/cpp-patch.py --patch embree2_to_embree3.patch
>       --in infile.cpp --out outfile.cpp
> 
> When invoked for ISPC files, add the `--ispc` option:
> 
>     ./scripts/cpp-patch.py --ispc
>       --patch embree2_to_embree3.patch
>       --in infile.ispc --out outfile.ispc

Embree support in the `math/py-yt' port was made optional in ports r525712, and is currently disabled by default until Python bindings would get updated.

Keeping the deprecated API v2 port around does not seem necessary or justified, as popular software, e.g. Blender, typically requires v3 libraries these days.  That said, with `math/py-yt' fixed and no other v2 consumers in the tree, I'm closing this PR.