rpms/codeina/devel codeina-f8-wishlist.patch, 1.2, 1.3 codeina-less-chat.patch, 1.2, 1.3 codeina-link.patch, 1.2, 1.3 codeina-new-bundles.patch, NONE, 1.1 .cvsignore, 1.5, 1.6 codeina.spec, 1.18, 1.19 sources, 1.5, 1.6 codeina-fedora-installer.patch, 1.1, NONE codeina-fix-pynotify-check.patch, 1.1, NONE

Bastien Nocera (hadess) fedora-extras-commits at redhat.com
Tue Apr 8 20:51:58 UTC 2008


Author: hadess

Update of /cvs/pkgs/rpms/codeina/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv29311

Modified Files:
	.cvsignore codeina.spec sources 
Added Files:
	codeina-f8-wishlist.patch codeina-less-chat.patch 
	codeina-link.patch codeina-new-bundles.patch 
Removed Files:
	codeina-fedora-installer.patch 
	codeina-fix-pynotify-check.patch 
Log Message:
* Tue Apr 08 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.1-8
- Revert to 0.10.1 from the F-8 build


codeina-f8-wishlist.patch:

Index: codeina-f8-wishlist.patch
===================================================================
RCS file: codeina-f8-wishlist.patch
diff -N codeina-f8-wishlist.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ codeina-f8-wishlist.patch	8 Apr 2008 20:51:38 -0000	1.3
@@ -0,0 +1,506 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog	(revision 827)
++++ ChangeLog	(working copy)
+@@ -1,3 +1,24 @@
++2007-09-29  Thomas Vander Stichele  <thomas at apestaart dot org>
++
++	patch by: Bastien Nocera
++
++	* codeina/httpdownload.py:
++	* codeina/listview.py:
++	* codeina/main.py:
++	* codeina/productlist.py:
++	* codeina/requiredplugin.py:
++	* data/available-plugins.xml.in:
++	  Add sha1sums to plugins, and use it to verify plugin download.
++	  See https://bugzilla.redhat.com/show_bug.cgi?id=305421
++	  Add price column header.
++	  See https://bugzilla.redhat.com/show_bug.cgi?id=299251
++	  Select free and matching codecs by default.
++	  See https://bugzilla.redhat.com/show_bug.cgi?id=305411
++	  Don't silently switch to the "all available" view when requesting a
++	  plugin that's not available, instead, show an empty list, and
++	  error
++	  message with an explanation on how to see all the plugins
++
+ === release 0.10.1 ===
+ 
+ 2007-08-27  Thomas Vander Stichele  <thomas at apestaart dot org>
+Index: codeina/requiredplugin.py
+===================================================================
+--- codeina/requiredplugin.py	(revision 827)
++++ codeina/requiredplugin.py	(working copy)
+@@ -51,6 +51,10 @@
+                     if self.req_type in self.valid_req_types:
+                         self.valid = True
+ 
++    def __repr__(self):
++        return "<%s for %s> " % (self.__class__.__name__, self.req_string)
++
++
+   # currently we're only interested in specialising mp3, we should probably
+   # do something more generic later that covers other common formats too
+     def is_mp3_decoder(self):
+Index: codeina/listview.py
+===================================================================
+--- codeina/listview.py	(revision 827)
++++ codeina/listview.py	(working copy)
+@@ -35,6 +35,10 @@
+ 
+ 
+ class ListView(gtk.VBox):
++    """
++    @ivar productlist: list of products, set when creating the listview
++    @type productlist: L{codeina.productlist.ProductList}
++    """
+ 
+     def __init__(self):
+         gtk.VBox.__init__(self)
+@@ -53,7 +57,9 @@
+         self.view = gtk.TreeView()
+         row_height = self.get_estimated_row_height()
+         row_padding = 2  # assumed, random number
+-        self.view.set_size_request(-1, (row_height + row_padding) * 8)
++        headers_height = 12 # assumed
++        self.view.set_size_request(-1,
++            (row_height + row_padding) * 8 + headers_height)
+         self.productlist = None
+         self.store = gtk.ListStore(object)
+         self.store.set_default_sort_func(self.sort_func, self)
+@@ -61,9 +67,8 @@
+         self.model = self.store.filter_new()
+         self.model.set_visible_func(self.visible_func, self)
+         self.view.set_model(self.model)
+-        self.view.set_headers_visible(False)
+         self.view.set_rules_hint(True)
+-        column = gtk.TreeViewColumn("product")
++        column = gtk.TreeViewColumn(_("Product"))
+         text_renderer = gtk.CellRendererText()
+         text_renderer.set_property('xpad', 6)
+         text_renderer.set_property('ypad', 3)
+@@ -79,7 +84,7 @@
+       # the expand property to False, so that things behave right if the
+       # user makes the window wider
+ 
+-        column = gtk.TreeViewColumn('install-status')
++        column = gtk.TreeViewColumn(_('Installed?'))
+         status_renderer = gtk.CellRendererText()
+         column.pack_start(status_renderer, True)
+         status_renderer.set_property('xalign', 0.5)
+@@ -90,7 +95,7 @@
+         column.set_expand(False)
+         self.view.append_column(column)
+ 
+-        column = gtk.TreeViewColumn('price')
++        column = gtk.TreeViewColumn(_('Price'))
+         price_renderer = gtk.CellRendererText()
+         column.pack_end(price_renderer, False)
+         price_renderer.set_property('xalign', 1.0)
+@@ -102,7 +107,7 @@
+ 
+      # Put check boxes in separate column for nicer activation
+ 
+-        column = gtk.TreeViewColumn("toggle")
++        column = gtk.TreeViewColumn("")
+         toggle_renderer = gtk.CellRendererToggle()
+         toggle_renderer.set_property('activatable', True)
+         toggle_renderer.connect('toggled', self.cell_toggled_cb, self)
+@@ -145,13 +150,16 @@
+             return False
+         flav = product.get_best_flavor_for_current_system()
+         if not flav:
++            print "product %r does not have flavor" % product
+             product.set_selected(False)
+             return False
+         if not self.required_plugins:
+             return True
+         else:
++            print "Checking visibility of product %r" % product
+             for req in self.required_plugins:
+                 if product.provides_requirement(req):
++                    print "provides requirement %r, showing" % req
+                     return True
+             return False
+ 
+@@ -229,7 +237,7 @@
+                              data):
+         product = tree_model.get_value(tree_iter, 0)
+         if product.price:
+-            renderer.set_property('text', "%.0f€" % product.price)
++            renderer.set_property('text', "%.0f €" % product.price)
+         else:
+             renderer.set_property('text', _("Free"))
+         return
+@@ -238,11 +246,16 @@
+         self.store.clear()
+         if self.productlist:
+             for p in self.productlist.products:
++                print "appending product %r" % p
+                 row = self.store.append()
+                 self.store.set_value(row, 0, p)
+         return
+ 
+     def set_product_list(self, product_list):
++        """
++        @ivar productlist: list of products the view should handle
++        @type productlist: L{codeina.productlist.ProductList}
++        """
+         if self.productlist != product_list:
+             self.productlist = product_list
+             self.fill_with_products()
+Index: codeina/httpdownload.py
+===================================================================
+--- codeina/httpdownload.py	(revision 827)
++++ codeina/httpdownload.py	(working copy)
+@@ -31,7 +31,9 @@
+ import thread
+ import urllib2
+ import xdg.BaseDirectory
++import sha
+ 
++from codeina.extern.log import log
+ from gettext import gettext as _
+ 
+ # Defaults to ~/.local/share/codeina/downloads/ in most cases
+@@ -43,7 +45,7 @@
+ Downloads a HTTP URI to file in a separate thread and iterates the
+ GLib/Gtk main context until either the download is done or an error occurred
+ """
+-class HttpDownload:
++class HttpDownload(log.Loggable):
+     """
+     @ivar  content_length: size in bytes of the download
+     """
+@@ -59,6 +61,7 @@
+ 
+     def __init__ (self):
+         self.url = None
++        self.sha1sum = None
+         self.directory = None
+         self.fn = None
+         self.done = False
+@@ -71,7 +74,7 @@
+     def get_error_msg_from_error(self, err):
+         msg = _("Unexpected error of type %s") % type(err)
+         try:
+-            raise err        
++            raise err
+         except urllib2.HTTPError, e:
+             if e.code == 403:
+               msg = _("Access to this file is forbidden")
+@@ -105,7 +108,11 @@
+         return msg
+ 
+     """ Iterates the default GLib main context until the download is done """
+-    def run(self, url, directory, fn, message=None):
++    def run(self, url, directory, fn, sha1sum, message=None):
++        self.debug("Running download for %s (sha1sum=%s)" % (os.path.join(directory, fn), sha1sum))
++        if sha1sum and self.verify(os.path.join(directory, fn), sha1sum):
++            self.debug("Already downloaded %s" % os.path.join(directory, fn))
++            return None
+ 
+         if self.url:
+             return _("Download already in progress")
+@@ -116,6 +123,7 @@
+         self.url = url
+         self.directory = directory
+         self.fn = fn
++        self.sha1sum = sha1sum
+         self.done = False
+         self.err = None
+         self.bytes_read = -1
+@@ -165,6 +173,23 @@
+ 
+         return not self.done
+ 
++    """ Check whether a file matches the SHA1 sum given """
++    def verify(self, fn, sha1sum):
++        if not sha1sum:
++            self.debug("No sha1sum or filename, can't check (%s), "
++                "so assuming true" % fn)
++            return True
++
++        fs = open(fn,'rb').read()
++        real_sha1sum = sha.new(fs).hexdigest()
++        if real_sha1sum == sha1sum:
++            self.debug("%s matched its sha1sum" % fn)
++            return True
++
++        self.debug("%s didn't match its sha1sum (got %s expected %s)" % (
++            fn, real_sha1sum, sha1sum))
++        return False
++
+     """ Thread where all the downloading and file writing happens """
+     def thread_func(self):
+ 
+@@ -191,8 +216,8 @@
+                 pass
+ 
+           # Now create a temp file there
+-            tmpfile_handle, tmpfile_path = tempfile.mkstemp('.incomplete',\
+-                                                            'codeina-download',\
++            tmpfile_handle, tmpfile_path = tempfile.mkstemp('.incomplete',
++                                                            'codeina-download',
+                                                             self.directory)
+ 
+             while not self.cancelled:
+@@ -211,6 +236,12 @@
+                     os.remove(tmpfile_path)
+                 except:
+                     pass
++            elif not self.verify(tmpfile_path, self.sha1sum):
++                try:
++                    os.remove(tmpfile_path)
++                except:
++                    pass
++                err = _("Downloaded file is corrupted")
+             else:
+                 os.rename(tmpfile_path, os.path.join(self.directory, self.fn))
+ 
+@@ -277,11 +308,11 @@
+     def destroy(self):
+         self.dlg.destroy()
+ 
+-    def run(self, url, directory, fn, message):
++    def run(self, url, directory, fn, sha1sum, message):
+         if message:
+             self.set_dialog_text(message)
+         self.dlg.present()
+-        err = HttpDownload.run(self, url, directory, fn, None)
++        err = HttpDownload.run(self, url, directory, fn, sha1sum, None)
+         self.dlg.hide()
+         return err
+ 
+@@ -310,11 +341,16 @@
+ 
+ 
+ if __name__ == "__main__":
+-  # Different URLs for different errors
++    log.init('CODEINA_DEBUG')
++    log.setPackageScrubList('codeina')
++
++    # Different URLs for different errors
+     #url='http://shop.fluendo.com/images/mpeg.png'
+     #url='http://shop.fluendo.com/tpm-codeina-test.bz2'
+     #url='http://example.com/gimme-a-404'
+-    url='http://antihost.atari/tpm-codeina-test.bz2'
++    #url='http://antihost.atari/tpm-codeina-test.bz2'
++    url="http://shop.fluendo.com/pub/fluendo-mp3-2.i386.tar.bz2"
++    sha1sum='117f85e118dab2d9f7c9bb10554fbc4e8f7fdf38'
+ 
+     download_dir = DEFAULT_DOWNLOAD_DIR
+ 
+@@ -322,7 +358,7 @@
+ 
+   # Do the downloading, with dialog
+     d = HttpDownloadDialog()
+-    e = d.run(url, download_dir, fn, "Downloading '%s'" % fn)
++    e = d.run(url, download_dir, fn, sha1sum, "Downloading '%s'" % fn)
+     if d.cancelled:
+         print "Download cancelled"
+     elif e:
+Index: codeina/productlist.py
+===================================================================
+--- codeina/productlist.py	(revision 827)
++++ codeina/productlist.py	(working copy)
+@@ -103,13 +103,19 @@
+         d['summary'] = self._get_localized(summaries)
+         d['flavors'] = flavors
+         product = Product(**d)
++
++        # Select the free-not-fully-installed plugins by default
++        if price == 0.0:
++            product.selected = not product.is_fully_installed()
++
+         return product
+ 
+     def _parse_flavor(self, node):
+         d = {}
+         required = ('system', 'arch', 'distro', 'distro-version',
+             'core-req', 'base-req', 'last-modified', 'uri', 'comment')
+-        attrs = self.parseAttributes(node, required=required)
++        optional = ('sha1sum',)
++        attrs = self.parseAttributes(node, required=required, optional=optional)
+         for i in range(0, len(required)):
+             # pesky - -> _ translation for attributes
+             key = '_'.join(required[i].split('-'))
+@@ -125,7 +131,6 @@
+         flavor = ProductFlavor(**d)
+         return flavor
+ 
+-
+     def _parse_name(self, node):
+         # parse a name and its language
+         # return tuple of language, name
+@@ -204,6 +209,9 @@
+ 
+     selected = False # for list view
+ 
++    def __repr__(self):
++        return "<%s for %s> " % (self.__class__.__name__, self.name)
++
+     def get_selected(self):
+         return self.selected
+ 
+@@ -398,6 +406,7 @@
+     version = None
+     uri = None
+     comment = None
++    sha1sum = None
+ 
+     def is_compatible(self, system, arch, distro, core_version,
+                       base_version):
+@@ -418,18 +427,22 @@
+ 
+ 
+ if __name__ == "__main__":
+-    plist = ProductList()
+-    try:
+-        plist.read_from_xml(open("available-plugins.xml").read())
+-        print "done, %d products:" % len(plist.products)
+-        for p in plist.products:
+-            print " * %s (%.2f EUR)" % (p.name, p.price)
+-            for f in p.flavors:
+-                print "     - %s %s %s" % (f.system, f.arch, f.distro)
+-    except:
+-        print "oops, couldn't parse products XML list"
++    xml_data = open("../data/available-plugins.xml")
++    parser = ProductListParser()
++    plist = parser.parse(xml_data)
++    print "done, %d products:" % len(plist.products)
++    for p in plist.products:
++        print " * %s (%.2f EUR)" % (p.name, p.price)
++        for f in p.flavors:
++            print "     - %s %s %s %s %s" % (f.system, f.arch, f.distro, os.path.basename(f.uri), f.sha1sum)
+ 
+-#  flavs = plist.products[0].find_compatible_flavors ("Linux", "ppc64", None, Version("0.10.9"), Version ("0.10.9"))
+-#  print "Matching flavors:"
+-#  for f in flavs:
+-#    print " - %s %s %s %s" % (f.product.name, f.system, f.arch, f.distro)
++    f = plist.products[9].get_best_flavor_for_current_system()
++    print "Best flavor:"
++    print " - %s %s %s %s %s" % (f.system, f.arch, f.distro, os.path.basename(f.uri), f.sha1sum)
++
++    flavs = plist.products[9].find_compatible_flavors ("Linux", "i386", None, check.Version("0.10.4"), check.Version("0.10.4"))
++#    flavs = plist.products[0].find_compatible_flavors ("Linux", "ppc64", None, Version("0.10.9"), Version ("0.10.9"))
++    print "Matching flavors:"
++    for f in flavs:
++        print " - %s %s %s %s %s" % (f.system, f.arch, f.distro, os.path.basename(f.uri), f.sha1sum)
++
+Index: codeina/main.py
+===================================================================
+--- codeina/main.py	(revision 827)
++++ codeina/main.py	(working copy)
+@@ -241,6 +241,18 @@
+ 
+         self.vbox.pack_start(self.listview, True)
+ 
++      # The label showing we have no matching plugins
++
++        self.no_plugins_box = gtk.HBox()
++        img = gtk.Image()
++        img.set_from_stock(gtk.STOCK_DIALOG_WARNING, gtk.ICON_SIZE_DIALOG)
++        self.no_plugins_box.pack_start(img, False, 0, 6)
++        label = gtk.Label(
++            _("There are no plugins available for the requested functionality.")
++            + "\n" + _("Please select the full plugins list in the View menu."))
++        self.no_plugins_box.pack_start(label, False)
++        self.vbox.pack_start(self.no_plugins_box, False)
++
+       # status bar
+ 
+         self.statusbar = gtk.Statusbar()
+@@ -248,13 +260,15 @@
+         self.statusbar.show()
+         self.vbox.pack_end(self.statusbar, False)
+ 
+-      # only show matching plugin packages if there are required plugins (?)
++      # only show matching plugin packages if there are required plugins
+ 
+         if self.required_plugins and len(self.required_plugins) > 0:
++            self.debug("Showing the matching plugins list")
+             self.actiongroup.get_action('ViewMatching').set_active(True)
+         else:
++            self.debug("Showing all the plugins")
+             self.actiongroup.get_action('ViewAllAvailable').set_active(True)
+-            self.actiongroup.get_action('ViewMatching').set_visible(False)
++            self.actiongroup.get_action('ViewMatching').set_sensitive(False)
+ 
+       # button box
+ 
+@@ -341,7 +355,7 @@
+         button.set_property('can-default', True)
+         return button
+ 
+-    def download_uri(self, dialog, name, uri):
++    def download_uri(self, dialog, name, uri, sha1sum):
+         """
+         Download the given uri.
+ 
+@@ -352,7 +366,8 @@
+         self.debug("Trying to download '%s'" % uri)
+         dl_dir = DEFAULT_DOWNLOAD_DIR
+         fn = os.path.basename(uri)
+-        err_msg = dialog.run(uri, dl_dir, fn, _("Downloading '%s'") % name)
++        err_msg = dialog.run(uri, dl_dir, fn, sha1sum,
++            _("Downloading '%s'") % name)
+         if dialog.cancelled:
+             self.debug("Download cancelled")
+             return None
+@@ -378,7 +393,7 @@
+ 
+         Returns: whether the EULA was accepted.
+         """
+-        path = self.download_uri(dialog, name, eula_uri)
++        path = self.download_uri(dialog, name, eula_uri, None)
+         if not path:
+             self.debug('Could not download EULA')
+             return False
+@@ -412,7 +427,10 @@
+                     continue
+ 
+             flavor = p.get_best_flavor_for_current_system()
+-            path = self.download_uri(d, p.name, flavor.uri)
++            self.debug("Selected flavour %s %s %s %s %s" % (
++                flavor.system, flavor.arch, flavor.distro,
++                os.path.basename(flavor.uri), flavor.sha1sum))
++            path = self.download_uri(d, p.name, flavor.uri, flavor.sha1sum)
+ 
+             if not path:
+                 self.debug('User cancelled')
+@@ -513,8 +531,12 @@
+             self.listview.show_matching(self.required_plugins)
+             no_rows_txt = _(
+                 'No matching plugins available for your system yet.')
++
+         if self.listview.get_visible_rows() == 0:
+             self.set_status_text(no_rows_txt)
++            self.no_plugins_box.show_all()
++        else:
++            self.no_plugins_box.hide()
+ 
+     def do_install(self, filenames):
+         failed_installs = []
+Index: data/available-plugins.xml.in
+===================================================================
+--- data/available-plugins.xml.in	(revision 827)
++++ data/available-plugins.xml.in	(working copy)
+@@ -50,13 +50,15 @@
+                     core-req="0.10.3" base-req="0.10.3"
+                     last-modified="2007-05-25"
+                     uri="http://shop.fluendo.com/pub/fluendo-mp3-2.i386.tar.bz2"
+-                    comment="Tested on FC3, FC4, FC5, and Ubuntu 6.10 (edgy)"
++		    comment="Tested on FC3, FC4, FC5, and Ubuntu 6.10 (edgy)"
++		    sha1sum="117f85e118dab2d9f7c9bb10554fbc4e8f7fdf38"
+     />
+     <flavor system="Linux" arch="x86_64" distro="generic" distro-version="any"
+                     core-req="0.10.3" base-req="0.10.3"
+                     last-modified="2007-05-25"
+                     uri="http://shop.fluendo.com/pub/fluendo-mp3-2.x86_64.tar.bz2"
+-                    comment=""
++		    comment=""
++		    sha1sum="47e2169453c4025e88edd6e4e1b64da26cbf64c6"
+     />
+   </product>
+ 

codeina-less-chat.patch:

Index: codeina-less-chat.patch
===================================================================
RCS file: codeina-less-chat.patch
diff -N codeina-less-chat.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ codeina-less-chat.patch	8 Apr 2008 20:51:38 -0000	1.3
@@ -0,0 +1,29 @@
+Index: listview.py
+===================================================================
+--- listview.py	(revision 828)
++++ listview.py	(working copy)
+@@ -150,16 +150,13 @@
+             return False
+         flav = product.get_best_flavor_for_current_system()
+         if not flav:
+-            print "product %r does not have flavor" % product
+             product.set_selected(False)
+             return False
+         if not self.required_plugins:
+             return True
+         else:
+-            print "Checking visibility of product %r" % product
+             for req in self.required_plugins:
+                 if product.provides_requirement(req):
+-                    print "provides requirement %r, showing" % req
+                     return True
+             return False
+ 
+@@ -246,7 +243,6 @@
+         self.store.clear()
+         if self.productlist:
+             for p in self.productlist.products:
+-                print "appending product %r" % p
+                 row = self.store.append()
+                 self.store.set_value(row, 0, p)
+         return

codeina-link.patch:

Index: codeina-link.patch
===================================================================
RCS file: codeina-link.patch
diff -N codeina-link.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ codeina-link.patch	8 Apr 2008 20:51:38 -0000	1.3
@@ -0,0 +1,43 @@
+diff -ru codeina-0.10.1/codeina/distro/fedora.py codeina-0.10.1/codeina/distro/fedora.py
+--- codeina-0.10.1/codeina/distro/fedora.py	2007-08-27 07:16:41.000000000 -0400
++++ codeina-0.10.1/codeina/distro/fedora.py	2007-10-09 13:17:39.000000000 -0400
+@@ -23,6 +23,7 @@
+ # Boston, MA 02111-1307, USA.
+ 
+ import gtk
++import sexy
+ import os
+ 
+ from codeina.extern.log import log
+@@ -31,19 +32,27 @@
+ 
+ 
+ def get_dialog(parent, products):
++    def show_url(widget, url):
++        os.system("gnome-open %s" % (url,))
++        
+     log.debug('fedora', 'products: %r', products)
+     dlg = gtk.MessageDialog(parent=parent, flags=0,
+                             type=gtk.MESSAGE_INFO,
+                             buttons=gtk.BUTTONS_CANCEL,
+                             message_format=\
+                             _('Proprietary and free formats'))
+-    dlg.add_button(_("Go to _webshop browser"), gtk.RESPONSE_OK)
++    link = sexy.UrlLabel("For more information, see <a href=\"http://fedoraproject.org/codecbuddy/\">About Proprietary and Free Formats</a>.")
++    dlg.vbox.add(link)
++    link.connect("url-activated", show_url)
++    link.show()
++    dlg.add_button(_("_See available options"), gtk.RESPONSE_OK)
+     dlg.set_default_response(gtk.RESPONSE_OK)
+     # As per HIG, empty dialogue title
+     dlg.set_title(_(''))
+-    str1 = _("Fedora does not condone the use of audio and video codecs that require patent licenses to be written and/or distributed.")
+-    str2 = _("But due to the existence of such patents, Free Software implementations of such codecs might not be legal in the country you live in, or the file you're trying to play back might not be available in free formats such as Ogg.")
+-    str3 = _("The Fluendo webshop has free and for-pay plugins for you to download.")
++    str1 = _("Fedora has the mission of always being freely re-distributable; this means you are free to give your copy of Fedora to anyone else.")
++    str2 = _("Unfortunately, that means that we cannot ship support for certain multimedia codecs, as they require patent licenses before you can view or play media that use them. Imagine if you had to pay a license fee before reading your e-mail, or viewing a picture on the web. This is why Fedora supports free formats, such as Ogg Vorbis and Theora.")
++    str3 = _("However, there are companies and communities that do offer support for certain codecs under Fedora. If you would like to install support, please proceed to see the available options.")
++    
+     str = str1 + "\n\n" + str2 + "\n\n" + str3
+     dlg.format_secondary_text(str)
+     return dlg

codeina-new-bundles.patch:

--- NEW FILE codeina-new-bundles.patch ---
Index: data/available-plugins.xml.in
===================================================================
--- data/available-plugins.xml.in	(revision 1422)
+++ data/available-plugins.xml.in	(working copy)
@@ -67,9 +67,39 @@
            rank="100"
            price="EUR 28.00"
            logo-uri="http://download.fluendo.com/images/fluendopetal100.png"
+           provides='element-fluwmadec; decoder-audio/x-wma, wmaversion=(int){ 1, 2, 3, 4 }; element-flump3dec; decoder-audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]; element-fluac3dec; decoder-audio/x-private1-ac3; decoder-audio/ac3; decoder-audio/x-ac3; element-flumpeg2vdec; decoder-video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false; element-flupsdemux; decoder-video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)true; element-flutsdemux; decoder-video/mpegts; element-fluasfdemux; decoder-video/x-ms-asf; decoder-audio/x-ms-asf; element-flummssrc; urisource-mms; urisource-mmsh; urisource-mmsu; urisource-mmst; element-fluisodemux; decoder-video/quicktime; decoder-audio/x-m4a; decoder-application/x-3gp; element-flumpeg4vdec; decoder-video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; decoder-video/x-xvid; decoder-video/x-divx, divxversion=(int){ 4, 5 }; decoder-video/x-h263; element-fluwmvdec; decoder-video/x-wmv, wmvversion=(int)3; ele!
 ment-flumcaacdec; decoder-audio/mpeg, mpegversion=(int){ 2, 4 }; decoder-audio/x-raw-int, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ], width=(int)16, depth=(int)16, signed=(boolean)true, endianness=(int)1234; element-fluh264dec; decoder-video/x-h264; decoder-video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, YV12 }, pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ]'>
+    <_name>Complete Set of Playback Plugins</_name>
+    <_summary>All currently available Fluendo audio and video decoders and demuxers, such as ASF, WMV, WMA, MP3, AC3, MPEG2, MPEG4, and MMS</_summary>
+
+    <!-- FIXME: requirements, version, uri, comment: -->
+    <!-- FIXME: last-modified artificially high to test detection of available updates -->
+    <flavor system="Linux" arch="i386" distro="generic" distro-version="any"
+                    core-req="0.10.0" base-req="0.10.0"
+                    last-modified="2008-02-04"
+                    uri="http://download.fluendo.com/plugins/fluendo-mpeg-bundle-1.i386.tar.bz2"
+                    comment="Tested on FC3, FC4, FC5, and Ubuntu 6.10 (edgy)"
+    />
+  </product>
+
+  <!-- ******************* Complete Playback Bundle on x86_64 ************ -->
+  <product nick="playback-bundle-64"
+           id="42"
+           rank="100"
+           price="EUR 28.00"
+           logo-uri="http://download.fluendo.com/images/fluendopetal100.png"
            provides='element-fluwmadec; decoder-audio/x-wma, wmaversion=(int){ 1, 2, 3, 4 }; element-flump3dec; decoder-audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]; element-fluac3dec; decoder-audio/x-private1-ac3; decoder-audio/ac3; decoder-audio/x-ac3; element-flumpeg2vdec; decoder-video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false; element-flupsdemux; decoder-video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)true; element-flutsdemux; decoder-video/mpegts; element-fluasfdemux; decoder-video/x-ms-asf; decoder-audio/x-ms-asf; element-flummssrc; urisource-mms; urisource-mmsh; urisource-mmsu; urisource-mmst; element-fluisodemux; decoder-video/quicktime; decoder-audio/x-m4a; decoder-application/x-3gp; element-flumpeg4vdec; decoder-video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; decoder-video/x-xvid; decoder-video/x-divx, divxversion=(int){ 4, 5 }; decoder-video/x-h263; element-fluwmvdec; decoder-video/x-wmv, wmvversion=(int)3'>
     <_name>Complete Set of Playback Plugins</_name>
     <_summary>All currently available Fluendo audio and video decoders and demuxers, such as ASF, WMV, WMA, MP3, AC3, MPEG2, MPEG4, and MMS</_summary>
+
+    <!-- FIXME: requirements, version, uri, comment: -->
+    <!-- FIXME: last-modified artificially high to test detection of available updates -->
+    <!-- FIXME: requirements, version, uri, comment: -->
+    <flavor system="Linux" arch="x86_64" distro="generic" distro-version="any"
+                    core-req="0.10.0" base-req="0.10.0"
+                    last-modified="2008-02-04"
+                    uri="http://download.fluendo.com/plugins/fluendo-mpeg-bundle-1.x86_64.tar.bz2"
+                    comment="Tested on FC3, FC4, FC5, and Ubuntu 6.10 (edgy)"
+    />
   </product>
 
   <!-- ******************* Windows Media Video Bundle ******************** -->


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/codeina/devel/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- .cvsignore	4 Apr 2008 18:03:28 -0000	1.5
+++ .cvsignore	8 Apr 2008 20:51:38 -0000	1.6
@@ -1 +1 @@
-codeina-0.10.1-r1421-2.tar.bz2
+codeina-0.10.1.tar.bz2


Index: codeina.spec
===================================================================
RCS file: /cvs/pkgs/rpms/codeina/devel/codeina.spec,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- codeina.spec	7 Apr 2008 11:23:16 -0000	1.18
+++ codeina.spec	8 Apr 2008 20:51:38 -0000	1.19
@@ -8,28 +8,19 @@
 
 Name:		codeina
 Version:	0.10.1
-Release:	7.r%{svn_rev}.1%{?dist}
+Release:	8%{?dist}
 Summary:	GStreamer Codec Installation Application
 
 Group:		Applications/Internet
 License:	GPLv2.1+
 URL:		https://core.fluendo.com/gstreamer/trac/browser/codeina
 # Upstream SVN repository is at https://core.fluendo.com/gstreamer/svn/codeina/trunk/
-#
-# To create this new tarball
-# svn co -r1421 https://core.fluendo.com/gstreamer/svn/codeina/trunk/ codeina
-# cd codeina
-# patch -p0 < ../codeina-fix-pynotify-check.patch
-# patch -p0 < ../codeina-fedora-installer.patch
-# ./autogen.sh && make dist
-# mv codeina-0.10.2.tar.bz codeina-0.10.1-r1421-2.tar.bz2
-#
-# Older version had:
-# Source: http://www.fluendo.com/downloads/codeina/%{name}-%{version}-2.tar.bz2
-Source:		%{name}-%{version}-r%{svn_rev}-2.tar.bz2
+Source:		http://www.fluendo.com/downloads/codeina/%{name}-%{version}.tar.bz2
 Source1:	gst-install-plugins-helper.sh
-Source2:	codeina-fix-pynotify-check.patch
-Source3:	codeina-fedora-installer.patch
+Patch0:         codeina-f8-wishlist.patch
+Patch1:         codeina-less-chat.patch
+Patch2:		codeina-link.patch
+Patch3:		codeina-new-bundles.patch
 BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 Requires:	python >= 2.3
@@ -38,21 +29,11 @@
 Requires:	pygtk2 >= %{pygtk_minver}
 Requires:	pyxdg
 Requires:	python-sexy
-Requires:	PyYAML PyXML pyxdg pyOpenSSL python-twisted-core python-twisted-web
-Requires:	gnome-python2-gtkmozembed
-Requires:	notify-python
-Requires:	redhat-lsb
-Requires:	gnome-packagekit
 
 BuildRequires:	python-devel >= 2.3
 
 BuildRequires:	gettext desktop-file-utils gawk
 BuildRequires:	intltool
-BuildRequires:	gnome-python2-gtkmozembed
-BuildRequires:	notify-python
-BuildRequires:	PyYAML PyXML pyxdg pyOpenSSL python-twisted-core python-twisted-web
-BuildRequires:	pygtk2 >= %{pygtk_minver}
-BuildRequires:	gstreamer-python >= %{gstpy_minver}
 
 BuildArch:	noarch
 
@@ -60,7 +41,13 @@
 Codeina installs codecs for GStreamer.
 
 %prep
-%setup -q -n %{name}-0.10.2
+%setup -q
+%patch0 -p0 -b .old
+pushd codeina/
+%patch1 -p0 -b .chat
+popd
+%patch2 -p1 -b .link
+%patch3 -p0 -b .bundles
 
 %build
 %configure
@@ -72,8 +59,6 @@
 # final location
 make DESTDIR=$RPM_BUILD_ROOT install
 
-rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/codeina/providers/{fedora_5.xml,mandrivalinux_2008.0.xml,mandrivalinux_2008.1.xml,plf_2008.1.xml,ubuntu_7.10.xml}
-
 install -D -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_libexecdir}/gst-install-plugins-helper
 
 %find_lang codeina
@@ -85,16 +70,14 @@
 %defattr(-,root,root,-)
 %doc ChangeLog COPYING README AUTHORS
 %{_bindir}/codeina
-%{_bindir}/codeina.bin
-%{_sysconfdir}/codeina
-%{_sysconfdir}/xdg/autostart/codeina-update.desktop
-%{_datadir}/applications/codeina.desktop
-%{_datadir}/autostart/codeina-update-kde.desktop
 %{_libexecdir}/gst-install-plugins-helper
 %{python_sitelib}/codeina
 %{_datadir}/%{name}/
 
 %changelog
+* Tue Apr 08 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.1-8
+- Revert to 0.10.1 from the F-8 build
+
 * Fri Apr 04 2008 - Bastien Nocera <bnocera at redhat.com> - 0.10.1-7.r1421.1
 - Add Requires on redhat-lsb
 - Add patch to provide an installer via gnome-packagekit


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/codeina/devel/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sources	4 Apr 2008 18:03:28 -0000	1.5
+++ sources	8 Apr 2008 20:51:38 -0000	1.6
@@ -1 +1 @@
-75802bded303474fc9007b32b1f9ebd4  codeina-0.10.1-r1421-2.tar.bz2
+3688bca6013dfedfeb1b0c53dd652b33  codeina-0.10.1.tar.bz2


--- codeina-fedora-installer.patch DELETED ---


--- codeina-fix-pynotify-check.patch DELETED ---




More information about the fedora-extras-commits mailing list