public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
* [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200129-8-g0c1b671
@ 2020-02-19 15:45 jturney
  0 siblings, 0 replies; only message in thread
From: jturney @ 2020-02-19 15:45 UTC (permalink / raw)
  To: cygwin-apps-cvs




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]))


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-02-19 15:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-19 15:45 [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20200129-8-g0c1b671 jturney

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).