On 2025-09-10 05:03, Richard Shaw wrote:
On Wed, Sep 10, 2025 at 1:53 AM <l...@fedoraproject.org> wrote:


    On 2025-09-09 11:04 a.m., Richard Shaw <hobbes1...@gmail.com> wrote:
    > Looking deeper into luxcorerender...
    >
    > It looks like upstream has reorganized significantly, now it's
    tagged as
    > "wheels" in the release. All but one of the patches fails to apply.
    >
    >
    Upsteream changes mean massive update of spec file. Unfortunately,
    I lacked the time to continue cleaning up. Meanwhile here is a
    rough update:

    # Force out of source build
    %undefine __cmake_in_source_build

    #%%global               prerelease      beta1

    Name:           luxcorerender
    Version:            2.10.1
    Release:        %autorelease %{?prerelease: -p -e %{prerelease}}
    Summary:            LuxCore Renderer, an unbiased rendering system

    License:            Apache-2.0
    URL: https://luxcorerender.org/
    Source0:
    
https://github.com/LuxCoreRender/LuxCore/archive/refs/tags/wheels-v2.10.1.tar.gz#/%{name}_v%{version}%{?prerelease}.tar.gz
    Source1
    
<https://github.com/LuxCoreRender/LuxCore/archive/refs/tags/wheels-v2.10.1.tar.gz#/%%7Bname%7D_v%%7Bversion%7D%%7B?prerelease%7D.tar.gzSource1>:
    
https://github.com/LuxCoreRender/BlendLuxCore/archive/refs/tags/v2.10.1.tar.gz#/blendluxcore_v%{version}%{?prerelease}.tar.gz
    
<https://github.com/LuxCoreRender/BlendLuxCore/archive/refs/tags/v2.10.1.tar.gz#/blendluxcore_v%%7Bversion%7D%%7B?prerelease%7D.tar.gz>


 A matter of preference but I got this to work:

Source0: https://github.com/%{name}/LuxCore/archive/wheels-v%{version}%{?prerelease}/%{name}-%{version}.tar.gz <https://github.com/%{name}/LuxCore/archive/wheels-v%{version}%{?prerelease}/%{name}-%{version}.tar.gz> Source1: https://github.com/%{name}/BlendLuxCore/archive/v%{version}%{?prerelease}/blendluxcore-%{version}.tar.gz <https://github.com/%{name}/BlendLuxCore/archive/v%{version}%{?prerelease}/blendluxcore-%{version}.tar.gz>

Also, the conditionals for Fedora 38 and lower (0%{?fedora} < 39) should be safe to remove at this point :)

I have started exploring a compatibility package but the documentation doesn't seem to exist anymore, at least not directly. In the packaging guidelines it just says that it doesn't need a review (Packaging Guidelines / Review Exceptions) and that it has to follow the naming guidelines. There used to be documentation on how to set up the package, i.e., making sure the -devel packages conflict, etc.

Thanks,
Richard

Here is the updated luxcorerender spec file. Currently, cmake failed to properly detect zstd. =/

--
Luya Tshimbalanga
Fedora Design Team
Fedora Design Suite maintainer

%undefine __cmake_in_source_build
%bcond          conan 0

Name:           luxcorerender
Version:        2.10.1
Release:        %autorelease
Summary:        Physically based unbiased rendering system

License:        Apache-2.0
URL:            https://luxcorerender.org/
Source0:        https://github.com/%{name}/LuxCore/archive/wheels-v%{version}%{?prerelease}/%{name}-%{version}.tar.gz
Source1:        https://github.com/%{name}/BlendLuxCore/archive/v%{version}%{?prerelease}/blendluxcore-%{version}.tar.gz
Source3:        org.%{name}.blendluxcore.metainfo.xml

# Essential system integration patch
#Patch3:         LuxCore-system-bcd.patch

ExclusiveArch:  x86_64

BuildRequires:  cmake
BuildRequires:  gcc-c++
%if %{with conan}
BuildRequires:  conan
%endif
BuildRequires:  pybind11-devel
BuildRequires:  blender-rpm-macros
# Upstream currently lacks compatibility with minizip-ng
BuildRequires:  pkgconfig(minizip)

# Core rendering dependencies
BuildRequires:  bcd-devel
BuildRequires:  boost-devel
BuildRequires:  embree-devel
BuildRequires:  openvdb-devel
BuildRequires:  oidn-devel
BuildRequires:  pkgconfig(blosc2)
BuildRequires:  pkgconfig(bzip2)
BuildRequires:  pkgconfig(liblzma)
BuildRequires:  pkgconfig(tbb)
BuildRequires:  pkgconfig(glfw3)
BuildRequires:  pkgconfig(spdlog)
BuildRequires:  pkgconfig(libzstd)
BuildRequires:  cmake(OpenColorIO)
BuildRequires:  cmake(OpenImageIO)
BuildRequires:  cmake(OpenEXR)
BuildRequires:  cmake(opensubdiv)

%description
LuxCoreRender implements state-of-the-art light transport algorithms for 
photorealistic rendering. Features hybrid CPU/GPU acceleration, 
spectral rendering, and advanced material modeling.

%package core
Summary:        Core runtime components
Obsoletes:      LuxRender-core < 2.0

%description core
Contains the main rendering engine and essential libraries for scene processing 
and light simulation.

%package -n blender-%{name}
Summary:        Blender 4.2+ integration plugin
Requires:       %{name}%{?_isa} = %{version}-%{release}

%description -n blender-%{name}
Blender extension for exporting scenes and materials to LuxCore Renderer. 
Supports Cycles material conversion and interactive rendering.

%package devel
Summary:        Development headers and libraries
Requires:       %{name}-core%{?_isa} = %{version}-%{release}

%description devel
Header files and build configuration for developing LuxCore-based applications.

%prep
%autosetup -p1 -a1 -n LuxCore-wheels-v%{version}

%build
%cmake \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_CXX_STANDARD=20 \
    -DLUXCOREDEPS_VERSION=0 \
    -DPYLUXCORE_BINDINGS=ON \
    -Dzstd_DIR=%{_libdir}/libzstd.so
%cmake_build

%install
pushd %{_vpath_builddir}
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/%{name}
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_includedir}
        
install -Dpm 0755 bin/* %{buildroot}%{_bindir}/
install -Dpm 0755 lib/*.{a,so*} %{buildroot}%{_libdir}/
        
# Remove rpaths
chrpath --delete %{buildroot}%{_bindir}/*
chrpath --delete %{buildroot}%{_libdir}/*.so*
        
# Install include files
cp -pr generated/include/{luxcore,luxrays} %{buildroot}%{_includedir} #cfg.h
popd
cp -pr include/{luxcore,luxrays} %{buildroot}%{_includedir}/
rm %{buildroot}%{_includedir}/{luxcore,luxrays}/cfg.h.in
        
# Relocate pyluxcore
mkdir -p %{buildroot}%{python3_sitearch}
mv %{buildroot}%{_libdir}/pyluxcore.so %{buildroot}%{python3_sitearch}

# Import add-ons and preset
mkdir -p %{buildroot}%{blender_extensions}/%{name}
cp -a BlendLuxCore-blendluxcore_v%{version}/* %{buildroot}%{blender_extensions}/%{name}
install -Dpm 644 %{SOURCE3} %{buildroot}%{_metainfodir}/org.%{name}.blendluxcore.metainfo.xml

%check
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml

%files
%license LICENSE
%doc README.md AUTHORS

%files core
%{_bindir}/luxcore*
%{_libdir}/liblux*.so.*

%files -n blender-%{name}
%{_metainfodir}/org.%{name}.*.xml
/%{blender_extensions}/%{name}

%files devel
%{_includedir}/{luxcore,luxrays}
%{_libdir}/pkgconfig/*.pc

%changelog
%autochangelog

Attachment: OpenPGP_0x529982C2682F5484.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to