GNU bug report logs - #32063
Fix the build of openscenegraph and openmw

Previous Next

Package: guix-patches;

Reported by: Alex Kost <alezost <at> gmail.com>

Date: Thu, 5 Jul 2018 20:01:01 UTC

Severity: normal

Done: Alex Kost <alezost <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32063 in the body.
You can then email your comments to 32063 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#32063; Package guix-patches. (Thu, 05 Jul 2018 20:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alex Kost <alezost <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 05 Jul 2018 20:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: guix-patches <at> gnu.org
Subject: Fix the build of openscenegraph and openmw
Date: Thu, 05 Jul 2018 22:59:52 +0300
Currently, ‘openscenegraph’ and ‘openmw’ fail to build on hydra.  The
upcoming patches fix these fails.

The problem with openscenegraph was the absence of pkg-config.

And the problem with openmw is that its current (which is the latest)
version does not support qt 5.11, but it is supported in the recent git
checkout, so I updated it to one of the latest commits, is it OK?

Also I didn't reindented the package definition of openmw, because the
introduced ‘let’ (with commit and revision) will be removed again after
the next update.

-- 
Alex




Information forwarded to guix-patches <at> gnu.org:
bug#32063; Package guix-patches. (Thu, 05 Jul 2018 20:08:01 GMT) Full text and rfc822 format available.

Message #8 received at 32063 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: 32063 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: openmw: Update to a checkout version.
Date: Thu,  5 Jul 2018 23:06:15 +0300
* gnu/packages/game-development.scm (openmw): Update to the latest
commit to fix the build.
---
 gnu/packages/game-development.scm | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index a715c958c..e3750b1b8 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Tomáš Čech <sleep_walker <at> suse.cz>
 ;;; Copyright © 2015 Mark H Weaver <mhw <at> netris.org>
 ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo <at> gnu.org>
-;;; Copyright © 2015 Alex Kost <alezost <at> gmail.com>
+;;; Copyright © 2015, 2018 Alex Kost <alezost <at> gmail.com>
 ;;; Copyright © 2015, 2016, 2017 David Thompson <davet <at> gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau <at> posteo.net>
@@ -1019,18 +1019,23 @@ of use.")
     (license license:expat)))
 
 (define-public openmw
+  ;; XXX The current version does not support qt 5.11, but the upcoming
+  ;; version (0.44) will do.
+  (let ((commit "5bc073603e8c7887e015a0ef41b4cefd6e688aaf")
+        (revision "1"))
   (package
     (name "openmw")
-    (version "0.43.0")
+    (version (git-version "0.43" revision commit))
     (source
      (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://github.com/OpenMW/openmw/archive/"
-                       name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/OpenMW/openmw.git")
+             (commit commit)))
+       (file-name (string-append name "-" version "-checkout"))
        (sha256
         (base32
-         "11phjx7b3mv4n295xgq25lkcwq0mgr35i5k05hf1h77y6n6jbw64"))))
+         "1sp4n3f1syvv0iz7n72wh226fyc0jh98cg8bvs574jvvqx6qn851"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; No test target
@@ -1057,7 +1062,7 @@ the 2002 open-world RPG Morrowind.  The engine comes with its own editor,
 called OpenMW-CS which allows the user to edit or create their own original
 games.")
     (home-page "https://openmw.org")
-    (license license:gpl3)))
+    (license license:gpl3))))
 
 (define-public godot
   (package
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32063; Package guix-patches. (Thu, 05 Jul 2018 20:08:02 GMT) Full text and rfc822 format available.

Message #11 received at 32063 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: 32063 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: openscenegraph: Update to 3.6.2.
Date: Thu,  5 Jul 2018 23:06:14 +0300
* gnu/packages/graphics.scm (openscenegraph): Update to 3.6.2.
[source]: Use the new url and 'git-fetch' method.
[properties]: Add 'upstream-name'.
[native-inputs]: Add 'pkg-config'.
[inputs]: Add 'libxrandr'.
* gnu/packages/patches/openscenegraph-ffmpeg3.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/graphics.scm                     |  21 ++-
 .../patches/openscenegraph-ffmpeg3.patch      | 156 ------------------
 3 files changed, 13 insertions(+), 165 deletions(-)
 delete mode 100644 gnu/packages/patches/openscenegraph-ffmpeg3.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 10b61ba1b..a86827b17 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -984,7 +984,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openldap-CVE-2017-9287.patch		\
   %D%/packages/patches/openocd-nrf52.patch			\
-  %D%/packages/patches/openscenegraph-ffmpeg3.patch             \
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.0.2-CVE-2018-0495.patch	\
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index fffe97265..65f023a48 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben <at> gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe <at> gmail.com>
+;;; Copyright © 2018 Alex Kost <alezost <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -408,17 +409,19 @@ visual effects work for film.")
 (define-public openscenegraph
   (package
     (name "openscenegraph")
-    (version "3.4.0")
+    (version "3.6.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "http://trac.openscenegraph.org/downloads/developer_releases/"
-                           "OpenSceneGraph-" version ".zip"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/openscenegraph/OpenSceneGraph")
+             (commit (string-append "OpenSceneGraph-" version))))
        (sha256
         (base32
-         "03h4wfqqk7rf3mpz0sa99gy715cwpala7964z2npd8jxfn27swjw"))
-       (patches (search-patches "openscenegraph-ffmpeg3.patch"))
-       (file-name (string-append name "-" version ".zip"))))
+         "03jk6lclyd4biniaw04w7j0z1spkm69f1c19i37b8v9x3zv1p1id"))
+       (file-name (string-append name "-" version "-checkout"))))
+    (properties
+     `((upstream-name . "OpenSceneGraph")))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; no test target available
@@ -430,11 +433,13 @@ visual effects work for film.")
                             (assoc-ref %outputs "out") "/lib:"
                             (assoc-ref %outputs "out") "/lib64"))))
     (native-inputs
-     `(("unzip" ,unzip)))
+     `(("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)))
     (inputs
      `(("giflib" ,giflib)
        ("jasper" ,jasper)
        ("librsvg" ,librsvg)
+       ("libxrandr" ,libxrandr)
        ("pth" ,pth)
        ("qtbase" ,qtbase)
        ("ffmpeg" ,ffmpeg)
diff --git a/gnu/packages/patches/openscenegraph-ffmpeg3.patch b/gnu/packages/patches/openscenegraph-ffmpeg3.patch
deleted file mode 100644
index 02c04a558..000000000
--- a/gnu/packages/patches/openscenegraph-ffmpeg3.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-Description: Replace deprecated FFmpeg API
-Author: Andreas Cadhalpun <Andreas.Cadhalpun <at> googlemail.com>
-See <http://forum.openscenegraph.org/viewtopic.php?t=15832>.
---- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
-+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
-@@ -71,7 +71,7 @@ void FFmpegDecoderVideo::open(AVStream *
-     findAspectRatio();
- 
-     // Find out whether we support Alpha channel
--    m_alpha_channel = (m_context->pix_fmt == PIX_FMT_YUVA420P);
-+    m_alpha_channel = (m_context->pix_fmt == AV_PIX_FMT_YUVA420P);
- 
-     // Find out the framerate
-     m_frame_rate = av_q2d(stream->avg_frame_rate);
-@@ -91,20 +91,19 @@ void FFmpegDecoderVideo::open(AVStream *
-         throw std::runtime_error("avcodec_open() failed");
- 
-     // Allocate video frame
--    m_frame.reset(avcodec_alloc_frame());
-+    m_frame.reset(av_frame_alloc());
- 
-     // Allocate converted RGB frame
--    m_frame_rgba.reset(avcodec_alloc_frame());
--    m_buffer_rgba[0].resize(avpicture_get_size(PIX_FMT_RGB24, width(), height()));
-+    m_frame_rgba.reset(av_frame_alloc());
-+    m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height()));
-     m_buffer_rgba[1].resize(m_buffer_rgba[0].size());
- 
-     // Assign appropriate parts of the buffer to image planes in m_frame_rgba
--    avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], PIX_FMT_RGB24, width(), height());
-+    avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height());
- 
-     // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame.
-     m_context->opaque = this;
--    m_context->get_buffer = getBuffer;
--    m_context->release_buffer = releaseBuffer;
-+    m_context->get_buffer2 = getBuffer;
- }
- 
- 
-@@ -263,8 +262,8 @@ int FFmpegDecoderVideo::convert(AVPictur
- #ifdef USE_SWSCALE
-     if (m_swscale_ctx==0)
-     {
--        m_swscale_ctx = sws_getContext(src_width, src_height, (PixelFormat) src_pix_fmt,
--                                      src_width, src_height, (PixelFormat) dst_pix_fmt,
-+        m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat) src_pix_fmt,
-+                                      src_width, src_height, (AVPixelFormat) dst_pix_fmt,
-                                       /*SWS_BILINEAR*/ SWS_BICUBIC, NULL, NULL, NULL);
-     }
- 
-@@ -311,14 +310,14 @@ void FFmpegDecoderVideo::publishFrame(co
-     AVPicture * const dst = (AVPicture *) m_frame_rgba.get();
- 
-     // Assign appropriate parts of the buffer to image planes in m_frame_rgba
--    avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], PIX_FMT_RGB24, width(), height());
-+    avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height());
- 
-     // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine
- 
--    if (m_context->pix_fmt == PIX_FMT_YUVA420P)
-+    if (m_context->pix_fmt == AV_PIX_FMT_YUVA420P)
-         yuva420pToRgba(dst, src, width(), height());
-     else
--        convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height());
-+        convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height());
- 
-     // Wait 'delay' seconds before publishing the picture.
-     int i_delay = static_cast<int>(delay * 1000000 + 0.5);
-@@ -345,7 +344,7 @@ void FFmpegDecoderVideo::publishFrame(co
- 
- void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height)
- {
--    convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width, height);
-+    convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height);
- 
-     const size_t bpp = 4;
- 
-@@ -363,31 +362,28 @@ void FFmpegDecoderVideo::yuva420pToRgba(
-     }
- }
- 
--
--
--int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture)
-+int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture, int flags)
- {
-+    AVBufferRef *ref;
-     const FFmpegDecoderVideo * const this_ = reinterpret_cast<const FFmpegDecoderVideo*>(context->opaque);
- 
--    const int result = avcodec_default_get_buffer(context, picture);
-+    const int result = avcodec_default_get_buffer2(context, picture, flags);
-     int64_t * p_pts = reinterpret_cast<int64_t*>( av_malloc(sizeof(int64_t)) );
- 
-     *p_pts = this_->m_packet_pts;
-     picture->opaque = p_pts;
- 
-+    ref = av_buffer_create((uint8_t *)picture->opaque, sizeof(int64_t), FFmpegDecoderVideo::freeBuffer, picture->buf[0], flags);
-+    picture->buf[0] = ref;
-+
-     return result;
- }
- 
--
--
--void FFmpegDecoderVideo::releaseBuffer(AVCodecContext * const context, AVFrame * const picture)
-+void FFmpegDecoderVideo::freeBuffer(void *opaque, uint8_t *data)
- {
--    if (picture != 0)
--        av_freep(&picture->opaque);
--
--    avcodec_default_release_buffer(context, picture);
-+    AVBufferRef *ref = (AVBufferRef *)opaque;
-+    av_buffer_unref(&ref);
-+    av_free(data);
- }
- 
--
--
- } // namespace osgFFmpeg
---- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
-+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
-@@ -94,8 +94,8 @@ private:
-                 int src_pix_fmt, int src_width, int src_height);
- 
- 
--    static int getBuffer(AVCodecContext * context, AVFrame * picture);
--    static void releaseBuffer(AVCodecContext * context, AVFrame * picture);
-+    static int getBuffer(AVCodecContext * context, AVFrame * picture, int flags);
-+    static void freeBuffer(void * opaque, uint8_t *data);
- 
-     PacketQueue &           m_packets;
-     FFmpegClocks &          m_clocks;
---- a/src/osgPlugins/ffmpeg/FFmpegParameters.cpp
-+++ b/src/osgPlugins/ffmpeg/FFmpegParameters.cpp
-@@ -19,7 +19,7 @@ extern "C"
-     #include <libavutil/pixdesc.h>
- }
- 
--inline PixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); }
-+inline AVPixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); }
- 
- 
- namespace osgFFmpeg {
---- a/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp	2016-02-18 21:25:39.627923629 +0000
-+++ b/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp	2016-02-18 21:26:17.071140100 +0000
-@@ -227,8 +227,7 @@
-         if (avcodec_open2(m_context, p_codec, NULL) < 0)
-             throw std::runtime_error("avcodec_open() failed");
- 
--        m_context->get_buffer = avcodec_default_get_buffer;
--        m_context->release_buffer = avcodec_default_release_buffer;
-+        m_context->get_buffer2 = avcodec_default_get_buffer2;
- 
-     }
- 
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32063; Package guix-patches. (Mon, 09 Jul 2018 12:40:02 GMT) Full text and rfc822 format available.

Message #14 received at 32063 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 32063 <at> debbugs.gnu.org
Subject: Re: [bug#32063] Fix the build of openscenegraph and openmw
Date: Mon, 09 Jul 2018 14:39:22 +0200
Hi Alex,

Alex Kost <alezost <at> gmail.com> skribis:

> Currently, ‘openscenegraph’ and ‘openmw’ fail to build on hydra.  The
> upcoming patches fix these fails.
>
> The problem with openscenegraph was the absence of pkg-config.
>
> And the problem with openmw is that its current (which is the latest)
> version does not support qt 5.11, but it is supported in the recent git
> checkout, so I updated it to one of the latest commits, is it OK?
>
> Also I didn't reindented the package definition of openmw, because the
> introduced ‘let’ (with commit and revision) will be removed again after
> the next update.

I think you can go ahead and push both.

Thanks for fixing it!

Ludo’.




Reply sent to Alex Kost <alezost <at> gmail.com>:
You have taken responsibility. (Mon, 09 Jul 2018 16:29:02 GMT) Full text and rfc822 format available.

Notification sent to Alex Kost <alezost <at> gmail.com>:
bug acknowledged by developer. (Mon, 09 Jul 2018 16:29:02 GMT) Full text and rfc822 format available.

Message #19 received at 32063-done <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 32063-done <at> debbugs.gnu.org
Subject: Re: [bug#32063] Fix the build of openscenegraph and openmw
Date: Mon, 09 Jul 2018 19:28:37 +0300
Ludovic Courtès (2018-07-09 14:39 +0200) wrote:

> Hi Alex,
>
> Alex Kost <alezost <at> gmail.com> skribis:
>
>> Currently, ‘openscenegraph’ and ‘openmw’ fail to build on hydra.  The
>> upcoming patches fix these fails.
>>
>> The problem with openscenegraph was the absence of pkg-config.
>>
>> And the problem with openmw is that its current (which is the latest)
>> version does not support qt 5.11, but it is supported in the recent git
>> checkout, so I updated it to one of the latest commits, is it OK?
>>
>> Also I didn't reindented the package definition of openmw, because the
>> introduced ‘let’ (with commit and revision) will be removed again after
>> the next update.
>
> I think you can go ahead and push both.
>
> Thanks for fixing it!

Pushed, thanks!

-- 
Alex




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 07 Aug 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 320 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.