--- mach/scripts/mach.in~build-src	2003-11-14 06:04:18.000000000 +0100
+++ mach/scripts/mach.in	2003-11-14 16:09:12.000000000 +0100
@@ -252,15 +252,15 @@
         debug ("SRPM.specname: %s" % name)
         return name
     
-    def BuildRequires (self):
-        "return a list of BuildRequires for this src.rpm"
-        buildreqs = self.header[rpm.RPMTAG_REQUIRENAME]
-        # remove non-packagey things from buildreqs
-        # currently removes everything containing ( or /
-        if buildreqs:
-            return filter(lambda x: not re.search("^(/|rpmlib\\()", x), buildreqs)
-        else:
-            return None
+    #def BuildRequires (self):
+    #    "return a list of BuildRequires for this src.rpm"
+    #    buildreqs = self.header[rpm.RPMTAG_REQUIRENAME]
+    #    # remove non-packagey things from buildreqs
+    #    # currently removes everything containing ( or /
+    #    if buildreqs:
+    #        return filter(lambda x: not re.search("^(/|rpmlib\\()", x), buildreqs)
+    #    else:
+    #        return None
 
     def results (self):
         "returns a list of packages that can be built from this src.rpm"
@@ -749,7 +749,7 @@
         for path in paths:
     	# resolve path to basename (without dirs)
             srpmname = os.path.basename (path)
-            newpath = os.path.join (self.rootdir, 'tmp', srpmname)
+            newpath = os.path.join (self.rootdir, 'tmp', "SRPMS.mach", srpmname)
             try:
                 urlgrab (path, newpath)
             except IOError:
@@ -757,79 +757,29 @@
                 return False
             srpm = SRPM (newpath)
             spec = srpm.specname
-            buildreqs = srpm.BuildRequires ()
+            #buildreqs = srpm.BuildRequires ()
             name = srpm.header[rpm.RPMTAG_NAME]
             pkgs[name] = {}
+            pkgs[name]['name'] = name
             pkgs[name]['path'] = newpath
-            pkgs[name]['buildreqs'] = buildreqs
+            #pkgs[name]['buildreqs'] = buildreqs
             pkgs[name]['srpm'] = srpm
             pkgs[name]['srpmname'] = srpmname
             pkgs[name]['header'] = srpm.header
             pkgs[name]['spec'] = spec
-     
-        # now figure out build order based on buildrequires of each pkg
-        deps = [] # list of pkg, dep pairs
-        for pkg in pkgs.keys ():
-            debug ("Processing %s for build order" % pkgs[pkg]['srpmname'])
-            # get results from this package
-            results = pkgs[pkg]['srpm'].results ()
-            # figure out the build requirements and add
-            # pkg -> (results) and buildreq -> (results) to chain
-            for result in results:
-                if result != pkg:
-                    debug ("adding %s depends on pkg %s" % (result, pkg))
-                    deps.append ((result, pkg))
-                if not pkgs[pkg]['buildreqs']: continue
-                for buildreq in pkgs[pkg]['buildreqs']:
-                    if (result == buildreq):
-                        sys.stderr.write ("WARNING: package %s BuildRequires: itself, packaging error !" % result)
-                    else:
-                        debug ("adding %s depends on buildreq %s" % (result, buildreq))
-                        deps.append ((result, buildreq))
-    
-        debug ("topological input: ")
-        debug (deps)
-        debug ("topological output: ")
-        sorted = topological_sort (deps)
-        sorted.reverse ()
-        debug ("order %s" % sorted)
-        # now scrub packages not up for build from order
-        order = []
-        for pkg in sorted:
-            if pkg in pkgs.keys ():
-                order.append (pkg)
-        debug ("(without packages up for build) order %s" % order)
-    
-        # now make sure all packages given are up for build
-        for pkg in pkgs.keys ():
-            if pkg not in order:
-                order.append (pkg)
-        debug ("(with all packages up for build) order %s" % order)
-    
+
         # now build
         self.mount ()
        
         resultdirs = [] # will contain each of the resultdir's for this build
         # loop over all package names
-        for name in order:
+        for name in pkgs.keys():
             srpmname = pkgs[name]['srpmname']
             # install buildrequires if there are
             debug ("Building %s with package stuff %s" % (name, pkgs[name].keys ()))
-            if 'buildreqs' in pkgs[name].keys ():
-                buildreqs     = string.join (pkgs[name]['buildreqs'])
-                buildreqs_esc = map(lambda x: escapeShell(x), pkgs[name]['buildreqs'])
-                print "Building %s" % srpmname
-                debug ("BuildRequires: %s" % buildreqs)
-                try:
-        	    self.aptget ("update")
-                    self.aptget ('install -my %s' % string.join(buildreqs_esc),
-                                 "Installing BuildRequires", self.progress ())
-                    # FIXME: build-dep would be nice but only works on a pkg
-                    # in the rpm-src tree apparently
-                    #self.aptget ('build-dep -y %s' % pkgs[name]['path'], True)
-                except Root.Error:
-                    raise self.Error, 'could not install buildreqs %s' % buildreqs
-                    #continue
+            self.aptget("update")
+            self.aptget("build-dep -fmy %s" % pkgs[name]['name'],
+                        "Installing BuildRequires", self.progress ())
 
             # get the name and create the place where to store results
             h = pkgs[name]['header']
@@ -855,7 +805,7 @@
             # rebuild binary rpm from the src rpm
 
             # install the src.rpm
-            self.do_chroot ("su -c 'rpm -Uhv /tmp/%s' machbuild" % srpmname)
+            self.do_chroot ("su -c 'rpm -Uhv /tmp/SRPMS.mach/%s' machbuild" % srpmname)
             specfile = pkgs[name]['spec']
 
             command = 'cp /usr/src/rpm/SPECS/%s /tmp/%s' % (specfile, specfile)
@@ -1060,7 +1010,7 @@
         ensure_dir (os.path.join (self.rootdir, 'etc'))
         open (os.path.join (self.rootdir, 'etc', 'mtab'), 'w')
         open (os.path.join (self.rootdir, 'etc', 'fstab'), 'w')
-        ensure_dir (os.path.join (self.rootdir, 'tmp'))
+        ensure_dir (os.path.join (self.rootdir, 'tmp/SRPMS.mach'))
         ensure_dir (os.path.join (self.rootdir, 'var', 'tmp'))
         ensure_dir (os.path.join (self.statedir, 'apt/etc/apt'))
         ensure_dir (os.path.join (self.statedir, 'apt/var/cache/apt/archives'))
@@ -1503,6 +1453,7 @@
     # we created in the root and chroot mv it afterwards due to perms
     sources = open (statedir + '/apt/etc/apt/sources.list', 'w')
     sources.write (string.join (list, "\n"))
+    sources.write ("\nrpm-src-dir file:%s tmp mach\n" % root)
     sources.close ()
 #    os.system ('%s %s mv /tmp/sources.list @SYSCONFDIR@/apt' % (config['chroot'], root))
     
