stage $GO
lockfile "$LOCK_ACCEPTED"
-lockfile "$LOCK_NEW"
trap remove_all_locks EXIT TERM HUP INT QUIT
GO=(
LOCKDAILY=""
LOCKFILE="$lockdir/unchecked.lock"
-LOCK_NEW="$lockdir/processnew.lock"
NOTICE="$lockdir/daily.lock"
LOCK_BUILDD="$lockdir/buildd.lock"
Process-New
{
- DinstallLockFile "/srv/ftp-master.debian.org/lock/processnew.lock";
LockDir "/srv/ftp-master.debian.org/lock/new/";
};
# Remove all locks
function remove_all_locks() {
- rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW
+ rm -f $LOCK_DAILY $LOCK_ACCEPTED
}
# If we error out this one is called, *FOLLOWED* by cleanup above
# Lock cron.unchecked from doing work
LOCK_ACCEPTED="$lockdir/unchecked.lock"
-# Lock process-new from doing work
-LOCK_NEW="$lockdir/processnew.lock"
-
# This file is simply used to indicate to britney whether or not
# the Packages file updates completed sucessfully. It's not a lock
# from our point of view
def read_control (filename):
recommends = []
+ predepends = []
depends = []
section = ''
maintainer = ''
control_keys = control.keys()
+ if "Pre-Depends" in control:
+ predepends_str = control["Pre-Depends"]
+ predepends = split_depends(predepends_str)
+
if "Depends" in control:
depends_str = control["Depends"]
# create list of dependancy lists
else:
maintainer = escape_if_needed(maintainer)
- return (control, control_keys, section, depends, recommends, arch, maintainer)
+ return (control, control_keys, section, predepends, depends, recommends, arch, maintainer)
def read_changes_or_dsc (suite, filename, session = None):
dsc = {}
return foldable_output("Package relations", "relations", to_print)
def output_deb_info(suite, filename, packagename, session = None):
- (control, control_keys, section, depends, recommends, arch, maintainer) = read_control(filename)
+ (control, control_keys, section, predepends, depends, recommends, arch, maintainer) = read_control(filename)
if control == '':
return formatted_text("no control info")
if not package_relations.has_key(packagename):
package_relations[packagename] = {}
for key in control_keys :
- if key == 'Depends':
+ if key == 'Pre-Depends':
+ field_value = create_depends_string(suite, predepends, session)
+ package_relations[packagename][key] = field_value
+ elif key == 'Depends':
field_value = create_depends_string(suite, depends, session)
package_relations[packagename][key] = field_value
elif key == 'Recommends':
continue
if answer == 'A' and not Options["Trainee"]:
- try:
- check_daily_lock()
- add_overrides(missing, upload.target_suite, session)
- if Config().find_b("Dinstall::BXANotify"):
- do_bxa_notification(missing, upload, session)
- handler.accept()
- done = True
- Logger.log(["NEW ACCEPT", upload.changes.changesname])
- except CantGetLockError:
- print "Hello? Operator! Give me the number for 911!"
- print "Dinstall in the locked area, cant process packages, come back later"
+ add_overrides(missing, upload.target_suite, session)
+ if Config().find_b("Dinstall::BXANotify"):
+ do_bxa_notification(missing, upload, session)
+ handler.accept()
+ done = True
+ Logger.log(["NEW ACCEPT", upload.changes.changesname])
elif answer == 'C':
check_pkg(upload, upload_copy, session)
elif answer == 'E' and not Options["Trainee"]:
################################################################################
-def check_daily_lock():
- """
- Raises CantGetLockError if the dinstall daily.lock exists.
- """
-
- cnf = Config()
- try:
- lockfile = cnf.get("Process-New::DinstallLockFile",
- os.path.join(cnf['Dir::Lock'], 'processnew.lock'))
-
- os.open(lockfile,
- os.O_RDONLY | os.O_CREAT | os.O_EXCL)
- except OSError as e:
- if e.errno == errno.EEXIST or e.errno == errno.EACCES:
- raise CantGetLockError
-
- os.unlink(lockfile)
-
@contextlib.contextmanager
def lock_package(package):
"""