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

Re: experimental updates for haskell-debian and cabal-debian?



Hi,

Am Donnerstag, den 28.03.2013, 13:37 -0400 schrieb Michael Alan Dorman:
> [..]
>
> At least I learned a bit. ;)

That’s the spirit!

> Anyway, ISTM that these should be updated in experimental.  I'm happy to
> try and do this---that said, while I'm fluent in git, I'm a total newbie
> in darcs.

Don’t worry, it should not be too hard, as we are not doing too fancy
things.

> I've read the Darcs intro on the wiki, and I think there are some
> unstated assumptions that are confusing me, so I wanted to confirm.

Possibly. Please do improve the wiki page if your confusion is resolved.

> First, do I understand correctly that the only thing being put into
> darcs is the debian/ directory?  So the .orig.tar.gz and other files
> exist entirely elsewhere?  

Correct.

> (This may seem obvious, but I'm used to a git+pristine-tar workflow that
> keeps everything accessible from git.)

I know, but I never liked that workflow. (Not that it matters here, but
in case you are curious: Too much duplication of data, too much
annoyance with trying git to manage three branches that should be in
sync, bad experience with git-buildpackage suddendly creating a
new .orig.tar.gz just because the pristine-tar branch was not checked
out).

And in our case all packages are available from a single consistent
archive, so with uscan, this works great.

> So to update a package would involve, say:
> 
> apt-get source <pkg>
> cd <src>
> uupdate ../<new .tar.gz>
> cd ../<new-src>
> mv debian debian.updated
> darcs get darcs.debian.org:/darcs/pkg-haskell/<pkg>
> <maybe re-run cabal-debian, do any other updates, test build>
> darcs record -a
> <build and upload>
> 
> Does that sound sensible at least?

It does, but it it is easier to use the tools in
http://darcs.debian.org/darcs/pkg-haskell/tools/
(which is a darcs repo itself). Here is one possible (untested) way:

$ pkg-haskell-uupdate <pkg>
# This checks out the debian/ dir, finds out the new version number from
# hackage, and bumps it in debian/changelog
$ pkg-haskell-checkout <pkg>
$ cd <pkg>
$ vim debian/control
# Important: Adjust build dependencies to match the .cabal file.
# Use http://hdiff.luite.com/cgit// for convenient review of the changes
$ debcommit -m 'Adjusted build dependencies'
$ dch -r '' -D experimental
$ dpkg-buildpackage # or whatever you do
$ debcommit -r
$ debrelease
$ darcs push --repo=debian

And here is another one, which works well if you do not have to patch
stuff but rather only work with the debian directory, as it never
actually unpacks the upstream source, and scales well to dozends of
packages (then also using mass-change.sh):

$ darcs get darcs.debian.org:/darcs/pkg-haskell/<pkg>
$ cd <pkg>
$ firefox $(diff-upgrade.sh)
# Shows the diff from the current to the newest version via hdiff
$ mass-upgrade .
$ vim control # adjust according to the diff
$ darcs amend 
$ mass-release -D experimental .
$ mass-build <sbuilder-name> .../build-output .
# This build, and if it works, runs "debcommit -r"
# upload in .../build-output as usual
$ darcs push

Also, I do not use cabal-debian but edit stuff by hand, using the
template at
http://anonscm.debian.org/darcs/pkg-haskell/tools/template-debian/
This is mostly out of habit and works-for-me, so I’m not speaking
against cabal-debian. I’m just saying that I don’t guarantee for it, and
I will nag about potentially issues, no matter whether you did them or
cabal-debian did them for you :-)

If you have any questions, just ask,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: