-cur_ver = package.version
-# urg?
-# print tarball(cur_ver)
-barbaal=package.name + '-' + version_tuple_to_str (cur_ver) + '.tar.gz'
-print barbaal
-# os.rename('out/' + tarball(cur_ver), released_tarball(cur_ver))
-# hmmm
-os.remove(package.release_dir + barbaal)
-os.link('out/' + barbaal, package.release_dir + barbaal)
-os.chdir(package.test_dir)
-try:
- os.system('set -x; rm ' + package.test_dir + package.name + '*gz')
-except:
- pass
-# os.link(released_tarball(cur_ver), tarball(cur_ver))
-os.link(package.release_dir + barbaal, barbaal)
-
-# not a module, but a script (JCN)
-# makepatch.main()
-
-# Module wherefore aren't thou Script
-# A Rose by any other name would be as blonde. --HWN
-
-# urg
-# os.system('@PYTHON@ ' + package.topdir + '/stepmake/bin/package-diff.py --package=' + topdir)
-os.system(sys.executable + ' ' + package.topdir + '/stepmake/bin/package-diff.py --package=' + topdir)
-
-pn = package.name + '-%s' % version_tuple_to_str(cur_ver)
-pn = pn + '.diff'
-pn = pn + '.gz'
-rel_pn = package.patch_dir + pn
-
-os.rename(pn, rel_pn)
-os.link(rel_pn, pn)
+if os.path.exists (release_tarfile):
+ os.unlink (release_tarfile)
+
+os.link (out_tarfile, release_tarfile)
+
+diff_py = package.topdir + '/stepmake/bin/package-diff.py'
+diff_py_options = '--outdir=%(outdir)s --package=%(topdir)s' % vars ()
+status = os.system (string.join ((sys.executable, diff_py, diff_py_options)))
+if status:
+ raise 'make diff failed'
+
+previous_tuple = packagepython.prev_version (package.version)
+previous_version = packagepython.version_tuple_to_str (previous_tuple)
+
+diff_base = string.join ((package.name, previous_version, release_version),
+ '-')
+diff_name = diff_base + '.diff.gz'
+
+out_diff = os.path.join (outdir, diff_name)
+release_diff = os.path.join (package.patch_dir, diff_name)
+
+if not os.path.exists (out_diff):
+ sys.stderr.write ("error: cannot open: %s\n" % out_diff)
+ sys.exit (1)
+
+if os.path.exists (release_diff):
+ os.unlink (release_diff)
+
+os.link (out_diff, release_diff)