public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
From: jturney@sourceware.org
To: cygwin-apps-cvs@sourceware.org
Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200129-8-g0c1b671
Date: Wed, 19 Feb 2020 15:45:00 -0000	[thread overview]
Message-ID: <20200219154528.71285.qmail@sourceware.org> (raw)




https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=0c1b671e3e3ca0c5b6b964cc8de3623764fb203a

commit 0c1b671e3e3ca0c5b6b964cc8de3623764fb203a
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Tue Feb 18 22:38:58 2020 +0000

    Extend orphan maintainer list
    
    Extend orphan maintainer list to include everyone who:
    
    * has a sourceware shell account
    * that account is a member of the cygwin group
    * is currently a package maintainer
    
    Restructure gitolite.conf so the "push to all repos" list is
    synchronized with that

https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=18d6ca071a42115f47130a34823b2edb38cbe35d

commit 18d6ca071a42115f47130a34823b2edb38cbe35d
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Tue Feb 18 21:41:12 2020 +0000

    Remove an old fixup tool


Diff:
---
 calm/common_constants.py       |  12 +++-
 calm/fix-missing-cygwin-dep.py | 140 -----------------------------------------
 calm/mkgitoliteconf.py         |  13 ++++
 3 files changed, 24 insertions(+), 141 deletions(-)

diff --git a/calm/common_constants.py b/calm/common_constants.py
index 9db93b2..5d884c4 100644
--- a/calm/common_constants.py
+++ b/calm/common_constants.py
@@ -42,7 +42,17 @@ EMAILS = ','.join(list(map(lambda m: m + '@sourceware.org', ['corinna', 'yselkow
 ALWAYS_BCC = 'jturney@sourceware.org, yselkowitz@sourceware.org'
 
 # these maintainers can upload orphaned packages as well
-ORPHANMAINT = "Yaakov Selkowitz"
+#
+# (these people have sourceware shell access and cygwin group membership, so
+# they can do whatever they like directly, anyhow)
+ORPHANMAINT = '/'.join([
+    'Corinna Vinschen',
+    'Eric Blake',
+    'Jon Turney',
+    'Ken Brown',
+    'Marco Atzeri',
+    'Yaakov Selkowitz',
+])
 
 # architectures we support
 ARCHES = ['x86', 'x86_64']
diff --git a/calm/fix-missing-cygwin-dep.py b/calm/fix-missing-cygwin-dep.py
deleted file mode 100755
index 6ca3625..0000000
--- a/calm/fix-missing-cygwin-dep.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2016 Jon Turney
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-
-#
-# Historically, cygwin was omitted from requires: and then upset added it back
-# using the autodep mechanism
-#
-# Now we want to remove that complexity and treat it like a normal dependency,
-# so this script fixes up setup.hints, adding cygwin to requires: where it
-# should be
-#
-
-import argparse
-import logging
-import os
-import re
-import sys
-import tarfile
-
-import common_constants
-import package
-
-
-#
-#
-#
-def main(args):
-    # build package list
-    packages = package.read_packages(args.rel_area, args.arch)
-
-    for pn, po in packages.items():
-        # package is source-only
-        if 'skip' in po.hints:
-            logging.info("%s is source-only" % (pn))
-            continue
-
-        # package requires: contains 'cygwin' already
-        #
-        # really this should use a whitespace boundary, not word boundary to
-        # avoid matching cygwin-debug etc., but we just happen to know that only
-        # debuginfo packages depend on cygwin-debuginfo which can safely be
-        # skipped as they will never depend on cygwin
-        requires = po.hints.get('requires', '')
-        if re.search(r'\bcygwin\b', requires):
-            logging.info("%s already has cygwin in requires" % (pn))
-            continue
-
-        # install tarfiles are all empty (usually because package is obsolete)
-        if all([t.is_empty for t in po.tars.values()]):
-            logging.info("%s has empty install tarfiles" % (pn))
-            continue
-
-        # search each install tarfile for executable files
-        #
-        # (any .exe or .dll file might have a dependency on cygwin1.dll, so for
-        # simplicity we will assume that it does)
-        amend = False
-        for t in po.tars:
-            logging.info("%s tarfile %s" % (pn, t))
-
-            if re.search(r'-src\.tar', t):
-                continue
-
-            if po.tars[t].is_empty:
-                continue
-
-            with tarfile.open(os.path.join(args.rel_area, args.arch, po.path, t)) as a:
-                if any(map(lambda f: re.search(r'^(bin|sbin|usr/bin|usr/lib|usr/libexec|usr/sbin)/.*\.(exe|dll|so|cmxs)$', f), a.getnames())):
-                    logging.info("%s: matched in %s" % (pn, t))
-                    amend = True
-                    break
-
-        if not amend:
-            continue
-
-        # adjust requires:, adding 'cygwin' to the end
-        logging.warning("Adding 'cygwin' to requires: in setup.hint for package '%s'" % (pn))
-        if len(requires) > 0:
-            requires = requires + ' '
-        po.hints['requires'] = requires + 'cygwin'
-
-        # write the modified setup.hint file
-        if 'parse-warnings' in po.hints:
-            del po.hints['parse-warnings']
-        if 'parse-errors' in po.hints:
-            del po.hints['parse-errors']
-
-        ofn = os.path.join(args.rel_area, args.arch, po.path, 'setup.hint')
-        fn = os.path.join(args.rel_area, args.arch, po.path, 'setup.hint.modified')
-        with open(fn, 'w') as f:
-            for k, v in po.hints.items():
-                print("%s: %s" % (k, v), file=f)
-
-        # show any 'unexpected' changes in the setup.hint
-        os.system("diff -u -I 'requires:' --ignore-blank-lines --ignore-space-change %s %s" % (ofn, fn))
-
-        # replace the setup.hint file
-        # (written this way so it doesn't spoil a hardlinked backup of the releasearea)
-        os.rename(fn, ofn)
-
-
-#
-#
-#
-
-if __name__ == "__main__":
-    relarea_default = common_constants.FTP
-
-    parser = argparse.ArgumentParser(description='requires fixer')
-    parser.add_argument('--arch', action='store', required=True, choices=common_constants.ARCHES)
-    parser.add_argument('-v', '--verbose', action='count', dest='verbose', help='verbose output', default=0)
-    parser.add_argument('--releasearea', action='store', metavar='DIR', help="release directory (default: " + relarea_default + ")", default=relarea_default, dest='rel_area')
-    (args) = parser.parse_args()
-
-    if args.verbose:
-        logging.getLogger().setLevel(logging.INFO)
-
-    logging.basicConfig(format=os.path.basename(sys.argv[0]) + ': %(message)s')
-
-    main(args)
diff --git a/calm/mkgitoliteconf.py b/calm/mkgitoliteconf.py
index 761979d..65a08dc 100755
--- a/calm/mkgitoliteconf.py
+++ b/calm/mkgitoliteconf.py
@@ -68,6 +68,19 @@ def do_main(args):
     # header
     print("# automatically generated by mkgitoliteconf")
 
+    # global configuration
+    print('')
+    print('@leads = %s' % ' '.join(map(transform_username, common_constants.ORPHANMAINT.split('/'))))
+    print('')
+    print('repo @all')
+    print('    C  = @leads')
+    print('    RW = @leads')
+    print('    R  = @all')
+    print('    R  = gitweb daemon')
+    print('- VREF/MAX_NEWBIN_SIZE/1024 = @all')
+    print('# this rejects binary files over the size limit, text files of any size are still permiited')
+    print('')
+
     # for each package
     for p in sorted(pkgs):
         users = ' '.join(map(transform_username, pkgs[p]))


                 reply	other threads:[~2020-02-19 15:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200219154528.71285.qmail@sourceware.org \
    --to=jturney@sourceware.org \
    --cc=cygwin-apps-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).