From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2201) id C6D683858CDA; Mon, 26 Sep 2022 13:20:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C6D683858CDA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1664198414; bh=JjCIuCoRJQisBWOAeLd3pTR6XFBEURotYhxJhc+RnfI=; h=To:Subject:Date:From:From; b=shio9HrPigrVF7BX5mulBGbIsugt+1CAIVFpTLEl9KXyT9kLFofIZ6h8Vwuj4YpWW Qyru2Cmry64YzS9qiIq8SaJIMIXGCQVRaVKIRH0J6xH3sXeCY0hW/a4zFWqM0y5QCw gqOlYFNJOrtRxBgG7gG1Un4W6jLGlUfW3/5kd5ek= To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20220704-16-g51a73ca X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: e8fa4d84eb7fd1547bdf4bc63681c096b20ce147 X-Git-Newrev: 51a73cae10bcc79c24dc8f00dcafaa69f3897c51 Message-Id: <20220926132014.C6D683858CDA@sourceware.org> Date: Mon, 26 Sep 2022 13:20:14 +0000 (GMT) From: Jon TURNEY List-Id: https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=51a73cae10bcc79c24dc8f00dcafaa69f3897c51 commit 51a73cae10bcc79c24dc8f00dcafaa69f3897c51 Author: Jon Turney Date: Mon Sep 26 13:02:37 2022 +0100 Send emails with 'Reply-To' cygwin-apps Switch email From: back to cygwin-no-reply. Using the cygwin-apps list email doesn't work well, as the list filters out bounces which appear to come from itself. Set Reply-To: instead, so replies go there. This reverts commit d047fed3d38af7a0307f46d74b0bf7e78eaaeda6 ("Change From: address to cygwin-apps") https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=132284ee7350e59c0f3e9204637cdb933b9b7ebe commit 132284ee7350e59c0f3e9204637cdb933b9b7ebe Author: Jon Turney Date: Fri Sep 16 16:01:37 2022 +0100 Drop unused remove arg to read_one_package Unused since d8869d2e removed the need to notice when override.hint was being removed. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=ca35f6a964ae535084a42dfdf085c35e4f4a7c36 commit ca35f6a964ae535084a42dfdf085c35e4f4a7c36 Author: Jon Turney Date: Wed Sep 14 17:58:39 2022 +0100 Drop special treatment for !packages in upload area We stopped generating these files a while ago. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=a01c7c3edc8f13a1c8e13238912381cec50c752d commit a01c7c3edc8f13a1c8e13238912381cec50c752d Author: Jon Turney Date: Wed Sep 14 13:21:58 2022 +0100 Warn if license: is missing in uploads Diff: --- calm/buffering_smtp_handler.py | 5 ++++- calm/hint.py | 8 ++++++++ calm/package.py | 9 +++------ calm/uploads.py | 5 ++--- test/testdata/uploads/pkglist.expected | 6 ++++-- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/calm/buffering_smtp_handler.py b/calm/buffering_smtp_handler.py index 2cd1b63..161438f 100644 --- a/calm/buffering_smtp_handler.py +++ b/calm/buffering_smtp_handler.py @@ -34,11 +34,13 @@ class BufferingSMTPHandler(logging.handlers.BufferingHandler): def __init__(self, toaddrs, subject, - fromaddr='cygwin-apps@cygwin.com', + fromaddr='cygwin-no-reply@cygwin.com', + replytoaddr='cygwin-apps@cygwin.com', logging_format='%(levelname)s: %(message)s'): logging.handlers.BufferingHandler.__init__(self, capacity=0) self.fromaddr = fromaddr self.toaddrs = toaddrs + self.replyto = replytoaddr self.subject = subject self.formatter = logging_format self.setFormatter(logging.Formatter(logging_format)) @@ -62,6 +64,7 @@ class BufferingSMTPHandler(logging.handlers.BufferingHandler): m = email.message.Message() m['From'] = self.fromaddr m['To'] = ','.join(self.toaddrs) + m['Reply-To'] = self.replytoaddr m['Bcc'] = common_constants.ALWAYS_BCC m['Subject'] = self.subject m['Message-Id'] = email.utils.make_msgid() diff --git a/calm/hint.py b/calm/hint.py index ace6ecd..8990a25 100755 --- a/calm/hint.py +++ b/calm/hint.py @@ -333,6 +333,14 @@ def hint_file_parse(fn, kind, strict=False): if k not in hints: errors.append("required key '%s' missing" % (k)) + suggested = [] + if (kind == spvr) and strict: + suggested.append('license') + + for k in suggested: + if k not in hints: + warnings.append("key '%s' missing" % (k)) + # warn if ldesc and sdesc seem transposed # # (Unfortunately we can't be totally strict about this, as some diff --git a/calm/package.py b/calm/package.py index 1c658e1..dd137fb 100755 --- a/calm/package.py +++ b/calm/package.py @@ -206,10 +206,7 @@ def clean_hints(p, hints, warnings): # (return True if problems, False otherwise) # -def read_package_dir(packages, basedir, dirpath, files, remove=None, upload=False): - if remove is None: - remove = [] - +def read_package_dir(packages, basedir, dirpath, files, upload=False): relpath = os.path.relpath(dirpath, basedir) # the package name is always the directory name @@ -260,7 +257,7 @@ def read_package_dir(packages, basedir, dirpath, files, remove=None, upload=Fals for kind in Kind: # only create a package if there's archives for it to contain if fl[kind]: - result = read_one_package(packages, p, relpath, dirpath, fl[kind] + fl['all'], remove, kind, upload) or result + result = read_one_package(packages, p, relpath, dirpath, fl[kind] + fl['all'], kind, upload) or result # warn about unexpected files, including tarfiles which don't match the # package name @@ -274,7 +271,7 @@ def read_package_dir(packages, basedir, dirpath, files, remove=None, upload=Fals # # read a single package # -def read_one_package(packages, p, relpath, dirpath, files, remove, kind, strict): +def read_one_package(packages, p, relpath, dirpath, files, kind, strict): warnings = False if not re.match(r'^[\w\-._+]*$', p): diff --git a/calm/uploads.py b/calm/uploads.py index db26f80..2f98fe5 100644 --- a/calm/uploads.py +++ b/calm/uploads.py @@ -206,9 +206,8 @@ def scan(scandir, m, all_packages, arch, args): rel_fn = os.path.join(relpath, f) logging.debug("processing %s" % rel_fn) - # ignore !packages (which we no longer use) # ignore !mail and !email (which we have already read) - if f in ['!packages', '!mail', '!email']: + if f in ['!mail', '!email']: files.remove(f) continue @@ -279,7 +278,7 @@ def scan(scandir, m, all_packages, arch, args): # read and validate package if files: - if package.read_package_dir(packages, homedir, dirpath, files, remove=removed_files, upload=True): + if package.read_package_dir(packages, homedir, dirpath, files, upload=True): error = True # always consider timestamp as checked during a dry-run, so it is never diff --git a/test/testdata/uploads/pkglist.expected b/test/testdata/uploads/pkglist.expected index 837e898..ae70bb4 100644 --- a/test/testdata/uploads/pkglist.expected +++ b/test/testdata/uploads/pkglist.expected @@ -12,7 +12,8 @@ 'Like it’s you’re Markup Language™ Nokogiri’s tool―that ' 'Bézier."', 'category': 'Devel', - 'homepage': 'http://homepage.url'}}, {}, False), + 'homepage': 'http://homepage.url', + 'parse-warnings': ["key 'license' missing"]}}, {}, False), 'testpackage-subpackage': Package('testpackage/testpackage-subpackage', {'1.0-1': Tar('testpackage-subpackage-1.0-1.tar.bz2', 'x86/release/testpackage/testpackage-subpackage', 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83', 195, False)}, {'1.0-1': {'sdesc': '"A test subpackage"', 'ldesc': '"A test subpackage"', 'category': 'Devel', @@ -27,7 +28,8 @@ 'sdesc': '"test package (zstd compressed)"', 'ldesc': '"test package (zstd compressed)"', 'homepage': 'http://zstd.testpkg.invalid', - 'skip': ''}}, {}, False), + 'skip': '', + 'parse-warnings': ["key 'license' missing"]}}, {}, False), 'testpackage2-subpackage': Package('testpackage2/testpackage2-subpackage', {'1.0-1': Tar('testpackage2-subpackage-1.0-1.tar.bz2', 'x86/release/testpackage2/testpackage2-subpackage', 'c4bf8e28d71b532e2b741e2931906dec0f0a70d4d051c0503476f864a5228f43765ae3342aafcebfd5a1738073537726b2bfbbd89c6da939a5f46d95aca3feaf', 46, True)}, {'1.0-1': {'sdesc': '"A test subpackage 2"', 'ldesc': '"A test subpackage 2"', 'category': 'Devel'}}, {}, False)}