Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package opam-file-format for
openSUSE:Factory checked in at 2025-07-16 15:52:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opam-file-format (Old)
and /work/SRC/openSUSE:Factory/.opam-file-format.new.7373 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opam-file-format"
Wed Jul 16 15:52:55 2025 rev:8 rq:1293542 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/opam-file-format/opam-file-format.changes
2023-05-23 14:54:07.326333573 +0200
+++
/work/SRC/openSUSE:Factory/.opam-file-format.new.7373/opam-file-format.changes
2025-07-16 15:55:54.015095734 +0200
@@ -1,0 +2,6 @@
+Mon Jul 7 07:07:07 UTC 2025 - [email protected]
+
+- Update to version 2.2.0
+ see included CHANGES file for details
+
+-------------------------------------------------------------------
Old:
----
opam-file-format-2.1.6.tar.xz
New:
----
opam-file-format-2.2.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opam-file-format.spec ++++++
--- /var/tmp/diff_new_pack.eFYenL/_old 2025-07-16 15:55:54.563118614 +0200
+++ /var/tmp/diff_new_pack.eFYenL/_new 2025-07-16 15:55:54.563118614 +0200
@@ -1,7 +1,7 @@
#
# spec file for package opam-file-format
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,7 +29,7 @@
%define pkg opam-file-format
Name: %pkg%nsuffix
-Version: 2.1.6
+Version: 2.2.0
Release: 0
%{?ocaml_preserve_bytecode}
Summary: Parser and printer for the opam file syntax
@@ -38,12 +38,14 @@
URL: https://opam.ocaml.org/
Source0: %pkg-%version.tar.xz
BuildRequires: ocaml
-BuildRequires: ocaml-dune
-BuildRequires: ocaml-rpm-macros >= 20230101
+BuildRequires: ocaml-dune >= 3.13
+BuildRequires: ocaml-rpm-macros >= 20250517
+BuildRequires: ocamlfind(menhir)
%if "%build_flavor" == "testsuite"
BuildRequires: ocamlfind(alcotest)
-BuildRequires: ocamlfind(opam-file-format)
+BuildRequires: ocamlfind(fmt)
+BuildRequires: ocamlfind(opam-file-format) = %version
%endif
%description
++++++ _service ++++++
--- /var/tmp/diff_new_pack.eFYenL/_old 2025-07-16 15:55:54.615120785 +0200
+++ /var/tmp/diff_new_pack.eFYenL/_new 2025-07-16 15:55:54.627121286 +0200
@@ -1,6 +1,6 @@
<services>
- <service mode="disabled" name="tar_scm">
- <param name="revision">303ab85afb67c7c22ea548b87241b08616b9f6f2</param>
+ <service mode="manual" name="tar_scm">
+ <param name="revision">59d9a6b585ac3fd141004f155a459e78f39993ac</param>
<param name="scm">git</param>
<param name="submodules">disable</param>
<param name="url">https://github.com/ocaml/opam-file-format.git</param>
@@ -8,10 +8,10 @@
<param name="versionrewrite-pattern">[v]?([^+]+)(.*)</param>
<param name="versionrewrite-replacement">\1</param>
</service>
- <service mode="disabled" name="recompress">
+ <service mode="manual" name="recompress">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
- <service mode="disabled" name="set_version"/>
+ <service mode="manual" name="set_version"/>
</services>
++++++ opam-file-format-2.1.6.tar.xz -> opam-file-format-2.2.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/.gitignore
new/opam-file-format-2.2.0/.gitignore
--- old/opam-file-format-2.1.6/.gitignore 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/.gitignore 2025-07-03 16:27:27.000000000
+0200
@@ -1,23 +1,5 @@
*~
.#*
\#*#
-*.cmo
-*.cmx
-*.cmi
-*.cmt
-*.cmti
-*.cma
-*.cmxa
-*.cmxs
-*.a
-*.lib
-*.o
_build
*.install
-.merlin
-*.obj
-src/.depend
-src/opamBaseParser.ml
-src/opamBaseParser.mli
-src/opamLexer.ml
-src/META
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/CHANGES
new/opam-file-format-2.2.0/CHANGES
--- old/opam-file-format-2.1.6/CHANGES 2023-03-20 22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/CHANGES 2025-07-03 16:27:27.000000000 +0200
@@ -1,3 +1,12 @@
+2.2.0 [03 July 2025]
+--------------------
+* No change since 2.2.0~alpha1
+
+2.2.0~alpha1 [06 December 2024]
+-------------------------------
+* Remove the optional GNU Make build system in favour of Dune [#51
@kit-ty-kate]
+* Make the parser domain-safe by switching from ocamlyacc to menhir [#60
@kit-ty-kate]
+
2.1.6 [20 March 2023]
------------------------
* Remove deprecated usage of `Printf.ksprintf`, ocaml 5 compatibility
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/Makefile
new/opam-file-format-2.2.0/Makefile
--- old/opam-file-format-2.1.6/Makefile 2023-03-20 22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/Makefile 1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-TARGETS = opam-file-format.cma opam-file-format.cmxa opam-file-format.cmxs
-
-all: $(TARGETS)
- $(MAKE) -C src META
-
-byte: $(filter %.cma,$(TARGETS))
- $(MAKE) -C src META
-
-native: $(filter %.cmxa,$(TARGETS))
- $(MAKE) -C src META
-
-.PHONY: dune clean
-dune:
- dune build --profile=dev @all
-
-%:
- $(MAKE) -C src $@
-
-tests: opam-file-format.cmxa
- $(MAKE) -C tests run
-
-PREFIX ?= /usr/local
-LIBDIR ?= $(PREFIX)/lib
-
-install:
- mkdir -p $(DESTDIR)$(LIBDIR)/opam-file-format
- install -m 0644 \
- $(wildcard $(addprefix src/*.,cmi cmo cmx cmt cmti lib a cma cmxa
cmxs)) \
- src/META \
- $(DESTDIR)$(LIBDIR)/opam-file-format/
-
-uninstall:
- rm -f $(DESTDIR)$(LIBDIR)/opam-file-format/*
- rmdir $(DESTDIR)$(LIBDIR)/opam-file-format
-
-clean::
- rm -rf _build
- $(MAKE) -C src $@
- $(MAKE) -C tests $@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/README.md
new/opam-file-format-2.2.0/README.md
--- old/opam-file-format-2.1.6/README.md 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/README.md 2025-07-03 16:27:27.000000000
+0200
@@ -1,8 +1,7 @@
# opam-file-format - Parser and printer for the opam file syntax
This library provides the parser and printer for the opam file syntax as a
-library with no dependencies. The package can be built either with GNU make
-or any version of [Dune](https://dune.build).
+library with no dependencies but [Dune](https://dune.build) >= 3.13.
Opam was created and is maintained by [OCamlPro](http://www.ocamlpro.com).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/appveyor.cmd
new/opam-file-format-2.2.0/appveyor.cmd
--- old/opam-file-format-2.1.6/appveyor.cmd 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/appveyor.cmd 1970-01-01 01:00:00.000000000
+0100
@@ -1,94 +0,0 @@
-@rem ***********************************************************************
-@rem * *
-@rem * opam *
-@rem * *
-@rem * David Allsopp, OCaml Labs, Cambridge. *
-@rem * *
-@rem * Copyright 2018 MetaStack Solutions Ltd. *
-@rem * *
-@rem * All rights reserved. This file is distributed under the terms of *
-@rem * the GNU Lesser General Public License version 2.1, with the *
-@rem * special exception on linking described in the file LICENSE. *
-@rem * *
-@rem ***********************************************************************
-
-@rem BE CAREFUL ALTERING THIS FILE TO ENSURE THAT ERRORS PROPAGATE
-@rem IF A COMMAND SHOULD FAIL IT PROBABLY NEEDS TO END WITH
-@rem || exit /b 1
-@rem BASICALLY, DO THE TESTING IN BASH...
-
-@rem Do not call setlocal!
-@echo off
-
-goto %1
-
-goto :EOF
-
-:CheckPackage
-"%CYG_ROOT%\bin\bash.exe" -lc "cygcheck -dc %1" | findstr %1 > nul
-if %ERRORLEVEL% equ 1 (
- echo Cygwin package %1 will be installed
- set CYGWIN_INSTALL_PACKAGES=%CYGWIN_INSTALL_PACKAGES%,%1
-)
-goto :EOF
-
-:UpgradeCygwin
-if "%CYGWIN_INSTALL_PACKAGES%" neq "" "%CYG_ROOT%\setup-%CYG_ARCH%.exe"
--quiet-mode --no-shortcuts --no-startmenu --no-desktop --only-site --root
"%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages
%CYGWIN_INSTALL_PACKAGES:~1% > nul
-for %%P in (%CYGWIN_COMMANDS%) do "%CYG_ROOT%\bin\bash.exe" -lc "%%P --help" >
nul || set CYGWIN_UPGRADE_REQUIRED=1
-"%CYG_ROOT%\bin\bash.exe" -lc "cygcheck -dc %CYGWIN_PACKAGES%"
-if %CYGWIN_UPGRADE_REQUIRED% equ 1 (
- echo Cygwin package upgrade required - please go and drink coffee
- "%CYG_ROOT%\setup-%CYG_ARCH%.exe" --quiet-mode --no-shortcuts --no-startmenu
--no-desktop --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%"
--local-package-dir "%CYG_CACHE%" --upgrade-also > nul
- "%CYG_ROOT%\bin\bash.exe" -lc "cygcheck -dc %CYGWIN_PACKAGES%"
-)
-goto :EOF
-
-:install
-set CYG_ROOT=C:\%CYG_ROOT%
-
-cd "%APPVEYOR_BUILD_FOLDER%"
-
-rem CYGWIN_PACKAGES is the list of required Cygwin packages (cygwin is included
-rem in the list just so that the Cygwin version is always displayed on the
log).
-rem CYGWIN_COMMANDS is a corresponding command to run with --version to test
-rem whether the package works. This is used to verify whether the installation
-rem needs upgrading.
-set CYGWIN_PACKAGES=cygwin make patch diffutils tar unzip
-set CYGWIN_COMMANDS=cygcheck make patch diff tar unzip
-
-if "%OCAML_PORT%" equ "mingw" (
- set CYGWIN_PACKAGES=%CYGWIN_PACKAGES% mingw64-i686-gcc-core
- set CYGWIN_COMMANDS=%CYGWIN_COMMANDS% i686-w64-mingw32-core
-)
-if "%OCAML_PORT%" equ "mingw64" (
- set CYGWIN_PACKAGES=%CYGWIN_PACKAGES% mingw64-x86_64-gcc-core
- set CYGWIN_COMMANDS=%CYGWIN_COMMANDS% x86_64-w64-mingw32-core
-)
-if "%OCAML_PORT:~0,6%" equ "cygwin" (
- set CYGWIN_PACKAGES=%CYGWIN_PACKAGES% flexdll gcc-core
- set CYGWIN_COMMANDS=%CYGWIN_COMMANDS% flexlink gcc
-)
-
-set CYGWIN_INSTALL_PACKAGES=
-set CYGWIN_UPGRADE_REQUIRED=0
-
-for %%P in (%CYGWIN_PACKAGES%) do call :CheckPackage %%P
-call :UpgradeCygwin
-
-if "%OCAML_PORT%" equ "msvc64" call "C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
-if "%OCAML_PORT%" equ "msvc" call "C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
-
-"%CYG_ROOT%\bin\bash.exe" -lc "$APPVEYOR_BUILD_FOLDER/appveyor.sh install" ||
exit /b 1
-
-set PATH=%OCAML_ROOT%\%OCAML_VERSION%\%OCAML_PORT%\bin;%PATH%
-
-goto :EOF
-
-:build
-"%CYG_ROOT%\bin\bash.exe" -lc "$APPVEYOR_BUILD_FOLDER/appveyor.sh build" ||
exit /b 1
-
-goto :EOF
-
-:test
-
-goto :EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/appveyor.sh
new/opam-file-format-2.2.0/appveyor.sh
--- old/opam-file-format-2.1.6/appveyor.sh 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/appveyor.sh 1970-01-01 01:00:00.000000000
+0100
@@ -1,167 +0,0 @@
-#!/bin/bash
-
-TERM=st
-
-# Increment whenever the OCaml version or a package is updated to invalidate
the caches
-SERIAL=1
-
-ROOT_CYG=$(echo $OCAML_ROOT| cygpath -f -)
-APPVEYOR_BUILD_FOLDER=$(echo $APPVEYOR_BUILD_FOLDER| cygpath -f -)
-
-ERRORS_ALLOWED=0
-function quietly_log {
- if ! script --quiet --return --append --command "$1" $LOG_FILE > /dev/null
2>&1 ; then
- sed -e 's/\d027\[K//g' \
- -e 's/\d027\[m/\d027[0m/g' \
- -e 's/\d027\[01\([m;]\)/\d027[1\1/g' $LOG_FILE
- if ((ERRORS_ALLOWED)) ; then
- return 1
- else
- exit 1
- fi
- fi
-}
-
-function msvs_promote_path {
- if [[ ${1%64} = "msvc" ]] ; then
- eval $($ROOT_CYG/msvs-promote-path)
- fi
-}
-
-case "$1" in
- install)
- # @@DRA TODO This should be converted OCAML_ROOT to a regexp, not having
C:\\\\OCaml hard coded!
- if ! cat $APPVEYOR_BUILD_FOLDER/appveyor.yml | tr -d '\015' | sed -e
'1,/^cache:/d' -e '/^$/,$d' | grep -q "^ \+- \+C:\\\\OCaml$" ; then
- echo "$(tput setf 4)ERROR$(tput sgr0) C:\\OCaml doesn't appear to be
cached in appveyor.yml"
- exit 1
- fi
-
- if [[ ! -e $ROOT_CYG/$OCAML_VERSION/$OCAML_PORT/bin/ocamlopt.exe || ! -e
$ROOT_CYG/$OCAML_VERSION/version || $(cat $ROOT_CYG/$OCAML_VERSION/version) !=
"$OCAML_VERSION-$SERIAL" ]] ; then
- if [[ -e $ROOT_CYG/$OCAML_VERSION/version && $(cat
$ROOT_CYG/$OCAML_VERSION/version) != "$OCAML_VERSION-$SERIAL" ]] ; then
- echo "Build cache for $OCAML_VERSION has serial $(cat
$ROOT_CYG/$OCAML_VERSION/version); should be $OCAML_VERSION-$SERIAL -- clearing"
- rm -rf $ROOT_CYG/$OCAML_VERSION
- elif [[ ! -e $ROOT_CYG/$OCAML_VERSION/version ]] ; then
- rm -rf $ROOT_CYG/$OCAML_VERSION
- fi
-
- PREFIX=$ROOT_CYG/$OCAML_VERSION/$OCAML_PORT
- ROOT=$(echo $OCAML_ROOT| cygpath -m -f -)/$OCAML_VERSION/$OCAML_PORT
- OCAML_BRANCH=${OCAML_VERSION%.*}
- OCAML_BRANCH=${OCAML_BRANCH/.}
-
- if [[ ! -d $APPVEYOR_BUILD_FOLDER/../src ]] ; then
- mkdir -p $APPVEYOR_BUILD_FOLDER/../src
- cd $APPVEYOR_BUILD_FOLDER/../src
- git clone https://github.com/ocaml/ocaml.git
- cd ocaml
- mkdir -p $PREFIX
- cp tools/msvs-promote-path $ROOT_CYG/
- cd ..
- FLEXDLL_VER=0.37
- appveyor DownloadFile
"https://github.com/alainfrisch/flexdll/releases/download/$FLEXDLL_VER/flexdll-bin-$FLEXDLL_VER.zip"
-FileName flexdll-bin-$FLEXDLL_VER.zip
- [[ -e $PREFIX/../version ]] || echo $OCAML_VERSION-$SERIAL>
$PREFIX/../version
- fi
-
- cd $APPVEYOR_BUILD_FOLDER/../src/ocaml
- git checkout $OCAML_VERSION
- git worktree add ../$OCAML_VERSION/$OCAML_PORT/ocaml -b
build-$OCAML_VERSION-$OCAML_PORT
- if [[ $OCAML_BRANCH -ge 403 ]] ; then
- pushd ../$OCAML_VERSION/$OCAML_PORT/ocaml > /dev/null
- git submodule update --init
- popd > /dev/null
- fi
- cd ../$OCAML_VERSION/$OCAML_PORT/ocaml
- if [[ ${OCAML_PORT%64} = "cygwin" ]] ; then
- if [[ $OCAML_BRANCH -gt 406 ]] ; then
- NO_ALT_RUNTIMES="-no-instrumented-runtime -no-debug-runtime"
- else
- NO_ALT_RUNTIMES=
- fi
- PRE_WORLD=
- POST_WORLD=
- MAKEFILE=
- ./configure -prefix $PREFIX -no-ocamldoc -no-debugger $NO_ALT_RUNTIMES
- else
- if [[ $OCAML_BRANCH -ge 406 ]] ; then
- cp config/s-nt.h byterun/caml/s.h
- cp config/m-nt.h byterun/caml/m.h
- else
- cp config/s-nt.h config/s.h
- cp config/m-nt.h config/m.h
- fi
- if [[ $OCAML_BRANCH -ge 405 ]] ; then
- POST_WORLD=flexlink.opt
- MAKEFILE=
- else
- POST_WORLD=
- MAKEFILE=-f Makefile.nt
- fi
- if [[ $OCAML_BRANCH -lt 403 ]] ; then
- mkdir -p $PREFIX/bin
- pushd $PREFIX/bin > /dev/null
- case $OCAML_PORT in
- msvc)
- MANIFEST=default.manifest;;
- msvc64)
- MANIFEST=default_amd64.manifest;;
- *)
- MANIFEST=;;
- esac
- unzip $APPVEYOR_BUILD_FOLDER/../src/flexdll-bin-$FLEXDLL_VER.zip
flexdll_*$OCAML_PORT.* flexdll.h flexlink.exe $MANIFEST
- popd > /dev/null
- PRE_WORLD=
- else
- PRE_WORLD=flexdll
- fi
- sed -e "s|PREFIX=[^\r]*|PREFIX=$ROOT|" config/Makefile.$OCAML_PORT >
config/Makefile
- msvs_promote_path $OCAML_PORT
- fi
-
- LOG_FILE=OCaml-$OCAML_VERSION-$OCAML_PORT.log
- echo "Building OCaml $OCAML_VERSION for $OCAML_PORT" | tee $LOG_FILE
- echo "Please see $LOG_FILE for further information"
- LOG_FILE="$APPVEYOR_BUILD_FOLDER/$LOG_FILE"
- quietly_log "make $MAKEFILE $PRE_WORLD world.opt $POST_WORLD install"
- # Remove unnecessary executables to keep the build cache size down
- # These are removed here to ensure findlib doesn't configure itself
- # to use .opt commands
- if [[ $OCAML_BRANCH -ge 404 ]] ; then
- if [[ ${OCAML_PORT%64} != "cygwin" ]] ; then
- rm $PREFIX/bin/*.opt.exe
- fi
- rm $PREFIX/bin/*.byte.exe
- else
- for i in $PREFIX/bin/*.opt.exe ; do
- rm ${i%.opt.exe}.exe
- mv $i ${i%.opt.exe}.exe
- done
- fi
- # Remove unnecessary commands to keep the build cache size down
- rm -f
$PREFIX/bin/{ocamlcp,ocamldebug,ocamldoc,ocamlmktop,ocamlobjinfo,ocamloptp,ocamlprof}.exe
\
- $PREFIX/lib/{expunge,extract_crc,objinfo_helper}.exe
- # Remove unnecessary files
- if [[ $OCAML_BRANCH -lt 405 && $OCAML_BRANCH -gt 402 ]] ; then
- rm $PREFIX/*.txt
- fi
- find $PREFIX -name \*.cmt\* | xargs rm
- find $PREFIX -name \*.ml\* | xargs rm
- rm -f $PREFIX/lib/compiler-libs/*.cmx*
$PREFIX/lib/compiler-libs/*.{lib,a} $PREFIX/lib/compiler-libs/ocamloptcomp.cma
- echo "Complete"
- appveyor PushArtifact $(echo $LOG_FILE| cygpath -m -f -)
- fi
- ;;
- build)
- if [[ -z $2 ]] ; then
- set -o pipefail
- SCRIPT=$(echo "$0"| cygpath -f -)
- script -qec "\"$SCRIPT\" $1 script" | sed -e 's/\d027\[K//g' \
- -e 's/\d027\[m/\d027[0m/g' \
- -e
's/\d027\[01\([m;]\)/\d027[1\1/g'
- exit $?
- fi
-
- msvs_promote_path $OCAML_PORT
-
- make -C $APPVEYOR_BUILD_FOLDER all
- ;;
-esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/appveyor.yml
new/opam-file-format-2.2.0/appveyor.yml
--- old/opam-file-format-2.1.6/appveyor.yml 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/appveyor.yml 1970-01-01 01:00:00.000000000
+0100
@@ -1,42 +0,0 @@
-platform:
- - x64
-
-image: Visual Studio 2017
-
-clone_depth: 1
-
-environment:
- global:
- CYG_ROOT: cygwin64
- CYG_ARCH: x86_64
- OCAML_ROOT: C:\OCaml
- OCAML_VERSION: 4.06.1
- CYG_CACHE: C:\cygwin\var\cache\setup
- CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
- matrix:
- - CYG_ROOT: cygwin
- CYG_ARCH: x86
- OCAML_PORT: cygwin
- - CYG_ROOT: cygwin64
- OCAML_PORT: cygwin64
- - OCAML_PORT: msvc
- - OCAML_PORT: msvc64
- - OCAML_PORT: mingw
- - OCAML_PORT: mingw64
-
-cache:
- - C:\OCaml
-
-install:
- - call "%APPVEYOR_BUILD_FOLDER%\appveyor.cmd" install
-
-build_script:
- - call "%APPVEYOR_BUILD_FOLDER%\appveyor.cmd" build
-
-test_script:
- - call "%APPVEYOR_BUILD_FOLDER%\appveyor.cmd" test
-
-# Uncomment this to enable Remote Desktop on the build worker at the end of the
-# build. The worker is available for the remainder of the allocated hour.
-#on_finish:
-# - ps: $blockRdp = $true; iex ((new-object
net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/dune-project
new/opam-file-format-2.2.0/dune-project
--- old/opam-file-format-2.1.6/dune-project 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/dune-project 2025-07-03 16:27:27.000000000
+0200
@@ -1 +1,2 @@
-(lang dune 1.3)
+(lang dune 3.13)
+(using menhir 2.0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/opam-file-format.opam
new/opam-file-format-2.2.0/opam-file-format.opam
--- old/opam-file-format-2.1.6/opam-file-format.opam 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/opam-file-format.opam 2025-07-03
16:27:27.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "2.0"
-version: "2.1.6"
+version: "2.2.0"
synopsis: "Parser and printer for the opam file syntax"
maintainer: "Louis Gesbert <[email protected]>"
authors: "Louis Gesbert <[email protected]>"
@@ -7,17 +7,12 @@
bug-reports: "https://github.com/ocaml/opam-file-format/issues"
license: "LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
dev-repo: "git+https://github.com/ocaml/opam-file-format"
-build: [
- [make "byte" {!ocaml:native} "all" {ocaml:native}] {!dune:installed}
- ["dune" "build" "-p" name "-j" jobs "@install" "@doc" {with-doc}]
{dune:installed}
- ["dune" "runtest" "-p" name "-j" jobs] {with-test & dune:installed}
-]
-install: [make "install" "PREFIX=%{prefix}%"] {!dune:installed}
+build: ["dune" "build" "-p" name "-j" jobs]
+run-test: ["dune" "runtest" "-p" name "-j" jobs]
depends: [
- "ocaml" {>= "3.09.0"}
- "alcotest" {with-test}
-]
-depopts: [
- "dune"
+ "ocaml" {>= "4.02"}
+ "dune" {>= "3.13"}
+ "menhir" {>= "20211230"}
+ "alcotest" {with-test & >= "0.4.8"}
+ "fmt" {with-test}
]
-conflicts: "dune" {< "1.3.0"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/META.in
new/opam-file-format-2.2.0/src/META.in
--- old/opam-file-format-2.1.6/src/META.in 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/src/META.in 1970-01-01 01:00:00.000000000
+0100
@@ -1,4 +0,0 @@
-version = VERSION
-description = "Parser and printer for the opam file syntax"
-archive(byte) = "opam-file-format.cma"
-archive(native) = "opam-file-format.cmxa"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/Makefile
new/opam-file-format-2.2.0/src/Makefile
--- old/opam-file-format-2.1.6/src/Makefile 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/src/Makefile 1970-01-01 01:00:00.000000000
+0100
@@ -1,67 +0,0 @@
-all: opam-file-format.cmxa opam-file-format.cma
-
-%.ml: %.mll
- ocamllex $<
-
-EMPTY=
-SPACE=$(EMPTY) $(EMPTY)
-OCAML_VERSION:=$(firstword $(subst ~, ,$(subst +, ,$(shell ocamlc -version))))
-ifeq ($(OCAML_VERSION),)
-OCAML_VERSION:=0
-else
-OCAML_VERSION:=$(subst ., ,$(OCAML_VERSION))
-OCAML_VERSION:=$(subst $(SPACE),,$(firstword $(OCAML_VERSION))$(foreach
i,$(wordlist 2,$(words $(OCAML_VERSION)),$(OCAML_VERSION)),$(if $(filter 0 1 2
3 4 5 6 7 8 9,$(i)),0,)$(i)))
-endif
-
-ifeq ($(shell test $(OCAML_VERSION) -ge 40202 || echo no-attributes),)
-PP=
-else
-PP=-pp 'sed -e s/\\[@@\\?ocaml[^]]*\\]//'
-endif
-
-show:
- echo $(OCAML_VERSION)
-
-opamParserTypes.cmi: opamParserTypes.cmo
-
-%.ml %.mli: %.mly
- ocamlyacc $<
-
-%.cmi: %.mli
- ocamlc -c $(PP) $<
-
-%.cmo: %.ml
- ocamlc -c $(PP) $<
-
-%.cmx: %.ml
- ocamlopt -c $(PP) $<
-
-MODULES = opamParserTypes opamBaseParser opamLexer opamParser opamPrinter
-
-GENERATED = $(patsubst %.mly,%.ml,$(wildcard *.mly)) \
- $(patsubst %.mly,%.mli,$(wildcard *.mly)) \
- $(patsubst %.mll,%.ml,$(wildcard *.mll)) \
- META
-
-opam-file-format.cma: $(addsuffix .cmo,$(MODULES))
- ocamlc -a $^ -o $@
-
-opam-file-format.cmxa: $(addsuffix .cmx,$(MODULES))
- ocamlopt -a $^ -o $@
-
-opam-file-format.cmxs: $(addsuffix .cmx,$(MODULES))
- ocamlopt -shared $^ -o $@
-
-META: META.in ../opam-file-format.opam $(wildcard *.cm*)
- sed -e 's/VERSION/$(shell sed -ne "s/^version: //p"
../opam-file-format.opam)/' \
- $(if $(wildcard *.cmx*),,-e '/archive(native)/d') \
- $(if $(wildcard *.cma),,-e '/archive(byte)/d') $< > $@
-
-.PHONY: clean
-clean:
- rm -f *.cm* *.o *.a $(GENERATED) .depend .merlin
-
-.depend: *.ml *.mli $(GENERATED)
- ocamldep $(PP) *.mli *.ml > .depend
-
--include .depend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/compat/domain.ml
new/opam-file-format-2.2.0/src/compat/domain.ml
--- old/opam-file-format-2.1.6/src/compat/domain.ml 1970-01-01
01:00:00.000000000 +0100
+++ new/opam-file-format-2.2.0/src/compat/domain.ml 2025-07-03
16:27:27.000000000 +0200
@@ -0,0 +1,4 @@
+module DLS = struct
+ let new_key f = f ()
+ let get x = x
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/compat/dune
new/opam-file-format-2.2.0/src/compat/dune
--- old/opam-file-format-2.1.6/src/compat/dune 1970-01-01 01:00:00.000000000
+0100
+++ new/opam-file-format-2.2.0/src/compat/dune 2025-07-03 16:27:27.000000000
+0200
@@ -0,0 +1,6 @@
+(rule
+ (enabled_if (< %{ocaml_version} "5.0"))
+ (action (with-stdout-to compat.sexp (echo "(\"domain\")"))))
+(rule
+ (enabled_if (>= %{ocaml_version} "5.0"))
+ (action (with-stdout-to compat.sexp (echo "()"))))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/dune
new/opam-file-format-2.2.0/src/dune
--- old/opam-file-format-2.1.6/src/dune 2023-03-20 22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/src/dune 2025-07-03 16:27:27.000000000 +0200
@@ -3,18 +3,21 @@
(public_name opam-file-format)
(synopsis "Parser and printer for the opam file syntax")
(wrapped false)
- (modules :standard \ flags)
+ (private_modules (:include compat/compat.sexp))
(flags :standard (:include flags.sexp)))
(rule
- (with-stdout-to flags.ml
- (echo "print_string (if String.sub Sys.ocaml_version 0 5 = \"4.02.\" then
\"(-w -50)\" else \"()\")")))
+ (enabled_if (< %{ocaml_version} "5.0"))
+ (action (copy compat/domain.ml domain.ml)))
(rule
- (with-stdout-to flags.sexp
- (run ocaml %{dep:flags.ml})))
+ (enabled_if (< %{ocaml_version} "4.03"))
+ (action (with-stdout-to flags.sexp (echo "(-w -50)"))))
+(rule
+ (enabled_if (>= %{ocaml_version} "4.03"))
+ (action (with-stdout-to flags.sexp (echo "()"))))
-(ocamlyacc opamBaseParser)
+(menhir (modules opamBaseParser) (infer false))
(ocamllex opamLexer)
(env (dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/opamBaseParser.mly
new/opam-file-format-2.2.0/src/opamBaseParser.mly
--- old/opam-file-format-2.1.6/src/opamBaseParser.mly 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/src/opamBaseParser.mly 2025-07-03
16:27:27.000000000 +0200
@@ -15,20 +15,15 @@
(** Opam config file generic type parser *)
-let pos_of_lexing_pos spos epos =
+let get_pos spos epos =
Lexing.({
filename = spos.pos_fname;
start = spos.pos_lnum, spos.pos_cnum - spos.pos_bol;
stop = epos.pos_lnum, epos.pos_cnum - epos.pos_bol;
})
-let get_pos_full ?(s=1) n =
- pos_of_lexing_pos (Parsing.rhs_start_pos s) (Parsing.rhs_end_pos n)
-
-let get_pos n = get_pos_full ~s:n n
-
(* This must match up with the package's version; checked by the build system
*)
-let version = (2, 1)
+let version = (2, 2)
%}
@@ -46,28 +41,27 @@
%token <OpamParserTypes.FullPos.pfxop_kind> PFXOP
%token <OpamParserTypes.FullPos.env_update_op_kind> ENVOP
-%left COLON
%left ATOM
%left OR
%left AND
-%nonassoc ENVOP
%nonassoc PFXOP
-%left LBRACE RBRACE
+%left LBRACE
%nonassoc RELOP
-%nonassoc URELOP
%start main value
%type <string -> OpamParserTypes.FullPos.opamfile> main
%type <OpamParserTypes.FullPos.value> value
+%type <OpamParserTypes.FullPos.value> valu_
%type <OpamParserTypes.FullPos.value list> values
%type <OpamParserTypes.FullPos.opamfile_item> item
+%type <OpamParserTypes.FullPos.value> atom
+%type <OpamParserTypes.FullPos.opamfile_item list> items
%%
-main:
-| items EOF { fun file_name ->
- { file_contents = $1; file_name } }
-;
+/* Exported values (must have an End Of File token) */
+main: items EOF { fun file_name -> { file_contents = $1; file_name } };
+value: valu_ EOF { $1 };
items:
| item items { $1 :: $2 }
@@ -75,58 +69,61 @@
;
item:
-| IDENT COLON value {
- { pos = get_pos_full 3;
+| IDENT COLON valu_ {
+ { pos = get_pos $startpos($1) $endpos($3);
pelem =
- Variable ({ pos = get_pos 1; pelem = $1 }, $3);
+ Variable ({ pos = get_pos $startpos($1) $endpos($1); pelem = $1 }, $3);
}
}
| IDENT LBRACE items RBRACE {
- { pos = get_pos_full 4;
+ { pos = get_pos $startpos($1) $endpos($4);
pelem =
- Section ({section_kind = { pos = get_pos 1; pelem = $1 };
+ Section ({section_kind = { pos = get_pos $startpos($1) $endpos($1);
pelem = $1 };
section_name = None;
section_items =
- { pos = get_pos_full ~s:2 4; pelem = $3 };
+ { pos = get_pos $startpos($2) $endpos($4); pelem = $3 };
})
}
}
| IDENT STRING LBRACE items RBRACE {
- { pos = get_pos_full 5;
+ { pos = get_pos $startpos($1) $endpos($5);
pelem =
- Section ({section_kind = { pos = get_pos 1; pelem = $1 };
- section_name = Some { pos = get_pos 2; pelem = $2 };
+ Section ({section_kind = { pos = get_pos $startpos($1) $endpos($1);
pelem = $1 };
+ section_name = Some { pos = get_pos $startpos($2) $endpos($2);
pelem = $2 };
section_items =
- { pos = get_pos_full ~s:3 5; pelem = $4 };
+ { pos = get_pos $startpos($3) $endpos($5); pelem = $4 };
})
}
}
;
-value:
+/* Previously called "value" and directly exported.
+ However menhir handles end-of-stream differently compared to ocamlyacc.
+ Thus "value" (exported, handling end-of-stream) and "valu_" (internal, does
not handle end-of-stream) had to be created */
+valu_:
| atom %prec ATOM { $1 }
-| LPAR values RPAR {{ pos = get_pos_full 3 ; pelem = Group { pos =
get_pos_full ~s:1 3; pelem = $2 } }}
-| LBRACKET values RBRACKET {{ pos = get_pos_full 3 ; pelem = List { pos =
get_pos_full ~s:1 3; pelem = $2 } }}
-| value LBRACE values RBRACE {{ pos = get_pos_full 4 ;
- pelem = Option ($1, { pos = get_pos_full ~s:2
4; pelem = $3 }) }}
-| value AND value {{ pos = get_pos_full 3 ; pelem = Logop ({ pos =
get_pos 2 ; pelem = `And },$1,$3) }}
-| value OR value {{ pos = get_pos_full 3 ; pelem = Logop ({ pos =
get_pos 2 ; pelem = `Or },$1,$3) }}
-| atom RELOP atom {{ pos = get_pos_full 3 ; pelem = Relop ({ pos =
get_pos 2 ; pelem = $2 },$1,$3) }}
-| atom ENVOP atom {{ pos = get_pos_full 3 ; pelem = Env_binding
($1,{ pos = get_pos 2 ; pelem = $2 },$3) }}
-| PFXOP value {{ pos = get_pos_full 2 ; pelem = Pfxop ({ pos =
get_pos 1 ; pelem = $1 },$2) }}
-| RELOP atom {{ pos = get_pos_full 2 ; pelem = Prefix_relop ({
pos = get_pos 1 ; pelem = $1 },$2) }}
+| LPAR values RPAR {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = Group { pos = get_pos $startpos($1) $endpos($3); pelem = $2 } }}
+| LBRACKET values RBRACKET {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = List { pos = get_pos $startpos($1) $endpos($3); pelem = $2 } }}
+| valu_ LBRACE values RBRACE {{ pos = get_pos $startpos($1) $endpos($4) ;
+ pelem = Option ($1, { pos = get_pos
$startpos($2) $endpos($4); pelem = $3 }) }}
+| valu_ AND valu_ {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = Logop ({ pos = get_pos $startpos($2) $endpos($2) ; pelem = `And
},$1,$3) }}
+| valu_ OR valu_ {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = Logop ({ pos = get_pos $startpos($2) $endpos($2) ; pelem = `Or },$1,$3)
}}
+| atom RELOP atom {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = Relop ({ pos = get_pos $startpos($2) $endpos($2) ; pelem = $2 },$1,$3)
}}
+| atom ENVOP atom {{ pos = get_pos $startpos($1) $endpos($3) ;
pelem = Env_binding ($1,{ pos = get_pos $startpos($2) $endpos($2) ; pelem = $2
},$3) }}
+| PFXOP valu_ {{ pos = get_pos $startpos($1) $endpos($2) ;
pelem = Pfxop ({ pos = get_pos $startpos($1) $endpos($1) ; pelem = $1 },$2) }}
+| RELOP atom {{ pos = get_pos $startpos($1) $endpos($2) ;
pelem = Prefix_relop ({ pos = get_pos $startpos($1) $endpos($1) ; pelem = $1
},$2) }}
;
values:
| { [] }
-| value values { $1 :: $2 }
+| valu_ values { $1 :: $2 }
;
atom:
-| IDENT {{ pos = get_pos 1 ; pelem = Ident $1 }}
-| BOOL {{ pos = get_pos 1 ; pelem = Bool $1 }}
-| INT {{ pos = get_pos 1 ; pelem = Int $1 }}
-| STRING {{ pos = get_pos 1 ; pelem = String $1 }}
+| IDENT {{ pos = get_pos $startpos($1) $endpos($1) ;
pelem = Ident $1 }}
+| BOOL {{ pos = get_pos $startpos($1) $endpos($1) ;
pelem = Bool $1 }}
+| INT {{ pos = get_pos $startpos($1) $endpos($1) ;
pelem = Int $1 }}
+| STRING {{ pos = get_pos $startpos($1) $endpos($1) ;
pelem = String $1 }}
;
%%
@@ -155,15 +152,6 @@
| Failure _
| End_of_file -> (0, 0)
-let with_clear_parser f x =
- try
- let r = f x in
- Parsing.clear_parser ();
- r
- with e ->
- Parsing.clear_parser ();
- raise e
-
(* Update a lexbuf with position information prior to raising an exception *)
let reset_lexbuf_and_abort l file_name (start_line, start_col) (end_line,
end_col) exn =
let open Lexing in
@@ -178,7 +166,7 @@
| Match_failure _ -> false
| _ -> true
-let get_three_tokens lexer lexbuf =
+let get_three_tokens lexer lexbuf =
let open Lexing in
try
let p0 = lexbuf.lex_start_p, lexbuf.lex_curr_p in
@@ -236,9 +224,9 @@
an exception to be raised before the element has been fully
parsed.
In this case, we generate a single opam-version Variable to
return.
*)
- {pelem = Variable({pelem = "opam-version"; pos = pos_of_lexing_pos
p0 p1},
- {pelem = String ver; pos = pos_of_lexing_pos p2
p3});
- pos = pos_of_lexing_pos p0 p3}
+ {pelem = Variable({pelem = "opam-version"; pos = get_pos p0 p1},
+ {pelem = String ver; pos = get_pos p2 p3});
+ pos = get_pos p0 p3}
in
(header, (nopatch ver >= (2, 1)), (nopatch ver > version))
| _ ->
@@ -262,7 +250,7 @@
lexer lexbuf
in
let result =
- try with_clear_parser (main lexer lexbuf) file_name
+ try main lexer lexbuf file_name
with e when trap_exceptions && not_fatal e ->
(* Append a syntactically invalid sentinel section "#" to the version
header which was manually parsed. That is then sufficient
@@ -273,7 +261,7 @@
detect the parsing error. *)
let sentinel =
let pos =
- Lexing.(pos_of_lexing_pos lexbuf.lex_start_p lexbuf.lex_curr_p)
+ Lexing.(get_pos lexbuf.lex_start_p lexbuf.lex_curr_p)
in
let section =
{section_kind = {pelem = "#"; pos};
@@ -294,4 +282,10 @@
end;
result
-let value t l = with_clear_parser (value t) l
+let main t l fn =
+ try main t l fn with
+ | Error -> raise Parsing.Parse_error
+
+let value t l =
+ try value t l with
+ | Error -> raise Parsing.Parse_error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/src/opamLexer.mll
new/opam-file-format-2.2.0/src/opamLexer.mll
--- old/opam-file-format-2.1.6/src/opamLexer.mll 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/src/opamLexer.mll 2025-07-03
16:27:27.000000000 +0200
@@ -84,7 +84,7 @@
(* Some hash-consing for strings *)
module HS =
Weak.Make(struct include String let hash = Hashtbl.hash let equal = (=) end)
-let hm = HS.create 317
+let hm = Domain.DLS.new_key (fun () -> HS.create 317)
let buffer_rule r lb =
@@ -93,7 +93,7 @@
r b lb ;
(* buffer start position, instead of last lexem position *)
lb.Lexing.lex_start_p <- pos;
- HS.merge hm (Buffer.contents b)
+ HS.merge (Domain.DLS.get hm) (Buffer.contents b)
}
let eol = '\r'? '\n'
@@ -131,7 +131,7 @@
| "true" { BOOL true }
| "false"{ BOOL false }
| int { INT (int_of_string (Lexing.lexeme lexbuf)) }
-| ident { IDENT (HS.merge hm (Lexing.lexeme lexbuf)) }
+| ident { IDENT (HS.merge (Domain.DLS.get hm) (Lexing.lexeme lexbuf)) }
| relop { RELOP (FullPos.relop (Lexing.lexeme lexbuf)) }
| '&' { AND }
| '|' { OR }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/Makefile
new/opam-file-format-2.2.0/tests/Makefile
--- old/opam-file-format-2.1.6/tests/Makefile 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/tests/Makefile 1970-01-01 01:00:00.000000000
+0100
@@ -1,13 +0,0 @@
-all: tests
-
-tests:
- ocamlfind ocamlc tests.ml -o tests -linkpkg -package alcotest -package
opam-file-format
-
-run: tests
- ./tests
-
-.PHONY: clean
-clean:
- rm -f tests
- rm -f *.cmi *.cmo
- rm -rf _build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/dune
new/opam-file-format-2.2.0/tests/dune
--- old/opam-file-format-2.1.6/tests/dune 2023-03-20 22:51:07.000000000
+0100
+++ new/opam-file-format-2.2.0/tests/dune 2025-07-03 16:27:27.000000000
+0200
@@ -1,6 +1,6 @@
(test
(name tests)
(deps sample.opam)
- (libraries alcotest opam-file-format))
+ (libraries alcotest opam-file-format fmt))
(rule (copy sample-opam sample.opam))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/hygiene/dune
new/opam-file-format-2.2.0/tests/hygiene/dune
--- old/opam-file-format-2.1.6/tests/hygiene/dune 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/hygiene/dune 2025-07-03
16:27:27.000000000 +0200
@@ -6,7 +6,7 @@
(flags :standard (:include flags.sexp))
(action (run %{test} %{version:opam-file-format})))
-(ocamlyacc OpamBaseParser)
+(menhir (modules OpamBaseParser) (infer false))
(rule
(with-stdout-to OpamBaseParser.mly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/legacy/Makefile
new/opam-file-format-2.2.0/tests/legacy/Makefile
--- old/opam-file-format-2.1.6/tests/legacy/Makefile 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/legacy/Makefile 1970-01-01
01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-.PHONY: test
-test:: legacy.byte
-
-ifneq "$(shell ocamlopt -vnum 2>/dev/null)" ""
-test:: legacy.native
-endif
-
-src/%:
- $(MAKE) -C src $*
-
-legacy.byte: src/opam-file-format.cma legacy.ml
- ocamlc -o $@ -I src $^
-
-legacy.native: src/opam-file-format.cmxa legacy.ml
- ocamlopt -o $@ -I src $^
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/legacy/dune
new/opam-file-format-2.2.0/tests/legacy/dune
--- old/opam-file-format-2.1.6/tests/legacy/dune 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/legacy/dune 1970-01-01
01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-; This test (driven by Dune) ensures that the old build system works
-
-(copy_files ../../opam-file-format.opam)
-
-(alias
- (name runtest)
- (deps Makefile legacy.ml opam-file-format.opam (glob_files src/*))
- (action (run make test)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/legacy/legacy.ml
new/opam-file-format-2.2.0/tests/legacy/legacy.ml
--- old/opam-file-format-2.1.6/tests/legacy/legacy.ml 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/legacy/legacy.ml 1970-01-01
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-(* This "program" is used to verify that the library is linkable - see #40 *)
-let file = OpamParser.FullPos.file "../opam-file-format.opam"
-in Printf.printf "Successfully loaded %s\n"
file.OpamParserTypes.FullPos.file_name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/legacy/src/dune
new/opam-file-format-2.2.0/tests/legacy/src/dune
--- old/opam-file-format-2.1.6/tests/legacy/src/dune 2023-03-20
22:51:07.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/legacy/src/dune 1970-01-01
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-; We mustn't copy the dune file, but Dune's globbing has no syntax for that
-(copy_files ../../../src/o*)
-(copy_files ../../../src/M*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/simple/dune
new/opam-file-format-2.2.0/tests/simple/dune
--- old/opam-file-format-2.1.6/tests/simple/dune 1970-01-01
01:00:00.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/simple/dune 2025-07-03
16:27:27.000000000 +0200
@@ -0,0 +1,6 @@
+(copy_files ../../opam-file-format.opam)
+
+(test
+ (name simple)
+ (deps opam-file-format.opam)
+ (libraries opam-file-format))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opam-file-format-2.1.6/tests/simple/simple.ml
new/opam-file-format-2.2.0/tests/simple/simple.ml
--- old/opam-file-format-2.1.6/tests/simple/simple.ml 1970-01-01
01:00:00.000000000 +0100
+++ new/opam-file-format-2.2.0/tests/simple/simple.ml 2025-07-03
16:27:27.000000000 +0200
@@ -0,0 +1,3 @@
+(* This "program" is used to verify that the library is linkable - see #40 *)
+let file = OpamParser.FullPos.file "./opam-file-format.opam"
+in Printf.printf "Successfully loaded %s\n"
file.OpamParserTypes.FullPos.file_name