for envkey, envval in app.env.iteritems():
             envval = app._replace_paths(envval)
             node.env[envkey].append(envval)
+    
+    if app.rpmFusion:
+        node.rpmFusion = True
 
 def connect_node_netpipe(testbed_instance, node_guid, netpipe_guid):
     node = testbed_instance._elements[node_guid]
                 "flags": Attribute.DesignOnly,
                 "validation_function": validation.is_string
             }),
+    "rpm-fusion": dict({
+                "name": "rpmFusion",
+                "help": "True if required packages can be found in the RpmFusion repository",
+                "type": Attribute.BOOL,
+                "flags": Attribute.DesignOnly,
+                "value": False,
+                "validation_function": validation.is_bool
+            }),
     "sources": dict({
                 "name": "sources",
                 "help": "Space-separated list of regular files to be deployed in the working path prior to building. "
             "configure_function": configure_application,
             "box_attributes": ["command", "sudo", "stdin",
                                "depends", "build-depends", "build", "install",
-                               "sources" ],
+                               "sources", "rpm-fusion" ],
             "connector_types": ["node"],
             "traces": ["stdout", "stderr", "buildlog"]
         }),
             "create_function": create_dependency,
             "preconfigure_function": configure_dependency,
             "box_attributes": ["depends", "build-depends", "build", "install",
-                               "sources" ],
+                               "sources", "rpm-fusion" ],
             "connector_types": ["node"],
             "traces": ["buildlog"]
         }),
 
     
     DEPENDS_PIDFILE = '/tmp/nepi-depends.pid'
     DEPENDS_LOGFILE = '/tmp/nepi-depends.log'
+    RPM_FUSION_URL = 'http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm'
+    RPM_FUSION_URL_F12 = 'http://download1.rpmfusion.org/free/fedora/releases/12/Everything/x86_64/os/rpmfusion-free-release-12-1.noarch.rpm'
     
     def __init__(self, api=None):
         if not api:
         self.required_packages = set()
         self.required_vsys = set()
         self.pythonpath = []
+        self.rpmFusion = False
         self.env = collections.defaultdict(list)
         
         # Testbed-derived attributes
             pidfile = self.DEPENDS_PIDFILE
             logfile = self.DEPENDS_LOGFILE
             
+            # If we need rpmfusion, we must install the repo definition and the gpg keys
+            if self.rpmFusion:
+                if self.operatingSystem == 'f12':
+                    # Fedora 12 requires a different rpmfusion package
+                    RPM_FUSION_URL = self.RPM_FUSION_URL_F12
+                else:
+                    # This one works for f13+
+                    RPM_FUSION_URL = self.RPM_FUSION_URL
+                    
+                rpmFusion = (
+                  '( rpm -q $(rpm -q -p %(RPM_FUSION_URL)s) || rpm -i %(RPM_FUSION_URL)s ) &&'
+                ) % {
+                    'RPM_FUSION_URL' : RPM_FUSION_URL
+                }
+            else:
+                rpmFusion = ''
+            
             # Start process in a "daemonized" way, using nohup and heavy
             # stdin/out redirection to avoid connection issues
             (out,err),proc = rspawn.remote_spawn(
-                "( yum -y install %(packages)s && echo SUCCESS || echo FAILURE )" % {
+                "( %(rpmfusion)s yum -y install %(packages)s && echo SUCCESS || echo FAILURE )" % {
                     'packages' : ' '.join(self.required_packages),
+                    'rpmfusion' : rpmFusion,
                 },
                 pidfile = pidfile,
                 stdout = logfile,