Coder Social home page Coder Social logo

cabal-debian's People

Contributors

creichert avatar ddssff avatar iliastsi avatar iu-guest avatar khibino avatar nomeata avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cabal-debian's Issues

Error on Package gtksourceview3 (apt-file: readProcessWithExitCode)

When trying to use the command cabal-debian --official and cabal-debian on the gtksourceview3-0.13.1.1, an error is thrown:

$ cabal-debian --official
cabal-debian: apt-file: readProcessWithExitCode: runInteractiveProcess: exec: does not exist (No such file or directory)

I haven't yet had time to investigate so any advice would be helpful.

Test suite failure from Stackage

Test suite cabal-debian-tests: RUNNING...
^MCases: 7  Tried: 0  Errors: 0  Failures: 0^MCases: 7  Tried: 1  Errors: 0  Failures: 0^M
              ^M### Failure in: Debianization Tests:1:test5 - test-data/creativeprompts
test5 - test-data/creativeprompts
diff not empty:
Modified: "debian/control"
--- old/debian/control
+++ new/debian/control
@@
  libghc-mtl-dev,
  libghc-network-dev,
- libghc-old-locale-dev,
- libghc-old-time-dev,
@@
  libghc-parsec3-dev (>= 3) | libghc-parsec2-dev (<< 3),
  libghc-random-dev,

^MCases: 7  Tried: 2  Errors: 0  Failures: 1^M                                          ^M### Failure in: Debianization Tests:2:test6 - test-data/artvaluereport2
test6 - test-data/artvaluereport2
expected: (ExitSuccess,"","")
 but got: (ExitFailure 1,"","\ntest-data/artvaluereport2/input/debian/Debianize.hs:4:8:\n    Could not find module \8216Control.Lens\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:9:8:\n    Could not find module \8216Debian.Changes\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:10:8:\n    Could not find module \8216Debian.Debianize\8217\n
    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:11:8:\n
Could not find module \8216Debian.Debianize.Finalize\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:12:8:\n    Could not find module \8216Debian.Debianize.Optparse\8217\n
    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:13:8:\n
Could not find module \8216Debian.Pretty\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:14:8:\n    Could not find module \8216Debian.Policy\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:15:8:\n    Could not find module \8216Debian.Relation\8217\n    Use -v to see a list of the files searched for.\n\ntest-data/artvaluereport2/input/debian/Debianize.hs:16:8:\n    Could not find module \8216Debian.Version\8217\n    Perhaps you meant Data.Version (from base-4.8.1.0)\n    Use -v to see a list of the files searched for.\n")
^MCases: 7  Tried: 3  Errors: 0  Failures: 2^M                                          ^M### Failure in: Debianization Tests:3:test7 - debian/Debianize.hs

Install data-files into /usr/share/PackageName/?

Currently the data-files are installed into "/usr/share" </> map toLower packagename, but I'm pretty sure this is wrong (for packages that have capital letters in their names.) Also, it was ignoring the value returned by Distribution.PackageDescription.dataDir, but I think it needs to prefer this to the constructed value.

Strange error when building with GHC-7.6 - anyone have this installed who can investigate?

This error occurs in a file with Rank2Types set in the header:

src/Debian/Debianize/Options.hs:223:11:
    Illegal polymorphic or qualified type: Lens DebInfo Relations
    Perhaps you intended to use -XRankNTypes or -XRank2Types
    In the type signature for `addDep':
      addDep :: Monad m =>
            (BinPkgName -> Lens DebInfo Relations) -> String -> CabalT m ()

Here is the build: https://travis-ci.org/ddssff/cabal-debian/jobs/50780350

Homepage field missing

The homepage field is missing. If not specified in the .cabal file, this should default to http://hackage.haskell.org/package/foo.

Less intrusive update

Hi,

greetings from DebConf. We are currently improving our tools, and we want to make updating packages more efficient. Usually, the only manual step in doing that is updating the build dependencies; something that cabal-debian can do quite well.

The problem is that currently cabal-debian will override other parts of the packaging, even if we had manually changed them (most notably, copyright and description).

So it would be great to have a flag to cabal-debian to instruct it to only update Build-Depends and Build-Depends-Indep (and maybe a few more that are usually not modified, like Homepage, the VCS fields) but none of the other fields.

Such a flag could be called --update-dependencies.

Thanks!
Joachim

Loses parts of the changelog

Hi,

with a bunch of upgrades pending, I’m looking into cabal-debian again.

Running it in a freshly checked out haskell-zlib folder, I get this

/tmp/haskell-zlib-0.5.4.1 $ /home/jojo/build/haskell/cabal-debian/.cabal-sandbox/bin/cabal-debian --compare
Debianization (dry run):
--- old/debian/changelog
+++ new/debian/changelog
@@
-haskell-zlib (0.5.4.1-2) experimental; urgency=low
-
-  * Adjust watch file to new hackage layout
-  * Depend on haskell-devscripts 0.9, found in experimental
-
- -- Joachim Breitner <[email protected]>  Sat, 20 Dec 2014 17:12:54 +0100
-
 haskell-zlib (0.5.4.1-1) unstable; urgency=low

It shouldn’t lose the last changelog entry, should it?

cabal-debian does not detect pkg-config

Cabal-debian does not detect the need for pkg-config.

An example of a package that needs pkg-config is HOpenCV.

The resulting control file does not require pkg-config, so the build breaks:

https://launchpadlibrarian.net/318334013/buildlog_ubuntu-xenial-amd64.hopencv_0.4.0.1-0~xenial_BUILDING.txt.gz

Configuring HOpenCV-0.4.0.1...
Dependency allocated-processor >=0.0.1: using allocated-processor-0.0.2
Dependency base ==4.*: using base-4.8.2.0
Dependency vector-space -any: using vector-space-0.10.2
hlibrary.setup: The program 'pkg-config' version >=0.9.0 is required but it
could not be found.

The need for pkg-config is mentioned in HOpenCV's cabal file. So, cabal-debian could, in principle, deduce it.

Add cabal-debian to stackage

Hi,

I’d like Debian to follow stackage more closely, as they already identify a consistent set of packages from Hackage. One of our packages missing there is cabal-debian. Please consider joining stackage – you’ll get some free QA in return: http://www.stackage.org/authors

Thanks,
Joachim

4.17.3 seems to depend on Cabal 1.21 unconditionally

In src/Debian/Debianize/Options.hs you're using the constructor GHCJS. I guess this should be a constructor of CompilerFlavor from the Cabal package. However, Distribution.Compiler fromCabal 1.20 doesn't contain this constructor. I guess it is new in Cabal 1.21, but I couldn't check, since that version isn't on hackage.
B.t.w. where do you get Cabal 1.21 from?

Regards
Sven

Should we really omit versions on prof dependencies?

I just ran into the following situation: I built the transformers-0.4.2.0, but in the debianization I renamed the packages so they wouldn't conflict with the packages provided by ghc and ghc-prof: libghc-transformers4-dev instead of libghc-transformers-dev, libghc-transformers4-prof instead of libghc-transformers-prof. That package is built and uploaded, and now I want to build the latest mtl, whose cabal file specifies transformers == 0.4.*. Here are the related debian dependencies that cabal-debian generates:

libghc-transformers4-dev (>= 0.4),
ghc | libghc-transformers4-dev (<< 0.5),
ghc-prof | libghc-transformers4-prof,

So ghc can satisfy transformers << 0.5, but it can't satisfy >= 0.4. Consequently , libghc-transformers4-dev does get installed (rather than just ghc) to build the package. Unfortunately, libghc-transformers4-prof does not get pulled in, because it looks like ghc-prof is sufficient for the build.

Issue: should we therefore include the same version dependencies for the prof packages?

Detect packages that use Template Haskell

Hi,

this is a tricky one: As not all architectures in Debian support Template Haskell, every TH-using package needs a build-dependency on the virtual package ghc-ghci.

Now the correct way to detect the use of Template Haskell is looking for {-# LANGUAGE TemplateHaskell #-} in the sources. But I’m not sure if you want to go down that route...

Anyways, I wanted to record this, without pushing for it.

Greetings,
Joachim

Copyright starts with `Just`

/tmp $ cabal unpack quickcheck-unicode
cdUnpacking to quickcheck-unicode-1.0.0.1/
/tmp $ cd quickcheck-unicode-1.0.0.1/
/tmp/quickcheck-unicode-1.0.0.1 $ ~/build/haskell/cabal-debian/.cabal-sandbox/bin/cabal-debian  --official 
/tmp/quickcheck-unicode-1.0.0.1 $ head -n 1 debian/copyright 
Just Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

Treatment of PackageDescription.dataFiles is awkward

Currently all the files in dataFiles are installed into a package with the name somehow derived from utilsPackageNameBase, which also gets any leftover files. It would be nice if there was a dataFilesPackage setting, an extraFilesPackage setting, and files were installed into each as appropriate.

VCS fields missing

I guess that is something you don’t want in your in-house-packages, but for the official packages we want

Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-foo
Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-foo

in debian/control. Maybe we need to introduce a --official flag for the various only-for-official-packges features.

Initial release changelog entry on update

I tried to update a debian package to a new upstream version. The result was mostly satisfying, but the created changelog entry said was like this:

+haskell-setlocale (1.0.0.3-1) UNRELEASED; urgency=low
+
+  * Initial release (Closes: #nnnn)
+
+ -- Debian Haskell Group <[email protected]>  Thu, 09 Jul 2015 18:05:26 +0200

A more sane thing would be to create a changelog entry in the form New upstream release (if the last changelog entry had a smaller upstream version).

src/Debian/Debianize/Goodies.hs:165:22: No instance for (Show (D.Server -> Int))

When trying to build cabal-debian-4.32.2 in Stackage Nightly:

src/Debian/Debianize/Goodies.hs:165:22:
    No instance for (Show (D.Server -> Int))
      (maybe you haven't applied enough arguments to a function?)
      arising from a use of ‘show’
    In the expression: show D.port
    In the expression:
      ["--base-uri",
       "http://" ++ D.hostname x ++ ":" ++ show (D.port x) ++ "/",
       "--http-port", show D.port]
    In an equation for ‘oldClckwrksServerFlags’:
        oldClckwrksServerFlags x
          = ["--base-uri",
             "http://" ++ D.hostname x ++ ":" ++ show (D.port x) ++ "/",
             "--http-port", ....]

Different formatting of Dependencies

Currently, the tool generates

Build-Depends: debhelper (>= 7.0)
               , haskell-devscripts (>= 0.8)
               , cdbs
               , ghc
               , ghc-prof
               , libghc-dlist-dev (>= 0.4)
               , libghc-dlist-dev (<< 0.8)
               , libghc-dlist-prof (>= 0.4)
               , libghc-dlist-prof (<< 0.8)

Slight bikeshedding, but I’d rather prefer to see

Build-Depends: debhelper (>= 7.0),
  devscripts (>= 0.8),
  cdbs,
  ghc,
  ghc-prof,
  libghc-dlist-dev (>= 0.4),
  dlist-dev (<< 0.8),
  dlist-prof (>= 0.4),
  dlist-prof (<< 0.8),

(note the trailing comma). I believe the main reason for the layout above was that Clint did not know that trailing comma in the last lines are allowed in debian/control.

Generated versioned dependencies on libraries provided by GHC

I was recently packaging Cabal (the library) 1.22.6.0 and cabal-debian generated a bunch of dependencies on libraries that are shipped with GHC.

Normally this wouldn't be a problem without version constraints, but the generated version constraints force the usage of a real package instead of a virtual one, so the dependencies can't actually be satisfied.

I was using cabal-debian 4.31.

Use ${haskell:ShortDescription}

The current template for official packaging avoid putting the description in multiple times, and also does not contain the Haskell blurb verbatim:

[source stanca]
X-Description: Short description of foo
 Long description of foo

Package: libghc-foo-dev
Architecture: any
Depends: ${haskell:Depends}
  , ${shlibs:Depends}
  , ${misc:Depends}
  , libfoo-dev
Recommends: ${haskell:Recommends}
Suggests: ${haskell:Suggests}
Provides: ${haskell:Provides}
Description: ${haskell:ShortDescription}${haskell:ShortBlurb}
 ${haskell:LongDescription}
 .
 ${haskell:Blurb}

Package: libghc-foo-prof
Architecture: any
Depends: ${haskell:Depends}
  , ${misc:Depends}
Recommends: ${haskell:Recommends}
Suggests: ${haskell:Suggests}
Provides: ${haskell:Provides}
Description: ${haskell:ShortDescription}${haskell:ShortBlurb}
 ${haskell:LongDescription}
 .
 ${haskell:Blurb}

Package: libghc-foo-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}, ${haskell:Depends}
Recommends: ${haskell:Recommends}
Suggests: ${haskell:Suggests}
Description: ${haskell:ShortDescription}${haskell:ShortBlurb}
 ${haskell:LongDescription}
 .
 ${haskell:Blurb}

It would be nice if cabal-debian would also use this form.

The copyright should be machine-readable

The template is

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: foo
Upstream-Contact: Jack Upstream Developer <[email protected]>
Source: http://hackage.haskell.org/package/foo

Files: *
Copyright: 1970 Jack Upstream Developer
License: foo license

Files: debian/*
Copyright: held by the contributors mentioned in debian/changelog
License: foo license

License: foo license
 This is the text of the foo license.

Where “This is the text of the foo license.“ is replaced by the upstream license. Bonus points for extracting the copyright from that file and putting it in here separately.

(This whole copyright file handling probably needs more finetuning.)

`--compare` on a just created directory shows differences

This is really minor, but maybe it would be a good sanity check if

$ cabal-debian

followed by

$ cabal-debian --compare

would show no differences.

Currently (with --official passed in both cases), I get two unimportant differences (order of field, and an empty line):

Debianization (dry run):
--- old/debian/control
+++ new/debian/control
@@
 Standards-Version: 3.9.5
 Homepage: http://hackage.haskell.org/package/mtl
-Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-mtl
-Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-mtl
 X-Description: Monad classes, using functional dependencies
  Monad classes using functional dependencies, with instances
@@
  by Mark P Jones, in /Advanced School of Functional Programming/, 1995
  (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).
+Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-mtl
+Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-mtl

 Package: libghc-mtl-dev
--- old/debian/rules
+++ new/debian/rules
@@


-

cabal-debian-4.23.1 does not compile

I'm citing from http://hydra.cryp.to/build/599877/log/raw:

[11 of 31] Compiling Debian.Debianize.CopyrightDescription ( src/Debian/Debianize/CopyrightDescription.hs, dist/build/Debian/Debianize/CopyrightDescription.o )

src/Debian/Debianize/CopyrightDescription.hs:40:37:
    Module ‘Debian.Pretty’ does not export ‘display'’

src/Debian/Debianize/CopyrightDescription.hs:40:47:
    Module ‘Debian.Pretty’ does not export ‘ppDisplay'’

Unexpected mention of Author and Upstream-Maintainer in the Description

For glob-0.7.5 I get

Description: Globbing library
 A library for globbing: matching patterns against file paths.
 .
  Author: Matti Niemenmaa
  Upstream-Maintainer: Matti Niemenmaa <[email protected]>
 .
 This package provides a library for the Haskell programming language.
 See http:///www.haskell.org/ for more information on Haskell.

I don’t think the Author etc. should be here.

Compile failure with GHC 7.8/7.6

I just noticed that latest version fails to compile with GHC 7.6.3 due to

Configuring component lib from cabal-debian-4.35.5
Preprocessing library cabal-debian-4.35.5...
[ 1 of 30] Compiling System.Git       ( src/System/Git.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/System/Git.o )
[ 2 of 30] Compiling Paths_cabal_debian ( /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/autogen/Paths_cabal_debian.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Paths_cabal_debian.o )
[ 3 of 30] Compiling Debian.Debianize.Interspersed ( src/Debian/Debianize/Interspersed.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/Interspersed.o )
[ 4 of 30] Compiling Debian.Debianize.Changelog ( src/Debian/Debianize/Changelog.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/Changelog.o )
[ 5 of 30] Compiling Debian.Orphans   ( src/Debian/Orphans.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Orphans.o )
[ 6 of 30] Compiling Debian.Debianize.VersionSplits ( src/Debian/Debianize/VersionSplits.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/VersionSplits.o )
[ 7 of 30] Compiling Distribution.Version.Invert ( src/Distribution/Version/Invert.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Distribution/Version/Invert.o )
[ 8 of 30] Compiling Debian.Debianize.Prelude ( src/Debian/Debianize/Prelude.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/Prelude.o )
[ 9 of 30] Compiling Debian.Debianize.BasicInfo ( src/Debian/Debianize/BasicInfo.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/BasicInfo.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package containers-0.5.0.0 ... linking ... done.
Loading package transformers-0.5.2.0 ... linking ... done.
Loading package mtl-2.2.1 ... linking ... done.
Loading package syb-0.6 ... linking ... done.
Loading package set-extra-1.4 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package old-locale-1.0.0.5 ... linking ... done.
Loading package time-1.4.0.1 ... linking ... done.
Loading package unix-2.6.0.1 ... linking ... done.
Loading package ansi-terminal-0.6.2.3 ... linking ... done.
Loading package ansi-wl-pprint-0.6.7.3 ... linking ... done.
Loading package filepath-1.3.0.1 ... linking ... done.
Loading package directory-1.2.0.1 ... linking ... done.
Loading package process-1.1.0.2 ... linking ... done.
Loading package binary-0.5.1.1 ... linking ... done.
Loading package bytestring-builder-0.10.8.1.0 ... linking ... done.
Loading package text-1.2.2.1 ... linking ... done.
Loading package hashable-1.2.4.0 ... linking ... done.
Loading package pretty-1.1.1.0 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package nats-1.1.1 ... linking ... done.
Loading package transformers-compat-0.5.1.4 ... linking ... done.
Loading package tagged-0.8.5 ... linking ... done.
Loading package unordered-containers-0.2.7.1 ... linking ... done.
Loading package semigroups-0.18.2 ... linking ... done.
Loading package optparse-applicative-0.13.0.0 ... linking ... done.
Loading package newtype-generics-0.5 ... linking ... done.
Loading package memoize-0.8.1 ... linking ... done.
Loading package base-orphans-0.5.4 ... linking ... done.
Loading package stm-2.4.4.1 ... linking ... done.
Loading package StateVar-1.1.0.4 ... linking ... done.
Loading package void-0.7.1 ... linking ... done.
Loading package contravariant-1.4 ... linking ... done.
Loading package distributive-0.5.0.2 ... linking ... done.
Loading package comonad-5 ... linking ... done.
Loading package bifunctors-5.4.1 ... linking ... done.
Loading package exceptions-0.8.3 ... linking ... done.
Loading package prelude-extras-0.4.0.3 ... linking ... done.
Loading package profunctors-5.2 ... linking ... done.
Loading package semigroupoids-5.1 ... linking ... done.
Loading package free-4.12.4 ... linking ... done.
Loading package generic-deriving-1.11.1 ... linking ... done.
Loading package adjunctions-4.3 ... linking ... done.
Loading package kan-extensions-5.0.1 ... linking ... done.
Loading package parallel-3.2.1.0 ... linking ... done.
Loading package reflection-2.1.2 ... linking ... done.
Loading package primitive-0.6.1.0 ... linking ... done.
Loading package vector-0.11.0.0 ... linking ... done.
Loading package lens-4.15.1 ... linking ... done.
Loading package old-time-1.1.0.1 ... linking ... done.
Loading package parsec-3.1.11 ... linking ... done.
Loading package hsemail-1.7.7 ... linking ... done.
Loading package call-stack-0.1.0 ... linking ... done.
Loading package HUnit-1.5.0.0 ... linking ... done.
Loading package polyparse-1.12 ... linking ... done.
Loading package random-1.1 ... linking ... done.
Loading package HaXml-1.25.3 ... linking ... done.
Loading package dlist-0.8.0.2 ... linking ... done.
Loading package fmlist-0.9 ... linking ... done.
Loading package utf8-string-1.0.1.1 ... linking ... done.
Loading package ListLike-4.5 ... linking ... done.
Loading package process-extras-0.4.1.4 ... linking ... done.
Loading package fail-4.9.0.0 ... linking ... done.
Loading package cereal-0.5.4.0 ... linking ... done.
Loading package entropy-0.3.7 ... linking ... done.
Loading package crypto-api-0.13.2 ... linking ... done.
Loading package pureMD5-2.1.3 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package regex-tdfa-1.2.2 ... linking ... done.
Loading package zlib-0.6.1.2 ... linking ... done.
Loading package Unixutils-1.54.1 ... linking ... done.
Loading package bzlib-0.5.0.5 ... linking ... done.
Loading package MonadRandom-0.4.2.3 ... linking ... done.
Loading package mmorph-1.0.9 ... linking ... done.
Loading package transformers-base-0.4.4 ... linking ... done.
Loading package monad-control-1.0.1.0 ... linking ... done.
Loading package either-4.4.1.1 ... linking ... done.
Loading package network-2.6.3.1 ... linking ... done.
Loading package network-uri-2.6.1.0 ... linking ... done.
Loading package prettyclass-1.0.0.0 ... linking ... done.
Loading package regex-posix-0.95.2 ... linking ... done.
Loading package regex-compat-0.95.1 ... linking ... done.
Loading package debian-3.91.2 ... linking ... done.
Loading package data-default-class-0.1.2.0 ... linking ... done.
Loading package data-default-instances-containers-0.0.1 ... linking ... done.
Loading package data-default-instances-dlist-0.0.1 ... linking ... done.
Loading package data-default-instances-old-locale-0.0.1 ... linking ... done.
Loading package data-default-0.7.1.1 ... linking ... done.
Loading package Diff-0.3.4 ... linking ... done.
Loading package Cabal-1.24.1.0 ... linking ... done.
[10 of 30] Compiling Debian.Policy    ( src/Debian/Policy.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Policy.o )
[11 of 30] Compiling Debian.Debianize.BinaryDebDescription ( src/Debian/Debianize/BinaryDebDescription.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/BinaryDebDescription.o )
[12 of 30] Compiling Debian.Debianize.SourceDebDescription ( src/Debian/Debianize/SourceDebDescription.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/Debianize/SourceDebDescription.o )
[13 of 30] Compiling Debian.GHC       ( src/Debian/GHC.hs, /tmp/matrix-worker/1480438619/dist-newstyle/build/x86_64-linux/ghc-7.6.3/cabal-debian-4.35.5/build/Debian/GHC.o )

src/Debian/GHC.hs:45:36:
    Module `System.Environment' does not export `setEnv'
cabal: Failed to build cabal-debian-4.35.5 (which is required by
exe:cabal-debian from cabal-debian-4.35.5).

and with GHC 7.8.4 due to

Configuring component lib from cabal-debian-4.35.5
Preprocessing library cabal-debian-4.35.5...
[ 1 of 30] Compiling System.Git       ( src/System/Git.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/System/Git.o )
[ 2 of 30] Compiling Paths_cabal_debian ( /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/autogen/Paths_cabal_debian.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Paths_cabal_debian.o )
[ 3 of 30] Compiling Debian.Debianize.Interspersed ( src/Debian/Debianize/Interspersed.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/Interspersed.o )
[ 4 of 30] Compiling Debian.Debianize.Changelog ( src/Debian/Debianize/Changelog.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/Changelog.o )
[ 5 of 30] Compiling Debian.Orphans   ( src/Debian/Orphans.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Orphans.o )
[ 6 of 30] Compiling Debian.Debianize.VersionSplits ( src/Debian/Debianize/VersionSplits.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/VersionSplits.o )
[ 7 of 30] Compiling Distribution.Version.Invert ( src/Distribution/Version/Invert.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Distribution/Version/Invert.o )
[ 8 of 30] Compiling Debian.Debianize.Prelude ( src/Debian/Debianize/Prelude.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/Prelude.o )
[ 9 of 30] Compiling Debian.Debianize.BasicInfo ( src/Debian/Debianize/BasicInfo.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/BasicInfo.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package transformers-0.5.2.0 ... linking ... done.
Loading package mtl-2.2.1 ... linking ... done.
Loading package syb-0.6 ... linking ... done.
Loading package set-extra-1.4 ... linking ... done.
Loading package bytestring-0.10.4.0 ... linking ... done.
Loading package old-locale-1.0.0.6 ... linking ... done.
Loading package time-1.4.2 ... linking ... done.
Loading package unix-2.7.0.1 ... linking ... done.
Loading package ansi-terminal-0.6.2.3 ... linking ... done.
Loading package ansi-wl-pprint-0.6.7.3 ... linking ... done.
Loading package filepath-1.3.0.2 ... linking ... done.
Loading package directory-1.2.1.0 ... linking ... done.
Loading package process-1.2.0.0 ... linking ... done.
Loading package binary-0.7.1.0 ... linking ... done.
Loading package text-1.2.2.1 ... linking ... done.
Loading package hashable-1.2.4.0 ... linking ... done.
Loading package pretty-1.1.1.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package nats-1.1.1 ... linking ... done.
Loading package transformers-compat-0.5.1.4 ... linking ... done.
Loading package tagged-0.8.5 ... linking ... done.
Loading package unordered-containers-0.2.7.1 ... linking ... done.
Loading package semigroups-0.18.2 ... linking ... done.
Loading package optparse-applicative-0.13.0.0 ... linking ... done.
Loading package newtype-generics-0.5 ... linking ... done.
Loading package memoize-0.8.1 ... linking ... done.
Loading package base-orphans-0.5.4 ... linking ... done.
Loading package stm-2.4.4.1 ... linking ... done.
Loading package StateVar-1.1.0.4 ... linking ... done.
Loading package void-0.7.1 ... linking ... done.
Loading package contravariant-1.4 ... linking ... done.
Loading package distributive-0.5.0.2 ... linking ... done.
Loading package comonad-5 ... linking ... done.
Loading package bifunctors-5.4.1 ... linking ... done.
Loading package exceptions-0.8.3 ... linking ... done.
Loading package prelude-extras-0.4.0.3 ... linking ... done.
Loading package profunctors-5.2 ... linking ... done.
Loading package semigroupoids-5.1 ... linking ... done.
Loading package free-4.12.4 ... linking ... done.
Loading package generic-deriving-1.11.1 ... linking ... done.
Loading package adjunctions-4.3 ... linking ... done.
Loading package kan-extensions-5.0.1 ... linking ... done.
Loading package parallel-3.2.1.0 ... linking ... done.
Loading package reflection-2.1.2 ... linking ... done.
Loading package primitive-0.6.1.0 ... linking ... done.
Loading package vector-0.11.0.0 ... linking ... done.
Loading package lens-4.15.1 ... linking ... done.
Loading package old-time-1.1.0.2 ... linking ... done.
Loading package parsec-3.1.11 ... linking ... done.
Loading package hsemail-1.7.7 ... linking ... done.
Loading package call-stack-0.1.0 ... linking ... done.
Loading package HUnit-1.5.0.0 ... linking ... done.
Loading package polyparse-1.12 ... linking ... done.
Loading package random-1.1 ... linking ... done.
Loading package HaXml-1.25.3 ... linking ... done.
Loading package dlist-0.8.0.2 ... linking ... done.
Loading package fmlist-0.9 ... linking ... done.
Loading package utf8-string-1.0.1.1 ... linking ... done.
Loading package ListLike-4.5 ... linking ... done.
Loading package process-extras-0.4.1.4 ... linking ... done.
Loading package fail-4.9.0.0 ... linking ... done.
Loading package cereal-0.5.4.0 ... linking ... done.
Loading package entropy-0.3.7 ... linking ... done.
Loading package crypto-api-0.13.2 ... linking ... done.
Loading package pureMD5-2.1.3 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package regex-tdfa-1.2.2 ... linking ... done.
Loading package zlib-0.6.1.2 ... linking ... done.
Loading package Unixutils-1.54.1 ... linking ... done.
Loading package bzlib-0.5.0.5 ... linking ... done.
Loading package MonadRandom-0.4.2.3 ... linking ... done.
Loading package mmorph-1.0.9 ... linking ... done.
Loading package transformers-base-0.4.4 ... linking ... done.
Loading package monad-control-1.0.1.0 ... linking ... done.
Loading package either-4.4.1.1 ... linking ... done.
Loading package network-2.6.3.1 ... linking ... done.
Loading package network-uri-2.6.1.0 ... linking ... done.
Loading package prettyclass-1.0.0.0 ... linking ... done.
Loading package regex-posix-0.95.2 ... linking ... done.
Loading package regex-compat-0.95.1 ... linking ... done.
Loading package debian-3.91.2 ... linking ... done.
Loading package data-default-class-0.1.2.0 ... linking ... done.
Loading package data-default-instances-containers-0.0.1 ... linking ... done.
Loading package data-default-instances-dlist-0.0.1 ... linking ... done.
Loading package data-default-instances-old-locale-0.0.1 ... linking ... done.
Loading package data-default-0.7.1.1 ... linking ... done.
Loading package Diff-0.3.4 ... linking ... done.
Loading package Cabal-1.24.1.0 ... linking ... done.
[10 of 30] Compiling Debian.Policy    ( src/Debian/Policy.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Policy.o )
[11 of 30] Compiling Debian.Debianize.BinaryDebDescription ( src/Debian/Debianize/BinaryDebDescription.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/BinaryDebDescription.o )
[12 of 30] Compiling Debian.Debianize.SourceDebDescription ( src/Debian/Debianize/SourceDebDescription.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/SourceDebDescription.o )
[13 of 30] Compiling Debian.GHC       ( src/Debian/GHC.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/GHC.o )
[14 of 30] Compiling Debian.Debianize.InputCabal ( src/Debian/Debianize/InputCabal.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/InputCabal.o )
[15 of 30] Compiling Debian.Debianize.Bundled ( src/Debian/Debianize/Bundled.hs, /tmp/matrix-worker/1480438013/dist-newstyle/build/x86_64-linux/ghc-7.8.4/cabal-debian-4.35.5/build/Debian/Debianize/Bundled.o )

src/Debian/Debianize/Bundled.hs:201:54:
    Ambiguous occurrence ‘unPackageName’
    It could refer to either ‘Debian.Debianize.Bundled.unPackageName’,
                             defined at src/Debian/Debianize/Bundled.hs:59:1
                          or ‘Distribution.Package.unPackageName’,
                             imported from ‘Distribution.Package’ at src/Debian/Debianize/Bundled.hs:40:53-67
cabal: Failed to build cabal-debian-4.35.5 (which is required by
exe:cabal-debian from cabal-debian-4.35.5).

cabal-debian’s test suite broken?

I just noticed that running cabal test in cabal-debian’s repository will say

Test suite cabal-debian-tests: PASS

but the log (visible with cabal test --show-details=streaming) lists lots of things that look like failures, e.g.

### Failure in: Debianization Tests:2:test6 - test-data/artvaluereport2
test6 - test-data/artvaluereport2
expected: (ExitSuccess,"","")
 but got: (ExitSuccess,"--- old/debian/artvaluereport2-production.install\n+++ new/debian/artvaluereport2-production.install\n@@\n Clouds.jpg usr/share/ArtValueReport/.\n DataTables-1.8.2 usr/share/ArtValueReport/.\n Udon.js usr/share/ArtValueReport/.\n blueprint usr/share/ArtValueReport/.\n-debian/cabalInstall/7e4b5d8641f6fae99e9ae9b2d8893bc7/my.appraisalreportonline.com /etc/apache2/sites-available/\n+debian/cabalInstall/7e4b5d8641f6fae99e9ae9b2d8893bc7/my.appraisalreportonline.com.conf /etc/apache2/sites-available/\n@@\n flexbox.css usr/share/ArtValueReport/.\n html5sortable usr/share/ArtValueReport/.\n--- old/debian/artvaluereport2-production.links\n+++ new/debian/artvaluereport2-production.links\n@@\n-/etc/apache2/sites-available/my.appraisalreportonline.com /etc/apache2/sites-enabled/my.appraisalreportonline.com\n+/etc/apache2/sites-available/my.appraisalreportonline.com.conf /etc/apache2/sites-enabled/my.appraisalreportonline.com.conf\n \ndebian/cabalInstall/7e4b5d8641f6fae99e9ae9b2d8893bc7/my.appraisalreportonline.com: Deleted\ndebian/cabalInstall/7e4b5d8641f6fae99e9ae9b2d8893bc7/my.appraisalreportonline.com.conf: Created\n | <VirtualHost *:80>\n |     ServerAdmin [email protected]\n |     ServerName www.my.appraisalreportonline.com\n |     ServerAlias my.appraisalreportonline.com\n | \n |     ErrorLog /var/log/apache2/artvaluereport2-production/error.log\n |     CustomLog /var/log/apache2/artvaluereport2-production/access.log combined\n | \n |     ProxyRequests Off\n |     AllowEncodedSlashes NoDecode\n | \n |     <Proxy *>\n |                 AddDefaultCharset off\n |                 Order deny,allow\n |                 #Allow from .example.com\n |                 Deny from all\n |                 #Allow from all\n |     </Proxy>\n | \n |     <Proxy http://127.0.0.1:9027/*>\n |                 AddDefaultCharset off\n |                 Order deny,allow\n |                 #Allow from .example.com\n |                 #Deny from all\n |                 Allow from all\n |     </Proxy>\n | \n |     SetEnv proxy-sendcl 1\n | \n |     ProxyPass / http://127.0.0.1:9027/ nocanon\n |     ProxyPassReverse / http://127.0.0.1:9027/\n | </VirtualHost>\n--- old/debian/control\n+++ new/debian/control\n@@\n  libghc-network-dev (>= 2.4),\n  libghc-network-prof (>= 2.4),\n+ libghc-old-locale-dev,\n+ libghc-old-locale-prof,\n+ libghc-old-time-dev,\n+ libghc-old-time-prof,\n@@\n  libghc-pandoc-dev,\n  libghc-pandoc-prof,\n@@\n  libghc-mtl-doc,\n  libghc-network-doc,\n+ libghc-old-locale-doc,\n+ libghc-old-time-doc,\n@@\n  libghc-pandoc-doc,\n  libghc-parsec3-doc (>= 3) | libghc-parsec2-doc (<< 3),\n","")

Is cabal-debian’s test suite in a working and reliable state at the moment?

The watch file has changed

The currently suggested and much simpler watch file is

version=3
http://hackage.haskell.org/package/foo/distro-monitor .*-([0-9\.]+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))

No version ranges on `-prof` dependendencies

I’m just packaging a new package, so I started to take cabal-debian from today’s git, and note (as issues) what manual adjustments I had to make.

It currently generates versioned constraints not only on -dev, but also on -prof and -doc. I think these are redundant, due to the dependencies between these packages.

(OTOH, if we manage dependencies automatically, i.e. use cabal-debian also for upgrades, this redundancy is not a big problem, and it does matter when the package is also provided by GHC. Maybe make it a flag :-))

Test suite dependencies

For packages having a test suite (and unless a --not-testsuite flag has been passed), it should add

DEB_ENABLE_TESTS = yes

and also add the dependencies of the test suite. For these, no -prof and -doc packages should be dependent upon, and libraries already dependent upon by the main library should not be repeated. I guess this requires a little bit of coding.

What name for the binary deb holding data files and/or executables?

Currently cabal-debian dumps all the files in the data-files section and all the executables into a package named haskell-(debianized-cabal-package-name)-utils. This is controlled by the cabal-debian command line option --default-package=. Many packages use this to change the package name, usually to the same name as the cabal package or the name of the package's (single) executable. Examples include alex, happy, darcs, and so on. Any thoughts about what cabal-debian should really do?

cabal-debian "confuses" library name and apt dependency

I'm writing a program that uses sdl-mixer.

(The dependency on SDL_mixer is not explicit in sdl-mixer's cabal file. I need to add that to my program's cabal file unfortunately. But that is not the point.)

I added SDL_mixer as an extra library to my cabal file.

  extra-libraries: SDL_mixer

That's because:

$ pkg-config --list-all | grep SDL_mixer
SDL_mixer                      SDL_mixer - mixer library for Simple DirectMedia Layer

But cabal-debian generates a control file containing the following:

Source: keera-posture
Maintainer: Ivan Perez <[email protected]>
Priority: extra
Section: haskell
Build-Depends: debhelper (>= 9),
 haskell-devscripts (>= 0.8),
 cdbs,
 ghc,
 ghc-prof,
 <bunch of dependencies>,
 libsdl_mixer-dev,
Standards-Version: 3.9.6
Homepage: http://keera.co.uk/projects/keera-posture
X-Description: Get notifications when your sitting posture is inappropriate.
 A program that notifies you when you sit in a straining position.
<and a lot more...>

I'd like to generate the debian files automatically from the package every time (I think it's better than having them in the repo.

Any clues as to how to address this issue?

Thanks in advance!

Not in scope: KnownExtension and Extension

Preprocessing library cabal-debian-4.18...
[ 5 of 28] Compiling Debian.Orphans   ( src/Debian/Orphans.hs, dist/build/Debian/Orphans.o )

src/Debian/Orphans.hs:49:23:
    Not in scope: type constructor or class `KnownExtension'

src/Debian/Orphans.hs:50:23:
    Not in scope: type constructor or class `Extension'

Did you forget to add them to the import lists?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.