Hi, Am Sonntag, den 06.04.2014, 11:13 +1000 schrieb Erik de Castro Lopo: > > PS: If above description of the workflow is news to you, maybe I need to > > talk more about it. > > Yes.
Ok, let me just log how I update the gtk packages. It’s 10:27 now :-) # Update the planning repo $ cd debian/pkg-haskell/repos/tools/all-packages ~/debian/pkg-haskell/repos/tools/all-packages $ darcs pull ~/debian/pkg-haskell/repos/tools/all-packages $ gvim all-packages.txt ~/debian/pkg-haskell/repos/tools/all-packages $ cabal update ~/debian/pkg-haskell/repos/tools/all-packages $ schroot -c haskell -- ./test-packages.pl # gtk3 is new; this is somewhat manual $ cd /tmp /tmp $ cabal unpack gtk3 /tmp $ cd gtk3-0.12.5.6/ # Usually I would start with # ~/debian/pkg-haskell/repos/tools/template-debian/ # but here I start with the existing gtk debian directory /tmp/gtk3-0.12.5.6 $ darcs get ~/debian/pkg-haskell/repos/haskell-gtk debian /tmp/gtk3-0.12.5.6 $ cd debian/ # Updating varioust stuff, start using X-Description /tmp/gtk3-0.12.5.6/debian $ gvim * /tmp/gtk3-0.12.5.6/debian $ darcs rec /tmp/gtk3-0.12.5.6/debian $ darcs put darcs.debian.org:/darcs/pkg-haskell/haskell-gtk3 /tmp/gtk3-0.12.5.6/debian $ alioth ~ $ /darcs/pkg-haskell/tools/add-hooks.sh haskell-gtk3 ~ $ exit # Back to the normal flow $ cd debian/pkg-haskell/repos/haskell-cairo/ ~/debian/pkg-haskell/repos/haskell-cairo $ darcs pull # Check the changes between current and latest (especially build depends) ~/debian/pkg-haskell/repos/haskell-cairo $ firefox "$(diff-upgrade.sh)" # mass upgrade does the changelog entry, based on the latest on hackage ~/debian/pkg-haskell/repos/haskell-cairo $ mass-upgrade.sh . # update control file accordingly ~/debian/pkg-haskell/repos/haskell-cairo $ gvim control # add the changes to the new-release-commit done by mass-upgrade (just say y) ~/debian/pkg-haskell/repos/haskell-cairo $ darcs amend # done: mark as ready to built: ~/debian/pkg-haskell/repos/haskell-cairo $ mass-release.sh . # same for the other packages (gio, glib, gtk, pang) # darcs diff in all-packages/ is my TODO-List # gtk3 is new, so I just ~/debian/pkg-haskell/repos/haskell-pango $ cd ~/debian/pkg-haskell/repos ~/debian/pkg-haskell/repos $ darcs get darcs.debian.org:/darcs/pkg-haskell/haskell-gtk3 ~/debian/pkg-haskell/repos $ mass-release.sh haskell-gtk3 # time to build (first parameter is the schroot to use, second the build directory) ~/debian/pkg-haskell/repos $ ../tools/mass-build.sh haskell ../build haskell-pango haskell-gio haskell-cairo haskell-glib haskell-gtk haskell-gtk3 # this # 1. Checks which of the arguments are actually marked for release (others are ignored, so passing haskell-* is fine as well) # 2. Creates source tarballs (directly from the repo and the original tarball, by manually calling dpkg-source, via debian2dsc.sh) # 3. Runs edos-debbuildcheck to see if any packages can be built, based on unstable + locally built packages # 4. Builds them # 5a. If successful, runs "debcommit -r" in the repository, to commit the release and tag it. # 5b. If not, reverts the release, i.e. sets it back to UNRELEASED. # 6. Updates the Packages file in the build directory # 7. Goes to step 3 # This time, I get # Packages not yet buildable: # haskell-glib haskell-cairo haskell-pango haskell-gio haskell-gtk haskell-gtk3 ~/debian/pkg-haskell/repos $ less ../build/edos-failures.log # I need to upgrade gtk2hs-buildtools (same steps as above) # next try ~/debian/pkg-haskell/repos $ ../tools/mass-build.sh haskell ../build haskell-pango haskell-gio haskell-cairo haskell-glib haskell-gtk haskell-gtk3 gtk2hs-buildtools # stuff builds... # Now I get a failure in gtk2hs-buildtools, so it is no longer marked for release ~/debian/pkg-haskell/repos $ cd gtk2hs-buildtools # fix ~/debian/pkg-haskell/repos/gtk2hs-buildtools $ vim rules # commit (can also be done with debcommit if the change is mentioned in the changelog) ~/debian/pkg-haskell/repos/gtk2hs-buildtools $ darcs rec ~/debian/pkg-haskell/repos/gtk2hs-buildtools $ mass-release.sh . ~/debian/pkg-haskell/repos/gtk2hs-buildtools $ cd .. ~/debian/pkg-haskell/repos $ ../tools/mass-build.sh haskell ../build haskell-pango haskell-gio haskell-cairo haskell-glib haskell-gtk haskell-gtk3 gtk2hs-buildtools # gtk2hs-buildtools builds, but the rest not (missing build-depends). # Noticed that gtk2hs-buildtools has different version # numbers than the embedded c2hs. # Used http://hdiff.luite.com/cgit/gtk2hs-buildtools/ to figure out that # 0.12.5.0 is the first that shipped c2hs-0.13.8 ~/debian/pkg-haskell/repos $ gvim haskell-{pango,gio,cairo,glib,gtk,gtk3}/control # add the change to the version bump commit ~/debian/pkg-haskell/repos $ for d in haskell-{pango,gio,cairo,glib,gtk}; do darcs amend --repodir=$d; done # for gtk3 the latest patch was already pushed, so do not amend it ~/debian/pkg-haskell/repos $ darcs record --repodir=haskell-gtk3 ~/debian/pkg-haskell/repos $ ../tools/mass-build.sh haskell ../build haskell-pango haskell-gio haskell-cairo haskell-glib haskell-gtk haskell-gtk3 gtk2hs-buildtools # now everything builds, in the right order, using the built packages as # build-depends, in a clean¹ schroot. # While it builds ~/debian/pkg-haskell/repos/tools/all-packages $ darcs rec ~/debian/pkg-haskell/repos/tools/all-packages $ darcs push # Build finished... # Time to sign, upload and push, all automatically done by ~/debian/pkg-haskell/repos $ cd ../build/ # -k is key to sign (important when sponsoring), ../repos is path to the repository (to push), *.changes is what to upload ~/debian/pkg-haskell/build $ mass-upload.sh -k F0FBF51F ../repos/ *.changes # it also renames the *.changes files, so this command is the same every time # done, 11:31 Took me longer than anticipated, but packaging a new package is a bit more work, and I had to do a few round trips to get the gtk2hs-buildtools story right. Greetings, Joachim ¹ Well, I do have ghc already installed, this speeds up things. -- Joachim "nomeata" Breitner Debian Developer nome...@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nome...@joachim-breitner.de | http://people.debian.org/~nomeata
signature.asc
Description: This is a digitally signed message part