[Haskell-cafe] Cabalizing darcs

2008-04-23 Thread Gwern Branwen
So recently I spent a bit of time working on a cabalization of Darcs. It works 
well for me, and is reasonably easy to apply (attached are three files; do a 
'darcs get --lazy http://darcs.net' with Darcs-2 to get the latest, and copy 
the files into it, the usual autoconf, and it should then work as normal; if 
this doesn't work for you, I'd appreciate knowing).

My question for y'all is: would you find an unofficial version of Darcs - one 
with the cabalization added and uploaded to Hackage - useful? Or would it just 
be frustrating and redundant and Not Good?

(If yes, any suggestions for a package name? 'darcs' is out, but 'darcs-cb' and 
'darcs-cabalized' strike me as horribly clunky or obscure.)

--
gwern
Threat WANK football Talent anarchy RIT interception Hutsul forschung ISS
-- @configure_input@
-- System-dependent values used by Distribution.Simple.defaultUserHooks
executable: darcs
CPP-options: @CPPFLAGS@
ld-options: @LDFLAGS@
cc-options: -DPACKAGE_VERSION=@PACKAGE_VERSION@Name:   darcs
version:2.0.0
License:GPL
License-file:   COPYING
Author: David Roundy [EMAIL PROTECTED] et al.
Maintainer: [EMAIL PROTECTED]

Stability:  Stable
Category:   Development
Synopsis:   David's Advanced Version Control System
Description:Darcs is a revision control system, along the lines of CVS or 
arch.
That means that it keeps track of various revisions and 
branches of
your project, allows for changes to propagate from one branch 
to another.
Darcs is intended to be an _advanced_ revision control system.
Darcs has two particularly distinctive features which differ 
from other,
centralized, revision control systems:
.
* each copy of the source is a fully functional branch, and
.
* underlying darcs is a consistent and powerful theory of 
patches.
.
The Darcs repository can be found at http://darcs.net/.
Homepage:   http://darcs.net/

Build-Type: Configure
Cabal-Version:  = 1.2
Tested-with:GHC==6.8.2

data-files:  src/darcs_print.pdf, src/darcs_print.ps, src/patch-theory.pdf,
 src/best_practices.tex, src/building_darcs.tex, 
src/configuring_darcs.tex,
 src/features.tex, src/gpl.tex, src/switching.tex,
 tools/cgi/README, tools/cgi/README.in
extra-source-files:
 -- C sources and headers. Are these redundant with c-sources:?
 src/Crypt/sha2.c, src/Crypt/sha2.h, src/atomic_create.c,
 src/atomic_create.h, src/c_compat.c, src/compat.h,
 src/fpstring.c, src/fpstring.h, src/gadts.h,
 src/gitlib.c, src/gitlib.h.in, src/hscurl.c, src/hscurl.h,
 src/hslibwww.c, src/hslibwww.h,
 src/impossible.h, src/maybe_relink.c, src/maybe_relink.h,
 src/umask.c, src/umask.h,
 -- Build files; we include the autoconf files just in case
 -- the user wishes to re-autoconf on her system.
 darcs.buildinfo, darcs.buildinfo.in, configure, configure.ac,
 autoconf.mk, autoconf.mk.in, aclocal.m4, src/Autoconf.lhs.in,
 src/ThisVersion.lhs.in,
 -- Windows files
 src/win32/send_email.c, src/win32/send_email.h, 
src/win32/sys/mman.h,
 src/win32/CtrlC.hs, src/win32/System/Posix/Files.hsc,
 src/win32/System/Posix/IO.hsc, src/win32/System/Posix.hs,
 -- TODO: factor out these standalone executables to other 
sections
 src/preproc.hs, src/darcsman.hs, src/unit.lhs, 
src/make_changelog.hs,
 -- The tools directory would make a sensible 'darcs-tools' 
package
 tools/zsh_completion_new, tools/update_roundup.pl,
 tools/zsh_completion_old, tools/cgi/cgi.conf,
 tools/cgi/darcs.cgi.in, tools/cgi/darcs.cgi,
 tools/cgi/cgi.conf.in, tools/cgi/xslt/repos.xslt,
 tools/cgi/xslt/errors.xslt, tools/cgi/xslt/browse.xslt,
 tools/cgi/xslt/common.xslt, tools/cgi/xslt/annotate.xslt,
 tools/cgi/xslt/styles.css, tools/cgi/xslt/rss.xslt,
 tools/cgi/xslt/patches.xslt, tools/cgi/xslt/errors.xml,
 tools/cgi/README.in, tools/cygwin-wrapper.bash,
 tools/upload.cgi, tools/darcs_completion
extra-tmp-files: darcs.buildinfo

flag small_base
description: Choose the new smaller, split-up base package. Defaults to 
True.

Executable  darcs
main-is:darcs.lhs
hs-source-dirs: src

build-depends: regex-compat, mtl, parsec, html, QuickCheck, HUnit
if flag(small_base)
build-depends: base = 3, unix, old-time, directory, process, 
containers, array, bytestring
else
build-depends: base  3

  

Re: [Haskell-cafe] Cabalizing darcs

2008-04-23 Thread Philip Weaver
It looks quite clean (no funny business in Setup.lhs).  I would favor
using this cabalized version over the other.  Thanks!

So, autoconf/configure generate cryptol.buildinfo from
cryptol.buildinfo.in.  Did you change configure.ac much?  And the
Makefile is no longer needed at all, right?

- Phil

2008/4/23 Gwern Branwen [EMAIL PROTECTED]:
 So recently I spent a bit of time working on a cabalization of Darcs. It 
 works well for me, and is reasonably easy to apply (attached are three files; 
 do a 'darcs get --lazy http://darcs.net' with Darcs-2 to get the latest, and 
 copy the files into it, the usual autoconf, and it should then work as 
 normal; if this doesn't work for you, I'd appreciate knowing).

  My question for y'all is: would you find an unofficial version of Darcs - 
 one with the cabalization added and uploaded to Hackage - useful? Or would it 
 just be frustrating and redundant and Not Good?

  (If yes, any suggestions for a package name? 'darcs' is out, but 'darcs-cb' 
 and 'darcs-cabalized' strike me as horribly clunky or obscure.)

  --
  gwern
  Threat WANK football Talent anarchy RIT interception Hutsul forschung ISS

 ___
  Haskell-Cafe mailing list
  Haskell-Cafe@haskell.org
  http://www.haskell.org/mailman/listinfo/haskell-cafe


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabalizing darcs

2008-04-23 Thread David Roundy
On Wed, Apr 23, 2008 at 02:55:49PM -0400, Gwern Branwen wrote:
 So recently I spent a bit of time working on a cabalization of Darcs. It
 works well for me, and is reasonably easy to apply (attached are three
 files; do a 'darcs get --lazy http://darcs.net' with Darcs-2 to get the
 latest, and copy the files into it, the usual autoconf, and it should
 then work as normal; if this doesn't work for you, I'd appreciate
 knowing).

It certainly doesn't work for me.
-- 
David Roundy
Department of Physics
Oregon State University


signature.asc
Description: Digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabalizing darcs

2008-04-23 Thread Gwern Branwen
On 2008.04.23 12:26:35 -0700, Philip Weaver [EMAIL PROTECTED]
scribbled 1.2K characters:
 It looks quite clean (no funny business in Setup.lhs).  I would favor
 using this cabalized version over the other.  Thanks!

 So, autoconf/configure generate cryptol.buildinfo from
 cryptol.buildinfo.in.  Did you change configure.ac much?

I had to make a number of changes to configure.ac - the problem was
that a lot of Darcs capabilities get modified through CPP; hence the
darcs.buildinfo, to smuggle exported variables from the configure
script to Cabal and to insert them in the correct fields. But not all
of the necessary information was exported, so I had to fix that.
Straightforward if you understand what you need. But there seems to be
very little documentation on Cabal and buildinfos, so I had to do a
bit of trial-and-error (Also, I dunno how you guys do Cryptol so
can't speak to that.)

 And the
 Makefile is no longer needed at all, right?

 - Phil

Strictly speaking, the Darcs makefile does a lot of stuff besides just
building and installing - it also generates various forms of
documentation (Haddocks, the LaTeX manual for Darcs), run the tests,
and do quite a bunch of miscellaneous stuff like support for some
Windows installer and Debian package format. Some of this could no
doubt be handled in a pure Cabal framework (ie. I understand Goerzen
has a package which can automatically take a Cabal tarball and make a
Debian source deb), but I was just aiming at the building part. If
that's all you need (like most users), then the makefile isn't needed,
yes.

--
gwern
BLACKER Loin JAVA anthrax AG Zemin The Internet Sayeret 3P-HV
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabalizing darcs

2008-04-23 Thread Philip Weaver
On Wed, Apr 23, 2008 at 4:49 PM, Gwern Branwen [EMAIL PROTECTED] wrote:
 On 2008.04.23 12:26:35 -0700, Philip Weaver [EMAIL PROTECTED]
  scribbled 1.2K characters:

  It looks quite clean (no funny business in Setup.lhs).  I would favor
   using this cabalized version over the other.  Thanks!
  
   So, autoconf/configure generate cryptol.buildinfo from
   cryptol.buildinfo.in.  Did you change configure.ac much?

  I had to make a number of changes to configure.ac - the problem was
  that a lot of Darcs capabilities get modified through CPP; hence the
  darcs.buildinfo, to smuggle exported variables from the configure
  script to Cabal and to insert them in the correct fields. But not all
  of the necessary information was exported, so I had to fix that.
  Straightforward if you understand what you need. But there seems to be
  very little documentation on Cabal and buildinfos, so I had to do a
  bit of trial-and-error (Also, I dunno how you guys do Cryptol so
  can't speak to that.)

Trial-and-error was my experience with buildinfo files, too.

   And the
   Makefile is no longer needed at all, right?
  
   - Phil

  Strictly speaking, the Darcs makefile does a lot of stuff besides just
  building and installing - it also generates various forms of
  documentation (Haddocks, the LaTeX manual for Darcs), run the tests,
  and do quite a bunch of miscellaneous stuff like support for some
  Windows installer and Debian package format. Some of this could no
  doubt be handled in a pure Cabal framework (ie. I understand Goerzen
  has a package which can automatically take a Cabal tarball and make a
  Debian source deb), but I was just aiming at the building part. If
  that's all you need (like most users), then the makefile isn't needed,
  yes.

So do you feel like this process yielded an easier to maintain build system?
  --
  gwern
  BLACKER Loin JAVA anthrax AG Zemin The Internet Sayeret 3P-HV

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe