[103436] trunk/dports/devel

Ryan Schmidt ryandesign at macports.org
Mon Feb 25 15:32:07 PST 2013


On Feb 25, 2013, at 17:10, cal at macports.org wrote:

> Revision: 103436
>          https://trac.macports.org/changeset/103436
> Author:   cal at macports.org
> Date:     2013-02-25 15:10:27 -0800 (Mon, 25 Feb 2013)
> Log Message:
> -----------
> new port: libCUDF, a library to read, write and verify the Common Upgradeability Description Format
> 
> Added Paths:
> -----------
>    trunk/dports/devel/libCUDF/
>    trunk/dports/devel/libCUDF/Portfile
> 
> Added: trunk/dports/devel/libCUDF/Portfile
> ===================================================================
> --- trunk/dports/devel/libCUDF/Portfile	                        (rev 0)
> +++ trunk/dports/devel/libCUDF/Portfile	2013-02-25 23:10:27 UTC (rev 103436)
> @@ -0,0 +1,78 @@
> +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
> +# $Id$
> +
> +PortSystem          1.0
> +
> +name                libCUDF
> +version             0.6.3
> +categories          devel ml
> +platforms           darwin
> +maintainers         gwmail.gwu.edu:egall openmaintainer
> +license             LGPL-3+
> +homepage            http://www.mancoosi.org/cudf/
> +
> +description         ${name} is a library to manipulate so called CUDF documents.
> +
> +long_description    ${description} A CUDF \
> +                    (Common Upgradeability Description Format) document describes an \
> +                    \"upgrade scenario\", as faced by package managers in popular \
> +                    package-based FOSS (Free and Open Source Software) distributions.
> +
> +master_sites        https://gforge.inria.fr/frs/download.php/31910/
> +
> +checksums           rmd160  be614de4b8a0de525619251fd61d241160fde1e9 \
> +                    sha256  6e9f1bafe859df85c854679e2904a8172945d2bf2d676c8ae3ecb72fe6de0665
> +
> +worksrcdir          cudf-${version}
> +
> +use_configure       no
> +
> +# parallel building fails
> +use_parallel_build  no
> +
> +build.env-append    CC=${configure.cc}\
> +                    CFLAGS=\"${configure.cflags} [get_canonical_archflags cc]\" \
> +                    LDFLAGS=\"${configure.ldflags} [get_canonical_archflags ld]\" \
> +
> +post-patch {
> +    reinplace "s#/usr/#${prefix}/#g" ${worksrcpath}/Makefile.config
> +}
> +
> +subport ocaml-cudf {
> +    PortGroup           ocaml 1.0
> +
> +    depends_lib-append  port:camlp5 \
> +                        port:ocaml-findlib \
> +                        port:ocaml-extlib
> +    
> +    build.target-append opt
> +    
> +    variant tests description {Build the test suite} {
> +        depends_build-append    port:ocaml-ounit
> +        test.target             test
> +        test.run                yes
> +    }
> +    
> +    livecheck.type      none
> +}
> +
> +subport libCUDF {
> +    depends_lib-append  port:ocaml-cudf \
> +                        path:lib/pkgconfig/glib-2.0.pc:glib2
> +    build.pre_args      -C c-lib
> +    build.args          all opt
> +
> +    post-destroot {
> +        file delete -force ${destroot}${prefix}/lib/ocaml
> +    }
> +
> +    variant tests description {Build the test suite} {
> +        test.pre_args   -C c-lib
> +        test.args       test
> +        test.run        yes
> +    }
> +}

Please remove the "tests" variants; they just make it harder for the user to run the tests.

Perhaps it's not clear that MacPorts does not run tests automatically. You have to request them by running the test phase, as in:

sudo port test libCUDF

But when you hide the test directives inside a +tests variant, this gets unnecessarily complicated to:

sudo port test libCUDF +tests


For the ocaml-cudf port, I see you need port:ocaml-ounit as a dependency. In an ideal world, you'd just add that to depends_test, but this is not an ideal world and depends_test has not been implemented yet. (If anyone wants to implement that in base, that would be great.) I suggest you still dispense with the variant and instead check for the dependency in a pre-test block. See for example the graphite2 port which, rather than hiding the tests in a variant just to add a dependency (on a suitably-new version of Python), checks for it in pre-test instead. You could use registry_active, or checking for the existence of a file you know would be provided by that port.





More information about the macports-dev mailing list