Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

packaging notes: no need to create .version files #556

Closed
wants to merge 1 commit into from

Conversation

djs55
Copy link
Member

@djs55 djs55 commented Jun 5, 2017

topkg tag will extract the version from the CHANGES.md and this is used by jbuilder as the default version in the META file so there's no need to create *.version files.

Related to discussion: mirage/mirage-net#7

Signed-off-by: David Scott dave@recoil.org

`topkg tag` will extract the version from the `CHANGES.md` and this
is used by `jbuilder` as the default version in the `META` file so
there's no need to create `*.version` files.

Signed-off-by: David Scott <dave@recoil.org>
djs55 added a commit to djs55/mirage-block that referenced this pull request Jun 5, 2017
See mirage/mirage-www#556

Signed-off-by: David Scott <dave@recoil.org>
@djs55
Copy link
Member Author

djs55 commented Jun 5, 2017

One of the Xen packages is now linking against compiler-libs which is causing a clash over the global module name Types:

+ ocamlfind ocamlopt -g -dontlink unix -dontlink str -dontlink num -dontlink threads -linkpkg -output-obj -package tcpip.udp -package tcpip.tcp -package tcpip.stack-direct -package tcpip.ipv4 -package tcpip.icmpv4 -package tcpip.ethif -package tcpip.arpv4 -package tcpip -package rrd -package ptime -package nocrypto.mirage -package nocrypto -package mirage-xen -package mirage-types-lwt -package mirage-types -package mirage-runtime -package mirage-random -package mirage-net-xen -package mirage-logs -package mirage-http -package mirage-clock-freestanding -package mirage-bootvar-xen -package lwt -package io-page -package functoria-runtime -package duration -package cowabloga -package cow -package conduit.mirage -package conduit -package c3 -predicates mirage_xen paper.cmx perf.cmx site_config.cmx data.cmx pages.cmx blog.cmx key_gen.cmx stats.cmx wiki.cmx dispatch.cmx static1.cmx static2.cmx main.cmx -o main.native.o
findlib: [WARNING] Interface main.cmi occurs in several directories: ., /home/travis/.opam/4.03.0/lib/ocaml/compiler-libs
findlib: [WARNING] Interface types.cmi occurs in several directories: ., /home/travis/.opam/4.03.0/lib/ocaml/compiler-libs
findlib: [WARNING] Interface config.cmi occurs in several directories: ., /home/travis/.opam/4.03.0/lib/ocaml/compiler-libs
findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/travis/.opam/4.03.0/lib/ocaml/compiler-libs, /home/travis/.opam/4.03.0/lib/ocaml
File "_none_", line 1:
Error: Files site_config.cmx
       and /home/travis/.opam/4.03.0/lib/ocaml/compiler-libs/ocamlcommon.cmxa
       make inconsistent assumptions over interface Types
Command exited with code 2.

For reference the Unix link is compiler-libs-free:

ocamlfind ocamlopt -g -linkpkg -g -package tcpip.udpv4-socket -package tcpip.tcpv4-socket -package tcpip.stack-socket -package tcpip -package rrd -package ptime -package nocrypto.lwt -package nocrypto -package mirage-unix -package mirage-types-lwt -package mirage-types -package mirage-runtime -package mirage-logs -package mirage-http -package mirage-clock-unix -package lwt -package io-page.unix -package io-page -package functoria-runtime -package duration -package cowabloga -package cow -package conduit.mirage -package conduit -package c3 -predicates mirage_unix paper.cmx perf.cmx site_config.cmx data.cmx pages.cmx blog.cmx key_gen.cmx stats.cmx wiki.cmx dispatch.cmx static1.cmx static2.cmx main.cmx -o main.native

@djs55
Copy link
Member Author

djs55 commented Jun 5, 2017

It looks like the compiler-libs are brought in by a bug in the mirage-profile META file where it links against cstruct.ppx, which is the library for the PPX rewriter but not the runtime support library for the output.

djs55 added a commit to djs55/mirage-profile that referenced this pull request Jun 5, 2017
The cstruct.ppx library is a helper library for the PPX rewriter itself,
and is not needed by the output of the rewriter. Unfortunately linking
against cstruct.ppx also brings in compiler-libs which (apart from being
big) also pollutes the global module name space since it defines modules
like "Types".

See mirage/mirage-www#556

Signed-off-by: David Scott <dave@recoil.org>
djs55 added a commit to djs55/mirage-tcpip that referenced this pull request Jun 5, 2017
The package cstruct.ppx contains helper functions for the PPX rewriter
itself. Linking this code into applications makes them larger and also brings
in a dependency on compiler-libs which pollutes the global module namespace
with names like Types.

See mirage/mirage-www#556

Signed-off-by: David Scott <dave@recoil.org>
djs55 added a commit to djs55/shared-memory-ring that referenced this pull request Jun 5, 2017
The package cstruct.ppx contains helper functions for the PPX rewriter
itself. Linking this code into applications makes them larger and also
brings in a dependency on compiler-libs which pollutes the global module
namespace with names like Types.

See mirage/mirage-www#556

Signed-off-by: David Scott <dave@recoil.org>
djs55 added a commit to djs55/ocaml-xenstore that referenced this pull request Jun 5, 2017
The package cstruct.ppx contains helper functions for the PPX rewriter
itself. Linking this code into applications makes them larger and also
brings in a dependency on compiler-libs which pollutes the global module
namespace with names like Types.

See mirage/mirage-www#556

Signed-off-by: David Scott <dave@recoil.org>
@samoht
Copy link
Member

samoht commented Jun 6, 2017

See also haesbaert/rawlink#4 with a similar linking error.

@djs55
Copy link
Member Author

djs55 commented Jun 24, 2017

@samoht already included this in his recent PR

@djs55 djs55 closed this Jun 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants