Bug#853424: gnash: FTBFS with agg 1:2.4-r127+dfsg1-1
Steve Langasek
steve.langasek at canonical.com
Thu Feb 22 17:20:30 UTC 2018
Package: gnash
Version: 0.8.11~git20160608-1.3
Followup-For: Bug #853424
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch
Hello,
Thanks for the hints in this bug regarding the API changes. I've prepared a
patch which fixes the gnash build against current agg, and have uploaded it
to Ubuntu. You may wish to consider applying it in Debian as well.
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
diff -Nru gnash-0.8.11~git20160608/debian/patches/agg-2.4-r127-compatibility.patch gnash-0.8.11~git20160608/debian/patches/agg-2.4-r127-compatibility.patch
--- gnash-0.8.11~git20160608/debian/patches/agg-2.4-r127-compatibility.patch 1969-12-31 16:00:00.000000000 -0800
+++ gnash-0.8.11~git20160608/debian/patches/agg-2.4-r127-compatibility.patch 2018-02-21 21:19:18.000000000 -0800
@@ -0,0 +1,149 @@
+Description: fix compatibility with agg 2.4r127
+ call agg::rgba8().premultiply() instead of obsoleted rgba8_pre()
+ fix missing consts
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Bug-Debian: https://bugs.debian.org/853424
+
+Index: gnash-0.8.11~git20160608/librender/agg/Renderer_agg_style.h
+===================================================================
+--- gnash-0.8.11~git20160608.orig/librender/agg/Renderer_agg_style.h
++++ gnash-0.8.11~git20160608/librender/agg/Renderer_agg_style.h
+@@ -614,8 +614,8 @@
+
+ // add the color to our self-made style handler (basically
+ // just a list)
+- _sh.add_color(agg::rgba8_pre(color.m_r, color.m_g, color.m_b,
+- color.m_a));
++ _sh.add_color(agg::rgba8(color.m_r, color.m_g, color.m_b,
++ color.m_a).premultiply());
+ }
+
+ void operator()(const BitmapFill& f) const {
+@@ -652,11 +652,11 @@
+
+ if (!bm) {
+ // See misc-swfmill.all/missing_bitmap.swf
+- _sh.add_color(agg::rgba8_pre(255,0,0,255));
++ _sh.add_color(agg::rgba8(255,0,0,255).premultiply());
+ }
+ else if ( bm->disposed() ) {
+ // See misc-ming.all/BeginBitmapFill.swf
+- _sh.add_color(agg::rgba8_pre(0,0,0,0));
++ _sh.add_color(agg::rgba8(0,0,0,0).premultiply());
+ }
+ else {
+ _sh.add_bitmap(dynamic_cast<const agg_bitmap_info*>(bm),
+Index: gnash-0.8.11~git20160608/librender/agg/Renderer_agg.cpp
+===================================================================
+--- gnash-0.8.11~git20160608.orig/librender/agg/Renderer_agg.cpp
++++ gnash-0.8.11~git20160608/librender/agg/Renderer_agg.cpp
+@@ -418,8 +418,8 @@
+ _ras.add_path(stroke);
+
+ // Set the color and render the scanlines
+- _renderer.color(agg::rgba8_pre(color.m_r, color.m_g,
+- color.m_b, color.m_a));
++ _renderer.color(agg::rgba8(color.m_r, color.m_g,
++ color.m_b, color.m_a).premultiply());
+
+ agg::render_scanlines(_ras, sl, _renderer);
+
+@@ -553,7 +553,7 @@
+
+ // cloning image accessor is used to avoid disturbing pixels at
+ // the edges for rotated video.
+- typedef agg::image_accessor_clone<SourceFormat> Accessor;
++ typedef agg::image_accessor_clone<const SourceFormat> Accessor;
+
+ /// Types used for different quality.
+ //
+@@ -615,7 +615,7 @@
+ }
+ else {
+ // Untested.
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> Scanline;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> Scanline;
+ Scanline sl(masks.back().getMask());
+ renderScanlines(path, rbase, sl, sg);
+ }
+@@ -852,7 +852,7 @@
+ // clear the stage using the background color
+ if ( ! _clipbounds.empty() )
+ {
+- const agg::rgba8& col = agg::rgba8_pre(bg.m_r, bg.m_g, bg.m_b, bg.m_a);
++ const agg::rgba8& col = agg::rgba8(bg.m_r, bg.m_g, bg.m_b, bg.m_a).premultiply();
+ for (const auto& bounds : _clipbounds)
+ {
+ clear_framebuffer(bounds, col);
+@@ -981,7 +981,7 @@
+ }
+ else {
+ // Mask is active!
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> sl_type;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> sl_type;
+ sl_type sl(_alphaMasks.back().getMask());
+ lr.render(sl, stroke, color);
+ }
+@@ -1425,7 +1425,7 @@
+
+ // Mask is active, use alpha mask scanline renderer
+
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> scanline_type;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> scanline_type;
+
+ scanline_type sl(_alphaMasks.back().getMask());
+
+@@ -1538,7 +1538,7 @@
+ // Woohoo! We're drawing a nested mask! Use the previous mask while
+ // drawing the new one, the result will be the intersection.
+
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> scanline_type;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> scanline_type;
+
+ scanline_type sl(_alphaMasks[mask_count - 2].getMask());
+
+@@ -1632,7 +1632,7 @@
+
+ // Mask is active, use alpha mask scanline renderer
+
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> scanline_type;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> scanline_type;
+
+ scanline_type sl(_alphaMasks.back().getMask());
+
+@@ -1740,7 +1740,7 @@
+ ras.add_path(stroke);
+
+ rgba color = cx.transform(lstyle.get_color());
+- ren_sl.color(agg::rgba8_pre(color.m_r, color.m_g, color.m_b, color.m_a));
++ ren_sl.color(agg::rgba8(color.m_r, color.m_g, color.m_b, color.m_a).premultiply());
+
+ agg::render_scanlines(ras, sl, ren_sl);
+
+@@ -1812,7 +1812,7 @@
+ // fill polygon
+ if (fill.m_a>0) {
+ ras.add_path(path);
+- ren_sl.color(agg::rgba8_pre(fill.m_r, fill.m_g, fill.m_b, fill.m_a));
++ ren_sl.color(agg::rgba8(fill.m_r, fill.m_g, fill.m_b, fill.m_a).premultiply());
+
+ agg::render_scanlines(ras, sl, ren_sl);
+ }
+@@ -1823,7 +1823,7 @@
+
+ stroke.width(1);
+
+- ren_sl.color(agg::rgba8_pre(outline.m_r, outline.m_g, outline.m_b, outline.m_a));
++ ren_sl.color(agg::rgba8(outline.m_r, outline.m_g, outline.m_b, outline.m_a).premultiply());
+
+ ras.add_path(stroke);
+
+@@ -1841,7 +1841,7 @@
+
+ // apply mask
+
+- typedef agg::scanline_u8_am<agg::alpha_mask_gray8> sl_type;
++ typedef agg::scanline_u8_am<const agg::alpha_mask_gray8> sl_type;
+
+ sl_type sl(_alphaMasks.back().getMask());
+
diff -Nru gnash-0.8.11~git20160608/debian/patches/series gnash-0.8.11~git20160608/debian/patches/series
--- gnash-0.8.11~git20160608/debian/patches/series 2016-12-20 12:44:00.000000000 -0800
+++ gnash-0.8.11~git20160608/debian/patches/series 2018-02-21 21:17:03.000000000 -0800
@@ -1,2 +1,3 @@
00sensible
fix-boost-1.60.patch
+agg-2.4-r127-compatibility.patch
More information about the pkg-flash-devel
mailing list