From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1483 invoked by alias); 12 Oct 2013 20:22:42 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 1468 invoked by uid 89); 12 Oct 2013 20:22:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: Yes, score=6.9 required=5.0 tests=AWL,BAYES_20,RCVD_IN_DNSWL_NONE,SPAM_BODY autolearn=no version=3.3.2 X-HELO: mho-02-ewr.mailhop.org Received: from mho-02-ewr.mailhop.org (HELO mho-02-ewr.mailhop.org) (204.13.248.72) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sat, 12 Oct 2013 20:22:41 +0000 Received: from pool-98-110-183-69.bstnma.fios.verizon.net ([98.110.183.69] helo=cgf.cx) by mho-02-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from ) id 1VV5hu-0006dk-Nl for cygwin-apps@cygwin.com; Sat, 12 Oct 2013 20:22:38 +0000 Received: from cgf.cx (ednor.casa.cgf.cx [192.168.187.5]) by cgf.cx (Postfix) with ESMTP id 9D48C6011D for ; Sat, 12 Oct 2013 16:22:37 -0400 (EDT) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1+ybHw8+DGOedxCj2HOegK0 Date: Sat, 12 Oct 2013 20:22:00 -0000 From: Christopher Faylor To: cygwin-apps@cygwin.com Subject: Major changes coming to procedure for uploading to sourceware (long) Message-ID: <20131012202237.GA6588@ednor.casa.cgf.cx> Reply-To: cygwin-apps@cygwin.com Mail-Followup-To: cygwin-apps@cygwin.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-SW-Source: 2013-10/txt/msg00117.txt.bz2 I think I now have a system set up which will allow maintainers to upload their own packages to sourceware. This system means that package maintainers won't have to find a public web server to make their packages available for the cygwin release. Every package maintainer will be able to upload their own stuff. General login access to sourceware will no longer be required to update the cygwin release. The system relies on your providing a ssh key. Once we have that, you'll have limited 'sftp' access to sourceware where you will be able to upload packages. Your home directory on sourceware will look like this: Christopher Faylor # Directory is currently your full name (you won't actually see this) !packages # read-only file containing valid packages x86 x86_64 # arch-specific dir release release # release dir pkg # package directory pkg-debuginfo # package subdirectories So, to release, say, grep, I would do the following: % lftp sftp://cygwin cd ok, cwd=/ lftp cygwin.com:/> ls -rw-rw-r-- 1 root cygstage 179 Sep 1 05:12 !packages drwxrwsr-x 4 root cygstage 4096 Sep 1 05:16 . drwxrwxr-x 61 cygwin root 4096 Sep 1 05:12 .. drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 19:35 x86 drwxrwsr-x 3 cygwin cygstage 4096 Aug 10 19:04 x86_64 lftp cygwin.com:/> cd x86/release cd ok, cwd=/x86/release lftp cygwin.com:/x86/release> ls drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 18:28 . drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 19:35 .. drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 19:36 grep lftp cygwin.com:/x86/release> mirror -eR grep Total: 2 directories, 3 files, 0 symlinks New: 3 files, 0 symlinks 2311396 bytes transferred in 14 seconds (166.2K/s) lftp cygwin.com:/x86/release> ls grep drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 19:47 . drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 18:28 .. -rw-r--r-- 1 cygwin cygstage 1204708 Oct 12 19:46 grep-2.14-3-src.tar.xz -rw-r--r-- 1 cygwin cygstage 229284 Oct 12 19:47 grep-2.14-3.tar.xz drwxrwsr-x 2 cygwin cygstage 4096 Oct 12 19:47 grep-debuginfo lftp cygwin.com:/x86/release> ls grep/grep-debuginfo drwxrwsr-x 2 cygwin cygstage 4096 Oct 12 19:47 . drwxrwsr-x 3 cygwin cygstage 4096 Oct 12 19:47 .. -rw-r--r-- 1 cygwin cygstage 877404 Oct 12 19:47 grep-debuginfo-2.14-3.tar.xz lftp cygwin.com:/x86/release> put /dev/null -o !ready The package directories should exactly mirror what is currently in the release directory. The !ready file is used to tell upset that any files older than this file in or under the given directory should be processed. The intent is that you create !ready when you have finished uploading everything that you plan on uploading. upset will periodically scan our home directories for packages, and, if there are no errors, move the packages into the real release area. New directories will be created as needed. If there are errors then setup.ini will not be updated and the release area will remain pristine. Although not shown above, you can also create a !mail file which contains a list of email address (one per line) where any upset errors should be sent. If that isn't specified then you won't get email when upset finds issues with what was uploaded. Currently, this is not a "per-directory" thing since upset parsing doesn't work that way so, if you add a !email tag you will get all errors from upset - not just ones associated to your uploaded files. (Eventually, I'll fix this so that you only get errors if you actually did upload something rather than all of the time) To start this system going, I'd like people to start sending their public ssh keys to cygwin-apps using this format: Subject: SSH key for upload access Name: Your name Package: The name of one of the packages that you are responsible for SSHkey: Your *public* ssh key When specifying your name, use your exact name as shown here: http://cygwin.com/cygwin-pkg-maint I'll have an automated way of pulling this info into sourceware (after first verifying it for accuracy). So, in my case I would send mail to cygwin-apps with: Subject: SSH key for upload access Name: Christopher Faylor Package: grep SSHkey: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEArEBaxIX8MpBhJioygtOziwXb19w0vLnAHQcOEVgjjoStjCNZ0iAaX7+Ae7Jv78p7XAXZyrtFbvJ22siKKc0FG5z1DhE28sIFP2RxyF4F4ENIrqtlz4R8sFbuv16r91ZyLzMwpk5LAQGb/iSF+fU9KDpAohvvC5B8ZZ8dywQCXEE= cgf Note that the SSHkey stuff may have something which looks like an email address and that may be flagged by the spam filter so it makes sense to remove the address part. Make sure that you send your PUBLIC key, not your private key. The public keys are located in your .ssh directory and have a .pub extension. Only send one. The Package: key is just there for validation. It shouldn't contain the complete list of all of the packages you maintain. The cygwin-pkg-maint file is the master list for that information. Hopefully I haven't made this sound more complicated than it really is. It should be really simple. You provide an ssh key. We add it to sourceware. You send your packages to sourceware via sftp or (preferred) lftp. Create a "!ready" file. You're done. I hope that this will go live when I return from a brief vacation by mid next week. cgf