title: Dependency cycle with apt source
body: <p>I'm trying to install the puppet module at <a href="https://github.com/dwerder/puppet-mongodb" rel="noreferrer">https://github.com/dwerder/puppet-mongodb</a></p>
  
  <p>One of the requirements for it to work is to have the mongodb repository set-up. Since I'm trying to deploy it on Debian I tried using the following class to add the source:</p>
  
  <pre><code>class mongodb::apt::repo {
    include apt
  
    apt::source { '10gen':
      location   =&gt; 'http://downloads-distro.mongodb.org/repo/debian-sysvinit',
      release     =&gt; 'dist',
      repos       =&gt; '10gen',
      key         =&gt; '7F0CEB10',
      key_server  =&gt; 'keyserver.ubuntu.com',
      include_src =&gt; false
    }
  }
  </code></pre>
  
  <p>However, upon trying to install the module (on a test node) I get the following output:</p>
  
  <pre><code>root@debian:/etc/puppet/modules# puppet agent --test
  info: Caching catalog for debian.lan
  info: Applying configuration version '1353946258'
  err: Could not apply complete catalog: Found 1 dependency cycle:
  (Exec[apt_update] =&gt; Class[Apt::Update] =&gt; Anchor[apt::source::10gen] =&gt; Anchor[apt::source::10gen] =&gt; Apt::Source[10gen] =&gt; Class[Mongodb::Apt::Repo] =&gt; Package[mongodb-10gen] =&gt; Anchor[mongodb::install::end] =&gt; Anchor[mongodb::install::end] =&gt; File[10gen.list] =&gt; Apt::Source[10gen])
  Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
  </code></pre>
  
  <p>notice: Finished catalog run in 0.06 seconds</p>
  
  <p>The class is included in the module's install class at <a href="https://github.com/dwerder/puppet-mongodb/blob/master/manifests/install.pp" rel="noreferrer">https://github.com/dwerder/puppet-mongodb/blob/master/manifests/install.pp</a></p>
  
  <p>I'm not quite sure why this dependency cycle happens, any ideas?</p>