提交 51cf7966 编写于 作者: J James Troup

Fix checking for source files with +'s in them.

上级 850d82c5
...@@ -12,6 +12,8 @@ Show Stopper ...@@ -12,6 +12,8 @@ Show Stopper
Non-Show Stopper Non-Show Stopper
---------------- ----------------
o fix heimdal at some point on non-US.
o CD building scripts need fixing o CD building scripts need fixing
o charisma needs to do version compares o charisma needs to do version compares
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# Installs Debian packaes # Installs Debian packaes
# Copyright (C) 2000 James Troup <james@nocrew.org> # Copyright (C) 2000 James Troup <james@nocrew.org>
# $Id: katie,v 1.6 2000-11-30 04:38:34 troup Exp $ # $Id: katie,v 1.7 2000-12-01 17:33:29 troup Exp $
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
...@@ -444,7 +444,7 @@ def check_dsc (): ...@@ -444,7 +444,7 @@ def check_dsc ():
actual_md5 = files[dsc_file]["md5sum"] actual_md5 = files[dsc_file]["md5sum"]
found = "%s in incoming" % (dsc_file) found = "%s in incoming" % (dsc_file)
# Check the file does not already exist in the archive # Check the file does not already exist in the archive
q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file)); q = projectB.query("SELECT f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file)));
if q.getresult() != []: if q.getresult() != []:
reject_message = reject_message + "Rejected: can not overwrite existing copy of '%s' already in the archive.\n" % (dsc_file) reject_message = reject_message + "Rejected: can not overwrite existing copy of '%s' already in the archive.\n" % (dsc_file)
elif dsc_file[-12:] == ".orig.tar.gz": elif dsc_file[-12:] == ".orig.tar.gz":
...@@ -460,7 +460,7 @@ def check_dsc (): ...@@ -460,7 +460,7 @@ def check_dsc ():
reprocess = 1; reprocess = 1;
return 1; return 1;
# Check in the pool # Check in the pool
q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (dsc_file)); q = projectB.query("SELECT l.path, f.filename, l.type, f.id FROM files f, location l WHERE f.filename ~ '/%s' AND l.id = f.location" % (utils.regex_safe(dsc_file)));
ql = q.getresult(); ql = q.getresult();
if len(ql) > 0: if len(ql) > 0:
old_file = ql[0][0] + ql[0][1]; old_file = ql[0][0] + ql[0][1];
......
# Utility functions # Utility functions
# Copyright (C) 2000 James Troup <james@nocrew.org> # Copyright (C) 2000 James Troup <james@nocrew.org>
# $Id: utils.py,v 1.5 2000-11-30 04:19:30 troup Exp $ # $Id: utils.py,v 1.6 2000-12-01 17:33:29 troup Exp $
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
...@@ -256,3 +256,12 @@ def which_conf_file (): ...@@ -256,3 +256,12 @@ def which_conf_file ():
###################################################################################### ######################################################################################
# Escape characters which have meaning to SQL's regex comparison operator ('~')
# (woefully incomplete)
def regex_safe (s):
s = string.replace(s, '+', '\\\\+');
return s
######################################################################################
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册