[arch-haskell] Layout of ABS tree for Haskell packages?

Xyne xyne at archlinux.ca
Sat Oct 12 07:36:52 UTC 2013

> > Magnus> I've just downloaded all 1937 packages maintained by
> > Magnus> arch-haskell on AUR, and I'm about to put them all in a git
> > Magnus> repository.  Before doing that I thought I'd ask if anyone has
> > Magnus> suggestions on the directory hierarchy in that repo?
> >
> > What do you think about mimic the Hackage hierarchy?
> It wouldn't be possible to mimic it completely since hackage allows
> several categories for a single package.  However, the packages in AUR
> all have a single category (even though I'm not sure how they get
> them), maybe we could use that.

I would ignore the AUR categories completely in the git repo.  Those categories
are largely ignored by Arch and may be removed later. Also, as the ABS and
binary repos will be separate from the AUR, I see no reason to use those

> > Magnus> The only criterion I can think of is that we'd probably would
> > Magnus> want binary and source packages separated in some way.
> >
> > I agree with that. Binaries could go all in one bin directory (there
> > is no binary category in Hackage ;) )

I don't see the point of making such a distinction in the git repo. Whether the
package is distributed in binary or source form has no effect on the PKGBUILD
and local source files. I think the git repo should be agnostic of what is done
with the packages downstream.

To maintain the binary repo we will need to create some tools. Those tools can
use a separate list of packages to determine what to build. Changing that list
will therefore not alter the hierarchy in the git repo.

Categorization can be added to some interface for accessing the PKGBUILDs
(e.g. on Hackage, archlinux.org or elsewhere). That would enable packages to
follow the same categorization that Hackage uses, including multiple categories
for a single package. It would also be more homogeneous and intuitive,
preventing confusion when using both hackage and our ABS system.

Basically, I think we should keep everything modular as far as possible.

I should also clarify that when I suggested an ABS system, I simply meant a way
to provide PKGBUILDs and local source files for the end user as they currently
obtain from the AUR. I didn't not mean that we should mimic all aspects of the
Arch ABS system and "abs" package. I think it would be simple enough to have a
single base directory of all the current PKGBUILDs and local source files on a
server, e.g. current/foo/, current/bar/. They could be easily categorized with
a second directory using symlinks, e.g. /categories/network/foo/
--> /current/foo/. A script would create such symlinks based on what is present
in the directory and the current categorization on Hackage.

Other thoughts:
* The translation table of Hackage names to Arch names (currently hardcoded
  into cabal2arch) should be easily accessible programmatically for use in
  scripts and other tools (e.g. bauerbill).

  In general, all metadata should be programmatically accessible to support and
  encourage the building of tools for working with packages.

More information about the arch-haskell mailing list