[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pending uploads



Russ Allbery <rra@debian.org> writes:

> I'll take a look at:
>
> libapache-session-perl
> libarchive-tar-perl
> libclass-mop-perl
> libclass-prototyped-perl
> libdata-dump-streamer-perl
>
> just to take the first few off the top of the list.

Okay, these are done.  This is the first Perl group work that I've done in
a while, and I tried to follow some of the changed procedures, but I
botched a few things on the first couple of uploads.

We don't really have a guide for uploaders right now, and it wasn't clear
to me exactly what manipulations we're supposed to make to the package.  I
think I finally pieced together from the policy document and its words
about Uploaders that we're supposed to add ourselves to Uploaders (even if
we make no changes) and then make sure that the changelog is signed by the
uploader to avoid mistaken identification of the package as an NMU.

It also implies that we should remove non-DDs from the Uploaders field,
but I'm not sure how to easily do that, since not all DDs use debian.org
addresses.  I bailed on doing that for the time being.

In the hope that it will save someone time, here's how I process uploads.
If people think this would be appropriate, I'm happy to add it to policy
or subversion or a new document, if someone could give me pointers on how
to make that show up properly on the web site.


1. Create a working area if you haven't done this before.  From this point
   on, I'll assume that all actions take place in that working area.
   Create subdirectories:

       mkdir build-area tarballs old

   The first two are used by svn-buildpackage.  The last is used below.

2. Check out a package from the repository that you're going to upload:

       svn co svn+ssh://svn.debian.org/svn/pkg-perl/trunk/<package>

   This will check it out into a directory named after the package inside
   your working area, which is what you want.  Be sure to not add a
   username before svn.debian.org (no user@).  If you do, svn-buildpackage
   --svn-tag will fail later.  Instead, if your local username doesn't
   match your username on svn.debian.org, edit ~/.ssh/config and add a
   stanza like:

       Host svn.debian.org
         User <user>

   where <user> is your username on svn.debian.org.

3. Review debian/changelog to understand what you're uploading.  If you're
   not already in Uploaders, add yourself.  Update the signature and
   timestamp for the package with:

       dch -r

   (and then exit the editor if you don't need to change anything else).
   Commit those changes with svn commit.

4. Download the upstream tarball.  If this is just a Debian revision of a
   package already in the archive, do that with:

       apt-get -t unstable source -d --tar-only <package>

   and then move the resulting *.orig.tar.gz file to the tarballs
   directory.  Otherwise, cd to the package directory and run:

       uscan --force-download --rename --destdir ../tarballs

   and double-check that the upstream URL looks reasonable.

5. Build the package:

       svn-buildpackage

   (I assume that your ~/.svn-buildpackage.conf file is already set up
   with the options you want to use, set up to build in an unstable chroot
   if needed, and so forth.)

6. Go to the build area and do a basic sanity check on the package:

       lintian -iI *.changes
       lsdiff -z *.diff.gz
       dpkg -c *.deb
       dpkg -I *.deb

   (The last two commands assume only one *.deb file was built.  If there
   are multiple ones, repeat for each one.)  The lsdiff (from patchutils)
   will tell you if there are any changes outside of the debian directory;
   if so, they may be accidental or the package maybe should use quilt,
   but in any case they're worthy of special review.  I use dpkg -c and
   dpkg -I to sanity-check the package contents and metadata and make sure
   they look reasonable.

7. If the package already exists in the archive, see what changed.  cd to
   the old directory created above, and then download the current package:

       apt-get -t unstable source -d <package>

   Then cd up one directory, to the top of your working directory, and
   compare the new and old package with debdiff:

       debdiff old/*.dsc build-area/*.dsc | less

   (For the wildcards to work, you'll need to delete the contents of your
   build-area and old directories after you finish with each package.)
   Make sure the changes look reasonable.

8. debsign the *.changes file in build-area and the dput or dupload it to
   the archive.

9. cd back to the checkout of the package and tag it:

       svn-buildpackage --svn-tag --svn-tag-only

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: