diff options
Diffstat (limited to 'etc/utils')
| -rwxr-xr-x | etc/utils/import_coqfinitgroup.zsh | 24 | ||||
| -rwxr-xr-x | etc/utils/packager | 101 | ||||
| -rwxr-xr-x | etc/utils/ssrcoqdep | 32 |
3 files changed, 80 insertions, 77 deletions
diff --git a/etc/utils/import_coqfinitgroup.zsh b/etc/utils/import_coqfinitgroup.zsh deleted file mode 100755 index bf2a0b4..0000000 --- a/etc/utils/import_coqfinitgroup.zsh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/zsh - -COQFINITGROUP=$1 - -for f in $COQFINITGROUP/theories/*.v - do nf=$(find . -name $(basename $f)) - echo "copy $f to $nf" - cp $f $nf -done -for f in $COQFINITGROUP/ssreflect/test/*.v - do nf=$(find . -name $(basename $f)) - echo "copy $f to $nf" - cp $f $nf -done -sed "s/Require Import ssrmatching\./Require Import mathcomp.ssreflect.ssrmatching./" -i */*.v -sed "s/Require ssreflect\./Require mathcomp.ssreflect.ssreflect./" -i */*.v -sed "s/Require Import ssreflect/Require Import mathcomp.ssreflect.ssreflect.\nRequire Import/" -i */*.v -sed "s/Require Import/From mathcomp Require Import/" -i */*.v -sed "s/From mathcomp Require Import mathcomp/Require Import mathcomp/" -i */*.v -sed "s/From mathcomp Require Import BinNat/Require Import BinNat/" -i */*.v -sed "s/From mathcomp Require Import Arith/Require Import Arith/" -i */*.v -sed "s/From mathcomp Require Import Bool/Require Import Bool/" -i */*.v -sed "s/From mathcomp Require Import\.//" -i */*.v -sed "s/From mathcomp Require Import/From mathcomp\nRequire Import/" -i */*.v diff --git a/etc/utils/packager b/etc/utils/packager index 1821ab6..d0c4b17 100755 --- a/etc/utils/packager +++ b/etc/utils/packager @@ -1,28 +1,87 @@ #!/bin/bash - set -e set -x -for pkg in ssreflect fingroup algebra field solvable character real_closed odd_order -do -pkgdir="$(git root)/opam/extra-dev/packages/coq-mathcomp-$pkg/coq-mathcomp-$pkg.dev" -mkdir -p $pkgdir -cp $(git root)/mathcomp/$pkg/opam $pkgdir/opam -cp $(git root)/mathcomp/$pkg/descr $pkgdir/descr -sed -r "/^(build|install)/s?make?make \"-C\" \"mathcomp/$pkg\"?" -i $pkgdir/opam -echo "git: \"https://github.com/math-comp/math-comp.git\"" > $pkgdir/url -done +if [ -z $1 ] || [ $1 == "--help" ] || [ $1 == "-h" ] +then cat <<EOF +usage : packager VERSION [BRANCH] [TAG]" +- VERSION is the version number of the package to create, we expect + there is a tag named mathcomp-\$VERSION which archive we can + download from github +- BRANCH is the name of a branch where we can find accurate local opam + files. Actually, this may only matter for the Coq version dependencies + located in the ssreflect package. Default value is "mathcomp-\$VERSION" +- TAG is the name of the tag used to build the archive, this is + particularily useful for generating the package for the odd order + theorem if we want to keep it separate from the rest of mathcomp + e.g. "packager 1.6.1 mathcomp-odd-order.1.6.1 mathcomp-odd-order.1.6.1" + Default value is "mathcomp-\$VERSION" +EOF + exit 0 +else +VERSION=$1 +fi + +if [ -z $2 ] +then BRANCH="mathcomp-$VERSION" +else BRANCH=$2 +fi +# verify whether $BRANCH exists +git rev-parse --verify $BRANCH -for pkg in ssreflect fingroup algebra field solvable character -do -pkgdir="$(git root)/opam/released/packages/coq-mathcomp-$pkg/coq-mathcomp-$pkg.1.6" -mkdir -p $pkgdir -cp $(git root)/mathcomp/$pkg/opam $pkgdir/opam -cp $(git root)/mathcomp/$pkg/descr $pkgdir/descr -sed -r "/^version/s?dev?1.6?" -i $pkgdir/opam -sed -r "/^depends.*coq-mathcomp.*/s?dev?1.6?" -i $pkgdir/opam -sed -r "/^(build|install)/s?make?make \"-C\" \"mathcomp/$pkg\"?" -i $pkgdir/opam -echo "http: \"http://github.com/math-comp/math-comp/archive/mathcomp-1.6.tar.gz\"" > $pkgdir/url -echo "checksum: \"038ba80c0d6b430428726ae4d00affcf\"" >> $pkgdir/url +if [ -z $3 ] +then TAG="mathcomp-$VERSION" +else TAG=$3 +fi +# verify whether $TAG exists +git rev-parse --verify $TAG +ARCHIVEURL="http://github.com/math-comp/math-comp/archive/$TAG.tar.gz" + +# we build the url file content and the list of packages, and where to put them +if [ $VERSION == "dev" ] +then +# variables useful for package construction + URLLINE="git: \"https://github.com/math-comp/math-comp.git\"" + PKGS=$(sed -r "s/.*mathcomp\.([^\.]*)*.*/\1/" $(git root)/mathcomp/all/all.v \ + | paste -sd " " -) + PKGPREFIX="$(git root)/opam/extra-dev/packages" +else + ARCHIVE=$(mktemp) + git archive --format=tgz --output=$ARCHIVE \ + --prefix=math-comp-$TAG/ $TAG # reproduce github archive + SUM=$(md5sum $ARCHIVE | cut -d " " -f 1) + EXTRACTED=$(mktemp -d) + tar -C $EXTRACTED -zxvf $ARCHIVE +# variables useful for package construction + URLLINE="http: \"$ARCHIVEURL\"" + CHECKSUMLINE="checksum: \"$SUM\"" + PKGS=$(ls -fs -d -1 $EXTRACTED/*/mathcomp/*/ \ + | sed -r "s?.*mathcomp/([^/]+)/?\1?" \ + | paste -sd " " -) + PKGPREFIX="$(git root)/opam/released/packages" +fi + +# for each package, we pick the corresponding opam and descr file and +# rewrite them to adapt them to single package construction and +# version numbers +for pkg in $PKGS +do pkgdir="$PKGPREFIX/coq-mathcomp-$pkg/coq-mathcomp-$pkg.$VERSION" + mkdir -p $pkgdir + if [ $VERSION == "dev" ] + then cp $(git root)/mathcomp/$pkg/opam $pkgdir/opam + cp $(git root)/mathcomp/$pkg/descr $pkgdir/descr + else git show "$BRANCH:mathcomp/$pkg/opam" > $pkgdir/opam + git show "$BRANCH:mathcomp/$pkg/descr" > $pkgdir/descr + sed -r "/^version/s?dev?$VERSION?" -i $pkgdir/opam + sed -r "/^depends.*coq-mathcomp.*/s?dev?$VERSION?" -i $pkgdir/opam + fi + sed -r "/^(build|install)/s?make?make \"-C\" \"mathcomp/$pkg\"?" -i $pkgdir/opam + echo $URLLINE > $pkgdir/url + if [ $VERSION != "dev" ] + then echo $CHECKSUMLINE >> $pkgdir/url + fi done + +# finally test the existence of the archive +wget --spider $ARCHIVEURL diff --git a/etc/utils/ssrcoqdep b/etc/utils/ssrcoqdep deleted file mode 100755 index 20e1281..0000000 --- a/etc/utils/ssrcoqdep +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -args="$@" -echo "calling coqdep on $args" 1>&2 - -mkdir bkpcoqdep - -while [[ $# > 0 ]] -do -key="$1" - -case $key in - *.v) - mkdir -p $(dirname bkpcoqdep/$key) - cp $key bkpcoqdep/$key - sed "s/^From.*//" bkpcoqdep/$key > $key - ;; - *) - ;; -esac -shift -done - -COQBIN="$(dirname $(which coqtop))/" -$COQBIN/coqdep $args - -for f in $(find bkpcoqdep -name "*.v") -do -mv $f ${f##bkpcoqdep/} -done - -rm -rf bkpcoqdep |
