kripton / kripton-overlay

Gentoo portage overlay with packages needed or developed by kripton
0 stars 1 forks source link

obs-ndi doesn't seem to be compileable anymore #5

Open bunder2015 opened 1 year ago

bunder2015 commented 1 year ago

Hi, I was trying to write updated ebuilds for ndi-sdk-bin and obs-ndi, but ran into some issues and wanted to roll back... but it seems obs-ndi-4.9.1 isn't compileable anymore, it throws some cmake error about not being able to find libobs...

>>> Emerging (2 of 2) media-video/obs-ndi-4.9.1::bunder
 * obs-ndi-4.9.1.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                  [ ok ]
>>> Unpacking source...
>>> Unpacking obs-ndi-4.9.1.tar.gz to /var/tmp/portage/media-video/obs-ndi-4.9.1/work
>>> Source unpacked in /var/tmp/portage/media-video/obs-ndi-4.9.1/work
>>> Preparing source in /var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1_build"
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1_build"
cmake -C /var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1_build/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DLIBOBS_INCLUDE_DIR=/usr/include/obs/UI -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_TOOLCHAIN_FILE=/var/
tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1_build/gentoo_toolchain.cmake /var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1
loading initial cache file /var/tmp/portage/media-video/obs-ndi-4.9.1/work/obs-ndi-4.9.1_build/gentoo_common_config.cmake
-- The C compiler identification is GNU 11.3.1
-- The CXX compiler identification is GNU 11.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/distcc/bin/x86_64-pc-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/distcc/bin/x86_64-pc-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:16 (find_package):
  By not providing "FindLibObs.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "LibObs", but
  CMake did not find one.

  Could not find a package configuration file provided by "LibObs" with any
  of the following names:

    LibObsConfig.cmake
    libobs-config.cmake

  Add the installation prefix of "LibObs" to CMAKE_PREFIX_PATH or set
  "LibObs_DIR" to a directory containing one of the above files.  If "LibObs"
  provides a separate development package or SDK, be sure it has been
  installed.

-- Configuring incomplete, errors occurred!
<snip>

I was able to rollback using a quickpkg file from my other ndi system, but I wanted to mention it here to see if we could somehow get both packages updated and working again. Please let me know if I could be of any assistance. Thanks!

kripton commented 1 year ago

Hi @bunder2015. I can confirm that the obs-ndi plugin in my overlay is not compatible with OBS 28. obs-ndi-10.0.0 is available and should be compatible. I can have a look if I can bump the ebuild some time. Thanks for your report!

bunder2015 commented 1 year ago

Strange, it seems to still work on my systems, I just can't build it anymore. Anyways, let me know if you need help. Cheers

bunder2015 commented 1 year ago

Okay, I think I finally got it... Packages install and all the files go into the right locations... I still have to test whether the compiled outputs actually function. Both ebuilds appear to be warning free, and pass pkgcheck tests.

ndi-sdk-bin-5.0.10.1 https://gist.github.com/bunder2015/a709de57a37f8daf0acb71c56f085378 obs-ndi-4.10.0 https://gist.github.com/bunder2015/d2fe29cfcc237cd2244a80f1dcce4801

I will update when I can test the functionality, most likely tomorrow afternoon.

Thanks

bunder2015 commented 1 year ago

I've gotten some testing done, and it's not good... On obs 29.0.2, trying to use NDI causes the receiving PC's obs to freeze. Obs 28.1.2 is still in portage, I'll try that in a few hours.

bunder2015 commented 1 year ago

No luck with obs 28.1.2 either. I'll go file an issue with the obs-ndi maintainer.

kripton commented 1 year ago

Hi @bunder2015 and thank you for working on this! Unfortunately, I was not yet able to do any testing on my side but I'm excited what the answers of the obs-ndi maintainers will be.

bunder2015 commented 1 year ago

Nothing yet, but it looks like the 4.10.0 tarball is actually from the wrong branch.

In the meantime, they released an RC for 4.11.0... It looks like it needs sdk 5.5.3, but that version isn't on the ndi.palakis.fr website. I'm considering changing the sdk package to pull the libndi deb file from github instead... (or keeping the sdk package the same, and making obs-ndi 4.10.0 a binary and extracting that deb file instead)

I already have a working (installable but still broken) 4.11.0-RC ebuild, so changing the sdk ebuild is probably easier and quicker to get this out the door. I might take a look at that tomorrow... Cheers

bunder2015 commented 1 year ago

I heard back from the obs-ndi folks, it doesn't sound like they are going to fix the 4.10.0 tarball...

Regardless, I went ahead and finished up on the 4.11.0-RC + sdk 5.5.3 ebuilds. I wound up pinning the ebuild to this sdk version and a minimum of obs 28 + qt 5, although I believe they should also work on obs 29 and/or qt 6. Gentoo doesn't quite support qt 6 yet (but we'll have to swap qtcore for qtbase), and they already dropped obs < 28, so there shouldn't be any issues there.

ndi-sdk-bin-5.5.3 obs-ndi-4.11.0_rc

Tested and working on my two systems, no more freezes, passes pkgcheck.

I'll keep an eye on upstream and bump when they officially release 4.11.0. Let me know if you run into any issues or if you want me to change something. Cheers

edit: I had a few minutes and added the qt5/6 check.

kripton commented 1 year ago

Hey @bunder2015: Nice work, thank you!

The NDI SDK installs fine here, however, the header files are missing. If they are not required it's fine for me.

The obs-ndi ebuild fails to download:

kripton@momo ~/git/kripton-overlay/media-video/obs-ndi $ ebuild obs-ndi-4.11.0_rc.ebuild digest
Appending /home/kripton/git/kripton-overlay to PORTDIR_OVERLAY...
>>> Downloading 'https://github.com/Palakis/obs-ndi/archive/obs-ndi-4.10.0.tar.gz'
--2023-03-01 22:45:31--  https://github.com/Palakis/obs-ndi/archive/obs-ndi-4.10.0.tar.gz
Resolving github.com... 140.82.121.4
Connecting to github.com|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/Palakis/obs-ndi/tar.gz/obs-ndi-4.10.0 [following]
--2023-03-01 22:45:32--  https://codeload.github.com/Palakis/obs-ndi/tar.gz/obs-ndi-4.10.0
Resolving codeload.github.com... 140.82.121.10
Connecting to codeload.github.com|140.82.121.10|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2023-03-01 22:45:37 ERROR 404: Not Found.

!!! Couldn't download 'obs-ndi-4.10.0.tar.gz'. Aborting.
!!! Fetch failed for obs-ndi-4.10.0.tar.gz, can't update Manifest

Did they change their mind and "fixed" their broken tarball naming? I'm confused about the redirect that GitHub does :(

kripton commented 1 year ago

Ah sorry, my fault, still had an 4.10.0 ebuild in that folder...

kripton commented 1 year ago

I confirm that the plugin compiles fine against the updated NDI SDK and obs-28. Again, thank you so much! I committed your plugins to the overlay. Tell me if it's working as you would expect.

bunder2015 commented 1 year ago

Looks like your manifest files are missing the checksums for the ebuilds, they only show the download files... Otherwise looks good to me... you can probably drop the old files too since they're unusable at this point. :+1:

kripton commented 1 year ago

Looks like your manifest files are missing the checksums for the ebuilds, they only show the download files... Otherwise looks good to me... you can probably drop the old files too since they're unusable at this point. 👍

Oh, okay, I thought pkgdev would handle that. I am used to repoman but I will re-check and fix that tomorrow!

bunder2015 commented 1 year ago

4.11.0 is out of RC now... along with a new repo.

https://raw.githubusercontent.com/bunder2015/overlay/master/media-video/ndi-sdk-bin/ndi-sdk-bin-5.5.3.ebuild https://raw.githubusercontent.com/bunder2015/overlay/master/media-video/obs-ndi/obs-ndi-4.11.0.ebuild

Tested and working, but the hash on the ndi-sdk-bin .deb changed, so you'll probably want to remove it from your distfiles before generating new manifest files. (Or just grab everything out of my overlay, whichever is easier for you :+1: )

Cheers

bunder2015 commented 9 months ago

Hello, OBS 30 is out now and the obs-ndi folks have also released a new version (4.13.0)...

https://github.com/bunder2015/overlay/tree/master/media-video

Couple notes: I was build-testing this a couple weeks ago prior to gentoo updating the OBS ebuild, and the latest version will only work with OBS 30 and QT6. The obs-ndi folks don't distribute the precompiled NDI runtime anymore, so we have to go back to the "extract the tarball inside the bash script" method again. I can't test this fully until late Monday or Tuesday, so no rush with merging. 👍

Cheers

bunder2015 commented 9 months ago

A quick test seems to be good, should be ready to go. :+1:

kripton commented 9 months ago

A quick test seems to be good, should be ready to go. 👍

Great work, well done! Since you seem to have a working version in your overlay, I will probably drop obs-ndi from my overlay and just use yours :)

bunder2015 commented 6 months ago

Sure no problem, I just pushed a new version of obs-ndi to my overlay if you want to give it a go. Cheers

kripton commented 1 month ago

Hi @bunder2015, just wanted to inform you that I renamed media-video/obs-ndi to media-video/DistroAV in my overlay since upstream was forced to rename as well.

bunder2015 commented 1 month ago

Thanks for the heads up, I just renamed mine as well. https://github.com/bunder2015/overlay/commit/a60d1fe81f59f50aa89517839990f13c211ad478

Cheers