diff mbox series

[bug#46113] gnu: obs: Update to fb347c.

Message ID 87wnvyiuav.fsf@trop.in
State Accepted
Headers show
Series [bug#46113] gnu: obs: Update to fb347c. | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Andrew Tropin Jan. 27, 2021, 9:45 a.m. UTC
This version of obs adds support for OBS_PLUGINS*_PATH environment variables,
which are required to be able to load plugins, which are present in profile.

It will make it possible for following packages to work:
http://issues.guix.gnu.org/45961
http://issues.guix.gnu.org/45960

* gnu/packages/video.scm (obs): Update to fb347c.
---
 gnu/packages/video.scm | 116 ++++++++++++++++++++++-------------------
 1 file changed, 63 insertions(+), 53 deletions(-)

Comments

Leo Famulari Feb. 2, 2021, 12:48 a.m. UTC | #1
On Wed, Jan 27, 2021 at 12:45:30PM +0300, Andrew Tropin wrote:
> This version of obs adds support for OBS_PLUGINS*_PATH environment variables,
> which are required to be able to load plugins, which are present in profile.
> 
> It will make it possible for following packages to work:
> http://issues.guix.gnu.org/45961
> http://issues.guix.gnu.org/45960
> 
> * gnu/packages/video.scm (obs): Update to fb347c.

Thanks for this!

I'm wondering, instead of building from a Git commit, can we cherry-pick
the commit as a patch?

https://github.com/obsproject/obs-studio/commit/fb347c3c62ced2ea302769e449d300fd923c2d4b.patch

Does it work if we apply that to the 26.1.2 release?

It would be a little more precise.
Andrew Tropin Feb. 2, 2021, 11:39 a.m. UTC | #2
Hello Leo!

> Does it work if we apply that to the 26.1.2 release?

It should work, originally I wrote a patch for 26.1.2 and later rebased
the commit on master without any conflicts.

> It would be a little more precise.

There was a discussion on irc about it and at the end of the day I would
prefer to use the commit from master branch, rather than maintaining a
separate patch, which we will need to remove later, when 26.1.3 or
another version will be released.

There were not so many changes since 26.1.2 up to the fb347c, I fluently
went through them, they are mostly minor and were accepted after the
pretty strict code review process.

From what I know it should be safe to use this commit, but I can contact
upstream devs and additionally clarify that.

Overall I'm ok with using an exact patch, but prefer using a commit from
master. WDYT?
Leo Famulari Feb. 2, 2021, 7:33 p.m. UTC | #3
On Tue, Feb 02, 2021 at 02:39:03PM +0300, Andrew Tropin wrote:
> > Does it work if we apply that to the 26.1.2 release?
> 
> It should work, originally I wrote a patch for 26.1.2 and later rebased
> the commit on master without any conflicts.
> 
> > It would be a little more precise.
> 
> There was a discussion on irc about it and at the end of the day I would
> prefer to use the commit from master branch, rather than maintaining a
> separate patch, which we will need to remove later, when 26.1.3 or
> another version will be released.
> 
> There were not so many changes since 26.1.2 up to the fb347c, I fluently
> went through them, they are mostly minor and were accepted after the
> pretty strict code review process.
> 
> From what I know it should be safe to use this commit, but I can contact
> upstream devs and additionally clarify that.
> 
> Overall I'm ok with using an exact patch, but prefer using a commit from
> master. WDYT?

Thanks for explaining the process you went through. Based on that, I
agree that your patch is good as proposed.

The patch file doesn't apply to current master. It looks like some other
changes regarding this plugins problem have been done to the obs package
since your changes were made.

Can you rebase it on your end and re-generate the patch? Or is it still
necessary?
Andrew Tropin Feb. 2, 2021, 7:43 p.m. UTC | #4
> Thanks for explaining the process you went through. Based on that, I
> agree that your patch is good as proposed.
>
> The patch file doesn't apply to the current master. It looks like some other
> changes regarding this plugins problem have been done to the obs package
> since your changes were made.
>
> Can you rebase it on your end and re-generate the patch? Or is it still
> necessary?

I'll post to the related thread first https://issues.guix.gnu.org/45707
to discuss what we can do about that situation, and will post back here,
when we will reach some agreement.
diff mbox series

Patch

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 97cb7d6837..f9741dc843 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -3077,62 +3077,72 @@  be used for realtime video capture via Linux-specific APIs.")
     (license (list license:lgpl2.1+ license:gpl2))))
 
 (define-public obs
-  (package
-    (name "obs")
-    (version "26.1.2")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/obsproject/obs-studio")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1k1asqiqw757v59ayx0w029ril947hs0lcp8n91knzjl891fr4nc"))))
-    (build-system cmake-build-system)
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version)
-             "-DENABLE_UNIT_TESTS=TRUE")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (plugin-path (getenv "QT_PLUGIN_PATH")))
-               (wrap-program (string-append out "/bin/obs")
-                 `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
-             #t)))))
-    (native-inputs
-     `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("curl" ,curl)
-       ("eudev" ,eudev)
-       ("ffmpeg" ,ffmpeg)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("jack" ,jack-1)
-       ("jansson" ,jansson)
-       ("libx264" ,libx264)
-       ("libxcomposite" ,libxcomposite)
-       ("mbedtls" ,mbedtls-apache)
-       ("mesa" ,mesa)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("speexdsp" ,speexdsp)
-       ("v4l-utils" ,v4l-utils)
-       ("zlib" ,zlib)))
-    (synopsis "Live streaming software")
-    (description "Open Broadcaster Software provides a graphical interface for
+  (let ((commit "fb347c3c62ced2ea302769e449d300fd923c2d4b")
+        (revision "1"))
+    (package
+      (name "obs")
+      (version (git-version "26.1.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/obsproject/obs-studio")
+                      (commit version)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "017llgj1hlfvk2622qa44d8iz6d0kahhckn421dypj09a4n6aajz"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version)
+               "-DENABLE_UNIT_TESTS=TRUE")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'wrap-executable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (plugin-path (getenv "QT_PLUGIN_PATH")))
+                 (wrap-program (string-append out "/bin/obs")
+                   `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
+               #t)))))
+      (native-inputs
+       `(("cmocka" ,cmocka)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("alsa-lib" ,alsa-lib)
+         ("curl" ,curl)
+         ("eudev" ,eudev)
+         ("ffmpeg" ,ffmpeg)
+         ("fontconfig" ,fontconfig)
+         ("freetype" ,freetype)
+         ("jack" ,jack-1)
+         ("jansson" ,jansson)
+         ("libx264" ,libx264)
+         ("libxcomposite" ,libxcomposite)
+         ("mbedtls" ,mbedtls-apache)
+         ("mesa" ,mesa)
+         ("pulseaudio" ,pulseaudio)
+         ("qtbase" ,qtbase)
+         ("qtsvg" ,qtsvg)
+         ("qtx11extras" ,qtx11extras)
+         ("speexdsp" ,speexdsp)
+         ("v4l-utils" ,v4l-utils)
+         ("zlib" ,zlib)))
+      (native-search-paths
+       (list
+        (search-path-specification
+         (variable "OBS_PLUGINS_DATA_PATH")
+         (files '("share/obs/obs-plugins")))
+        (search-path-specification
+         (variable "OBS_PLUGINS_PATH")
+         (files '("lib/obs-plugins")))))
+      (synopsis "Live streaming software")
+      (description "Open Broadcaster Software provides a graphical interface for
 video recording and live streaming.  OBS supports capturing audio and video
 from many input sources such as webcams, X11 (for screencasting), PulseAudio,
 and JACK.")
-    (home-page "https://obsproject.com")
-    (license license:gpl2+)))
+      (home-page "https://obsproject.com")
+      (license license:gpl2+))))
 
 (define-public libvdpau
   (package