Autospec and submodules

UPDATE: Found this release tarballs miss required sources · Issue #7407 · obsproject/obs-studio · GitHub which, if I understand correctly, will add the submodules to the source code release tarball. The latest release was Apr 6th, and the issue was closed on Apr 14th. Probably try again on the next stable release

I tried building obs-studio using autospec based on GitHub - clearlinux-pkgs/obs-studio
Got the following error

-- Checking for module 'libva'
--   Found libva, version 1.21.0
-- Checking for module 'libva-drm'
--   Found libva-drm, version 1.21.0
-- Found Libva: /usr/include
-- OBS:  ENABLED    obs-qsv11
CMake Error at cmake/Modules/ObsHelpers.cmake:373 (message):
  OBS: obs-browser submodule not available.
Call Stack (most recent call first):
  plugins/CMakeLists.txt:106 (obs_status)
  plugins/CMakeLists.txt:149 (check_obs_browser)
-- Configuring incomplete, errors occurred!
error: Bad exit status from /var/tmp/rpm-tmp.Iu3zCw (%build)
Child return code was: 1

How to rectify submodules whilst building with autospec?

Changes made so far

Here is the full gist of results/build.log cat build.log · GitHub

EDIT: added request for an mbedtls bundle mbedtls bundle with pkgconfig files · Issue #3111 · clearlinux/distribution · GitHub

git clone
cd obs-studio
git submodule init
git submodule update
tar -czf obs-studio-with-submodules.tar.gz .

Remove the following from the spec file :

%pkgconfig-ban libx264
%pkgconfig-ban jack
%pkgconfig-ban fdk-aac

Add these to the spec file :

%pkgconfig-ban mbedcrypto
%pkgconfig-ban mbedx509

In the %prep section, find and remove the line that applies the build-without-libx264.patch patch.

Update the ‘Source0’ URL in the spec file to point to the created tarball.

Build the package with autospec :

autospec -f

Directly editing the spec file don’t work as the other files (like pkgconfig-ban and series) overwrite it.
However, thanks for the idea of replacing the tarball. I just replaced the 30.1.2.tar.gz with the new tarball and ran it, i found this repo GitHub - mihawk90/obs-studio.spec: SPEC file for RPM packaging on Fedora (and - theoretically - centOS/RHEL) which gave me a few ideas on how to proceed and got stuck at nlohmann-json.

Added two more requests on the github devpkg-uthash · Issue #3112 · clearlinux/distribution · GitHub and devpkg-json · Issue #3113 · clearlinux/distribution · GitHub
Added qt6svg-dev and ninja to buildreq_add

1 Like

Whilst that may be a valid approach, the control files used by autospec are defined here GitHub - clearlinux/autospec: RPM packaging automation tool

Now, I would like to know how to reference a package I built with autospec as a dependency with obs-studio. For example, qt6svg is actually named qt6svg-dev when referenced in buildreq_add so I was wondering where I can find this information.

with the latest packages from 41800, building obs-studio 30.1.2 via autospec is now possible!
Maintaining it would be ugly since the submodules aren’t available yet in the tarball, hopefully they’re out in the next release of obs-studio

make[1]: Leaving directory '/home/i/.install/clearlinux/packages/obs-studio'
diffstat for-review.txt
 0003-Update_to_libajantv2_17_legacy_path_only.patch |   95 ++++++++++++++++++++++++++++++++++
 buildreq_add                                        |   15 +++++
 cmake_args                                          |    8 ++
 install_macro                                       |    1 
 make_command                                        |    1 
 make_prepend                                        |    1 
 obs-studio.spec                                     |   64 ++++++++++++++--------
 options.conf                                        |    1 
 pkgconfig_ban                                       |   17 +-----
 series                                              |    5 +
 used_libs                                           |   66 ++++++++++++++++++-----
 11 files changed, 222 insertions(+), 52 deletions(-)

** NOTICE: A patch with changes is available in the file for-review.txt
** To recreate (e.g., after git commit --amend), run make for-review.txt
** To submit for review: git send-email --to <recipient> for-review.txt