Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 30388 - New ebuild: The Coq theorem prover
Summary: New ebuild: The Coq theorem prover
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: George Shapovalov (RETIRED)
URL: http://coq.inria.fr
Whiteboard:
Keywords: EBUILD
: 24616 (view as bug list)
Depends on:
Blocks: 30390
  Show dependency tree
 
Reported: 2003-10-05 06:44 UTC by Matthieu Sozeau (RETIRED)
Modified: 2004-01-21 15:50 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
ebuild source (Coq-7.4.ebuild,742 bytes, text/plain)
2003-10-05 07:14 UTC, Matthieu Sozeau (RETIRED)
Details
ocaml-3.07 patch (coq.patch,333 bytes, patch)
2003-10-16 04:27 UTC, Matthieu Sozeau (RETIRED)
Details | Diff
the updated coq-7.4.ebuild (coq-7.4.ebuild,688 bytes, application/octet-stream)
2003-10-22 21:00 UTC, George Shapovalov (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matthieu Sozeau (RETIRED) gentoo-dev 2003-10-05 06:44:48 UTC
Coq is a theorem prover using the calculus of inductive constructions written in O'Caml.

See attached ebuild for the latest version of Coq.  Should go in dev-ml/ or app-sci/ maybe.
Comment 1 Matthieu Sozeau (RETIRED) gentoo-dev 2003-10-05 07:14:42 UTC
Created attachment 18781 [details]
ebuild source
Comment 2 Matthieu Sozeau (RETIRED) gentoo-dev 2003-10-05 07:22:23 UTC
Just add EBUILD keyword
Comment 3 George Shapovalov (RETIRED) gentoo-dev 2003-10-14 23:38:26 UTC
Hi Matthieu.

Sorry for the delay - previous week was quite loaded on me. But I'll start
going through your stuff.
Could you please email me the list of the bugs you submitted? After last
bauzilla change I ended up with ~100 open bugs, and not all the names in
your submissions may be apparent..

So, getting back to the ebuild.
I think it fits nicely into app-sci, but it may be herded under both sci
and ml. Alternatively you can add yourself to the sci herd (when you get
cvs access), with the remark that you are maintaining only certain applications
(then ebuild only resides in the sci herd).. I haven't seen yet multiple-herd
option being executed, but this was one of the points in the herd idea, so
you may set the precendent ;).

More stuff as I go..

1. Naming: It is the policy to try to avoid upper-case in the names of ebuild
if this doesn't cause terrible inconvenience. Besides in your case looks
like you have to do some name-mangling, which would be unnecessary, should
you just have called ebuild coq-...
You might want refresh your stance on developer's policy ;), here:
http://www.gentoo.org/doc/en/index.xml#doc_chap6
BTW, this should also help you with the quiz.

2. lintool complaints: Just had some white space on an empty line and more
importantly - missing IUSE="". IUSE should list all the use flags ebuild
makes use of. After screwing with the ideas on how to parse ebuilds for use
flags employed no reliable way of parsing was found, so we have to help portage
with a bit of manual work.
Another point here is that it is usefull to run your ebuilds trough lintool
(which is a separate emerge now). It isn't maintained anymore (and thus not
required), but it is still usefull, as it catches eraly few trivial things.

You might want to give it a try, just ignore warnings about missing RDEPEND
(not the DEPEND!) and year in the header (it doesn't know about 2003 :)).

3. Since you do not have any conditionals to the ./configure parameters it
is not necessary to define local myconf - you could have just passed these
lines directly to configure. Also, econf might save a few lines, as you do
not need to supplt "standsrt" definitions.

Ok, the ebuild is still compiling, but I'll submit this part now, as I might
need to run off shortly

george
Comment 4 George Shapovalov (RETIRED) gentoo-dev 2003-10-15 17:09:17 UTC
Hi Matthieu.

Thanks for the list.
but I'll go back here for the rest, as there seem to be problems with the
package.


>I found it more clean to have a $myconf and a simple ./configure $myconf
>| die, but it's a matter of taste i think.
Yea, this really is more a stilistic thing, although your taste seems to
be a bit unusual, as this is pretty muchthe first time I see such wrapping
;). But the future need more than warrants it anywy, so don't worry too much.

>I can't, the Coq configure is not a GNU one, its hand written and pretty
>messy with its arguments.
Yea, noticed that now, - yesterday I ran off even before ebuild started compiling..
However it does not finish on me, here are the last lines:

ocamlc -I config -I tools -I scripts -I lib -I kernel -I library -I proofs
-I tactics -I pretyping -I interp -I toplevel -I parsing -I contrib/omega
-I contrib/romega -I contrib/ring -I contrib/xml -I contrib/extraction -I
contrib/correctness -I contrib/interface -I contrib/fourier -I contrib/jprover
-I contrib/cc -I /usr/lib/ocaml/camlp4  -c toplevel/metasyntax.ml
The implementation parsing/pcoq.ml4
does not match the interface parsing/pcoq.cmi:
Modules do not match:
  sig
    type te = Token.t
    and parsable = G.parsable
    val parsable : char Stream.t -> G.parsable
    val tokens : string -> (string * int) list
    module Entry :
      sig
        type 'a e = 'a Grammar.Make(L).Entry.e
        val create : string -> 'a e
        val parse : 'a e -> G.parsable -> 'a
        val parse_token : 'a e -> G.te Stream.t -> 'a
        val name : 'a e -> string
        val of_parser : string -> (G.te Stream.t -> 'a) -> 'a e
        val print : 'a e -> unit
        external obj : 'a e -> G.te Gramext.g_entry = "%identity"
      end
    module Unsafe :
      sig
        val gram_reinit : G.te Token.glexer -> unit
        val clear_entry : 'a G.Entry.e -> unit
        val reinit_gram : Token.lexer -> unit
      end
    val extend :
      'a G.Entry.e ->
      Gramext.position option ->
      (string option * Gramext.g_assoc option *
       (G.te Gramext.g_symbol list * Gramext.g_action) list)
      list -> unit
    val delete_rule : 'a -> 'b -> 'c
  end
is not included in
  sig
    type te = Token.t
    and parsable
    val parsable : char Stream.t -> parsable
    val tokens : string -> (string * int) list
    val glexer : te Token.glexer
    module Entry :
      sig
        type 'a e
        val create : string -> 'a e
        val parse : 'a e -> parsable -> 'a
        val parse_token : 'a e -> te Stream.t -> 'a
        val name : 'a e -> string
        val of_parser : string -> (te Stream.t -> 'a) -> 'a e
        val print : 'a e -> unit
        external obj : 'a e -> te Gramext.g_entry = "%identity"
      end
    module Unsafe :
      sig
        val gram_reinit : te Token.glexer -> unit
        val clear_entry : 'a Entry.e -> unit
        val reinit_gram : Token.lexer -> unit
      end
    val extend :
      'a Entry.e ->
      Gramext.position option ->
      (string option * Gramext.g_assoc option *
       (te Gramext.g_symbol list * Gramext.g_action) list)
      list -> unit
    val delete_rule : 'a Entry.e -> te Gramext.g_symbol list -> unit
  end
The field `glexer' is required but not provided
make: *** [parsing/pcoq.cmo] Error 2

Relevant parts of emerge info on my side:
Portage 2.0.49-r13 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-ck6)
=================================================================
System uname: 2.4.20-ck6 i686 Pentium III (Coppermine)
Gentoo Base System version 1.4.3.10p1
ccache version 2.3 [enabled]
CFLAGS="-march=pentium3 -O2 -pipe -fforce-addr -fomit-frame-pointer -falign-functions=4
-mfpmath=sse"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"


George
Comment 5 Matthieu Sozeau (RETIRED) gentoo-dev 2003-10-16 04:22:03 UTC
Bug #24616 has Coq ebuilds too ! They look the same, except for the Real
analysis USE flag. Could you attach your modified version george, or should
i submit one ? The make error comes from the new version of the camlp4 Grammar
module in ocaml-3.07. Correcting it just requires adding one line in parsing/pcoq.ml4,
i attach the patch.
Comment 6 Matthieu Sozeau (RETIRED) gentoo-dev 2003-10-16 04:27:01 UTC
Created attachment 19307 [details, diff]
ocaml-3.07 patch
Comment 7 George Shapovalov (RETIRED) gentoo-dev 2003-10-22 21:00:24 UTC
Created attachment 19647 [details]
the updated coq-7.4.ebuild

Hi Matthieu

Sorry for the delay, looks like bugzilla still likes to skip on intermittent
notifications :( (or I just lost it in the pile of others).

Anyway, here it goes. I would rather let you add the pacth yourself and try
to
move on to more of your submissions.

One additional thing I just spotted - the string[s you put in LICENSE should
precisely match one of the files under /usr/portage/licenses. We do not make
much use of that right now, but eventually licenses are going to be enforced
(that is this field is going to act as another way of "masking" according
to
what licenses user decided to accept). As such this field is already being
checked..

George
Comment 8 Matthieu Sozeau (RETIRED) gentoo-dev 2004-01-21 15:44:45 UTC
*** Bug 24616 has been marked as a duplicate of this bug. ***
Comment 9 Matthieu Sozeau (RETIRED) gentoo-dev 2004-01-21 15:50:19 UTC
I commited app-sci/coq-7.4 ebuild commited, with ml and sci herds, and the patch for ocaml-3.07 applied if needed. It uses also the norealanalysis USE flag bug#24616 had.