{"id":39,"date":"2008-01-31T10:49:25","date_gmt":"2008-01-30T23:49:25","guid":{"rendered":"http:\/\/noraisin.net\/~jan\/diary\/?p=39"},"modified":"2008-01-31T10:49:25","modified_gmt":"2008-01-30T23:49:25","slug":"its-nice-to-be-loved","status":"publish","type":"post","link":"https:\/\/noraisin.net\/diary\/?p=39","title":{"rendered":"It&#8217;s nice to be loved"},"content":{"rendered":"<p>I can&#8217;t remember if I&#8217;ve had to make a brown paper bag release, so we&#8217;ll call this the first one. On Monday, I released 0.10.16 of the <a href=\"http:\/\/gstreamer.freedesktop.org\/\">GStreamer<\/a> Core and Base modules, and earlier today I released 0.10.17 of the same after we started seeing some reports of crashes.<\/p>\n<p>It turns out that 6 months ago (0.10.14) we broke our ABI by deprecating some parts of the GstMixer class structures that we shouldn&#8217;t have, because they were in public headers resulting in a couple of base classes (GstMixerTrack and GstMixerOptions) shrinking when compiling with GST_DISABLE_DEPRECATED. Noone noticed at the time, because those bits of the class structure weren&#8217;t being used by anyone, and noone noticed if sub-classes allocated more space for their class structures than they now technically needed to.<\/p>\n<p>Since then though, all the modules that use that piece of ABI got re-compiled, and now rely on a smaller parent class size, so when we inadvertantly put the structure entries by disabling the GST_DISABLE_DEPRECATED define in release builds, the OSS, SunAudio and Pulseaudio mixer sub-classes all started crashing. Which we would have caught in the release candidate tarballs, except that none of us thought about the fact that our pre-release tarballs were still building with GST_DISABLE_DEPRECATED, where the final release was not. Our fix is to bless the &#8216;new smaller ABI&#8217;, since noone has cared in 6 months that it changed, and the newer Base release reflects that. Core got another release too with a small compilation fix for Cygwin, mostly to keep the version numbers in sync.<\/p>\n<p>I say &#8220;it&#8217;s nice to be loved&#8221;, because the broken release was out less than 2 days, and we&#8217;re already nearing 60 dupes on the <a href=\"http:\/\/bugzilla.gnome.org\/show_bug.cgi?id=513018\">bug<\/a> \ud83d\ude42<\/p>\n<p>I know this release is karma punishing me for being so bold as to try and write down GStreamer&#8217;s first time-based <a href=\"http:\/\/gstreamer.freedesktop.org\/wiki\/ReleasePlanning2008\">release schedule<\/a>. It&#8217;s too carefully calculated to show up only in the final release tarball to be anything else.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I can&#8217;t remember if I&#8217;ve had to make a brown paper bag release, so we&#8217;ll call this the first one. On Monday, I released 0.10.16 of the GStreamer Core and Base modules, and earlier today I released 0.10.17 of the same after we started seeing some reports of crashes. It turns out that 6 months &hellip; <a href=\"https:\/\/noraisin.net\/diary\/?p=39\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;It&#8217;s nice to be loved&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[],"class_list":["post-39","post","type-post","status-publish","format-standard","hentry","category-gstreamer","category-hacking"],"_links":{"self":[{"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=39"}],"version-history":[{"count":0,"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=\/wp\/v2\/posts\/39\/revisions"}],"wp:attachment":[{"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noraisin.net\/diary\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}