Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package opam for openSUSE:Factory checked in at 2026-10-20 12:38:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/opam (Old) and /work/SRC/openSUSE:Factory/.opam.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opam" Tue Oct 20 12:38:40 2026 rev:24 rq:1386175 version:2.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/opam/opam.changes 2026-09-28 10:41:54.607535934 +0200 +++ /work/SRC/openSUSE:Factory/.opam.new.3698736/opam.changes 2026-10-20 12:40:21.515602800 +0200 @@ -1,0 +2,6 @@ +Sat Oct 10 10:10:10 UTC 2026 - [email protected] + +- Update to version 2.6.1 + see included CHANGES file for details + +------------------------------------------------------------------- Old: ---- opam-2.6.0.tar.xz New: ---- opam-2.6.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opam.spec ++++++ --- /var/tmp/diff_new_pack.bDGtJw/_old 2026-10-20 12:40:22.187630925 +0200 +++ /var/tmp/diff_new_pack.bDGtJw/_new 2026-10-20 12:40:22.189631009 +0200 @@ -17,7 +17,7 @@ Name: opam -Version: 2.6.0 +Version: 2.6.1 Release: 0 Summary: Source-based package manager for OCaml License: LGPL-2.1-only WITH OCaml-LGPL-linking-exception ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bDGtJw/_old 2026-10-20 12:40:22.225632516 +0200 +++ /var/tmp/diff_new_pack.bDGtJw/_new 2026-10-20 12:40:22.228632641 +0200 @@ -39,7 +39,7 @@ <param name="exclude">src_ext</param> <param name="exclude">tests</param> <param name="filename">opam</param> - <param name="revision">0f9c3b385769323c4af68798b2d2c7bf62a70daf</param> + <param name="revision">921b53bf7fca5467b65ccbe714b78618bebd5e97</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://github.com/ocaml/opam.git</param> ++++++ opam-2.6.0.tar.xz -> opam-2.6.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/CHANGES new/opam-2.6.1/CHANGES --- old/opam-2.6.0/CHANGES 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/CHANGES 2026-10-06 23:13:53.000000000 +0200 @@ -3,6 +3,25 @@ are not marked). Those prefixed with "(+)" are new command/option (since 2.1.0~alpha2). +2.6.1: +* Fix the depexts installation on `opam install --deps` when the system + packages already exist in a repository [#7158 @kit-ty-kate - fix #7153] +* Add support for using git repositories owned by another local user + [#6980 @kit-ty-kate - fix #6963] +* Use `/dev/null` on both Unix and Windows when setting `GIT_CONFIG_*` + (NUL is not accepted in Git-for-Windows 2.56.0.windows.1) + [#7085 @kit-ty-kate] +* Upgrade the "lockfile" with checkseum.0.5.4 and decompress.1.6.1 + [#7172 @kit-ty-kate] +* Improve and extend the testsuite [#7158 #6980 @kit-ty-kate @rjbou] +* API changes in `opam-repository`: + * `OpamGit`: git calls now will all carry git config `safe.directory=.` + (current directory) [#6980 @kit-ty-kate - fix #6963] +* API changes in `opam-state`: + * `OpamSwitchState.update_sys_packages` (new in 2.6.0) was removed in favour + of the already existing `update_package_metadata` or `update_pin` functions + [#7158 @kit-ty-kate] + 2.6.0: * Bump `opam-root-version` to 2.6 [#7146 @kit-ty-kate] * Improve and extend the testsuite [#7146 @kit-ty-kate @rjbou] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/configure.ac new/opam-2.6.1/configure.ac --- old/opam-2.6.0/configure.ac 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/configure.ac 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ dnl The line below must be formatted AC_INIT([opam],[VERSION]) with no extra spaces -AC_INIT([opam],[2.6.0]) +AC_INIT([opam],[2.6.1]) AC_COPYRIGHT(Copyright 2012-2019 OcamlPro SAS) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-client.opam new/opam-2.6.1/opam-client.opam --- old/opam-2.6.0/opam-client.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-client.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Client library for opam 2.6" description: """ Actions on the opam root, switches, installations, and front-end. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-core.opam new/opam-2.6.1/opam-core.opam --- old/opam-2.6.0/opam-core.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-core.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Core library for opam 2.6" description: "Small standard library extensions, and generic system interaction modules used by opam." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-devel.opam new/opam-2.6.1/opam-devel.opam --- old/opam-2.6.0/opam-devel.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-devel.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Bootstrapped development binary for opam 2.6" description: """ This package compiles (bootstraps) opam. For consistency and safety of the installation, the binaries are not installed into the PATH, but into lib/opam-devel, from where the user can manually install them system-wide. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-format.opam new/opam-2.6.1/opam-format.opam --- old/opam-2.6.0/opam-format.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-format.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Format library for opam 2.6" description: """ Definition of opam datastructures and its file interface. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-installer.opam new/opam-2.6.1/opam-installer.opam --- old/opam-2.6.0/opam-installer.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-installer.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Installation of files to a prefix, following opam conventions" description: """ opam-installer is a small tool that can read *.install files, as defined by opam [1], and execute them to install or remove package files without going through opam. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-repository.opam new/opam-2.6.1/opam-repository.opam --- old/opam-2.6.0/opam-repository.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-repository.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Repository library for opam 2.6" description: """ This library includes repository and remote sources handling, including curl/wget, rsync, git, mercurial, darcs backends. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-solver.opam new/opam-2.6.1/opam-solver.opam --- old/opam-2.6.0/opam-solver.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-solver.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "Solver library for opam 2.6" description: """ Solver and Cudf interaction. This library is based on the Cudf and Dose libraries, and handles calls to the external solver from opam. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/opam-state.opam new/opam-2.6.1/opam-state.opam --- old/opam-2.6.0/opam-state.opam 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/opam-state.opam 2026-10-06 23:13:53.000000000 +0200 @@ -1,5 +1,5 @@ opam-version: "2.0" -version: "2.6.0" +version: "2.6.1" synopsis: "State library for opam 2.6" description: """ Handling of the ~/.opam hierarchy, repository and switch states. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/src/client/opamAuxCommands.ml new/opam-2.6.1/src/client/opamAuxCommands.ml --- old/opam-2.6.0/src/client/opamAuxCommands.ml 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/src/client/opamAuxCommands.ml 2026-10-06 23:13:53.000000000 +0200 @@ -346,11 +346,6 @@ 'show' requests that use a write lock.*) (* assert (not (for_view && * OpamSystem.get_lock_flag st.switch_lock = `Lock_write)); *) - let local_names = - List.fold_left (fun set nf -> - OpamPackage.Name.Set.add nf.pin_name set) - OpamPackage.Name.Set.empty to_pin - in let local_opams = List.fold_left (fun map pin -> let { pin_name = name; @@ -378,18 +373,6 @@ OpamPackage.Map.empty to_pin in let local_packages = OpamPackage.keys local_opams in - let pinned = - if for_view then - (* For `opam show`, to display local files instead of the stored on, we - need to have on the pinned set only the new simulated pinned ones instead - of really pinned ones. *) - let open OpamPackage.Set.Op in - st.pinned - -- OpamPackage.packages_of_names st.pinned - (OpamPackage.names_of_packages local_packages) - ++ local_packages - else st.pinned - in let overwrote_opams = if for_view then OpamPackage.Map.empty else OpamPackage.Map.filter_map (fun nv opam -> @@ -399,36 +382,16 @@ None) st.opams in - let st = { - st with - opams = - OpamPackage.Map.union (fun _ o -> o) st.opams local_opams; - packages = - OpamPackage.Set.union st.packages local_packages; - available_packages = lazy ( - OpamPackage.Set.union - (OpamPackage.Set.filter - (fun nv -> not (OpamPackage.Name.Set.mem nv.name local_names)) - (Lazy.force st.available_packages)) - (OpamSwitchState.compute_available_packages - st.switch_global st.switch st.switch_config ~pinned - ~opams:local_opams) - ); - reinstall = lazy ( - let open OpamPackage.Set.Op in - let installed_pinned = local_packages %% st.installed in - OpamPackage.Set.fold (fun pkg reinstall -> - let old_opam = OpamPackage.Map.find pkg st.installed_opams in - let new_opam = OpamPackage.Map.find pkg local_opams in - if OpamFile.OPAM.effectively_equal old_opam new_opam then - reinstall - else - OpamPackage.Set.add pkg reinstall) - installed_pinned (Lazy.force st.reinstall) - ); - pinned; - overwrote_opams; - } in + let st = + let aux = + if for_view then + OpamSwitchState.update_pin + else + OpamSwitchState.update_package_metadata + in + OpamPackage.Map.fold aux local_opams st + in + let st = { st with overwrote_opams } in st, local_packages let simulate_pinned_atoms pins atoms = @@ -534,7 +497,6 @@ with OpamPinCommand.Aborted -> OpamStd.Sys.exit_because `Aborted in - let st = OpamSwitchState.update_sys_packages pins st in let _result, st, _updated = if simulate then false, st, OpamPackage.Set.empty else let already_pinned = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/src/client/opamClient.ml new/opam-2.6.1/src/client/opamClient.ml --- old/opam-2.6.0/src/client/opamClient.ml 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/src/client/opamClient.ml 2026-10-06 23:13:53.000000000 +0200 @@ -2214,9 +2214,6 @@ nvs (t, deps_of_packages)) dname_map (t, OpamPackage.Set.empty) in - let t = - OpamSwitchState.update_sys_packages deps_of_packages t - in let pkg_skip, pkg_new = get_installed_atoms t atoms in let atoms, deps_atoms = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/src/repository/opamGit.ml new/opam-2.6.1/src/repository/opamGit.ml --- old/opam-2.6.0/src/repository/opamGit.ml 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/src/repository/opamGit.ml 2026-10-06 23:13:53.000000000 +0200 @@ -15,13 +15,14 @@ (* let log fmt = OpamConsole.log "GIT" fmt *) let git_env = [ - "GIT_CONFIG_GLOBAL", Filename.null; - "GIT_CONFIG_SYSTEM", Filename.null; + "GIT_CONFIG_GLOBAL", "/dev/null"; + "GIT_CONFIG_SYSTEM", "/dev/null"; ] let git_config = [ "gc.autoDetach", "false"; "maintenance.autoDetach", "false"; + "safe.directory", "."; ] let env = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/src/state/opamSwitchState.ml new/opam-2.6.1/src/state/opamSwitchState.ml --- old/opam-2.6.0/src/state/opamSwitchState.ml 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/src/state/opamSwitchState.ml 2026-10-06 23:13:53.000000000 +0200 @@ -1268,25 +1268,42 @@ default let update_package_metadata nv opam st = - { st with - opams = OpamPackage.Map.add nv opam st.opams; - packages = OpamPackage.Set.add nv st.packages; - available_packages = lazy ( - if OpamFilter.eval_to_bool ~default:false - (OpamPackageVar.resolve_switch_raw ~package:nv - st.switch_global st.switch st.switch_config) - (OpamFile.OPAM.available opam) - then OpamPackage.Set.add nv (Lazy.force st.available_packages) - else OpamPackage.Set.remove nv (Lazy.force st.available_packages) - ); - reinstall = lazy - (match OpamPackage.Map.find_opt nv st.installed_opams with - | Some inst -> - if OpamFile.OPAM.effectively_equal inst opam - then OpamPackage.Set.remove nv (Lazy.force st.reinstall) - else OpamPackage.Set.add nv (Lazy.force st.reinstall) - | _ -> Lazy.force st.reinstall); - } + let st = + { st with + opams = OpamPackage.Map.add nv opam st.opams; + packages = OpamPackage.Set.add nv st.packages; + available_packages = lazy ( + if OpamFilter.eval_to_bool ~default:false + (OpamPackageVar.resolve_switch_raw ~package:nv + st.switch_global st.switch st.switch_config) + (OpamFile.OPAM.available opam) + then OpamPackage.Set.add nv (Lazy.force st.available_packages) + else OpamPackage.Set.remove nv (Lazy.force st.available_packages) + ); + reinstall = lazy + (match OpamPackage.Map.find_opt nv st.installed_opams with + | Some inst -> + if OpamFile.OPAM.effectively_equal inst opam + then OpamPackage.Set.remove nv (Lazy.force st.reinstall) + else OpamPackage.Set.add nv (Lazy.force st.reinstall) + | _ -> Lazy.force st.reinstall); + } + in + if not OpamStateConfig.(!r.depexts) || + OpamSysPkg.Set.is_empty (depexts st nv) then + st + else + let sys_packages = lazy ( + OpamPackage.Map.union (fun _ n -> n) + (Lazy.force st.sys_packages) + (depexts_status_of_packages st + (OpamPackage.Set.singleton nv)) + ) in + let available_packages = lazy ( + OpamPackage.Set.filter (fun nv -> depexts_unavailable st nv = None) + (Lazy.force st.available_packages) + ) in + { st with sys_packages; available_packages } let remove_package_metadata nv st = { st with @@ -1294,6 +1311,8 @@ packages = OpamPackage.Set.remove nv st.packages; available_packages = lazy (OpamPackage.Set.remove nv (Lazy.force st.available_packages)); + sys_packages = + lazy (OpamPackage.Map.remove nv (Lazy.force st.sys_packages)); } let update_pin nv opam st = @@ -1307,58 +1326,7 @@ let available_packages = lazy ( OpamPackage.filter_name_out (Lazy.force st.available_packages) nv.name ) in - let st = - update_package_metadata nv opam { st with pinned; available_packages } - in - if not OpamStateConfig.(!r.depexts) - || OpamSysPkg.Set.is_empty (depexts st nv) - then st else - let sys_packages = lazy ( - OpamPackage.Map.union (fun _ n -> n) - (Lazy.force st.sys_packages) - (depexts_status_of_packages st - (OpamPackage.Set.singleton nv)) - ) in - let available_packages = lazy ( - OpamPackage.Set.filter (fun nv -> depexts_unavailable st nv = None) - (Lazy.force st.available_packages) - ) in - { st with sys_packages; available_packages } - -let update_sys_packages pkgs st = - let depexts_s = - OpamPackage.Set.fold (fun p acc -> - OpamSysPkg.Set.Op.(depexts st p ++ acc)) - pkgs OpamSysPkg.Set.empty - in - if OpamSysPkg.Set.is_empty depexts_s then - st - else - (* Check if an update is to be made *) - let update_depexts () = - let sys_packages = lazy ( - OpamPackage.Map.union (fun _ x -> x) - (Lazy.force st.sys_packages) - (depexts_status_of_packages st pkgs) - ) in - { st with sys_packages } - in - match st.switch_repos.repos_syspkgs_available with - | None -> update_depexts () - | Some (family, availability) -> - if OpamSysInteract.same_os_family family - ~env:st.switch_global.global_variables then - match availability with - | OpamSysPkg.Available available_pkgs -> - if OpamSysPkg.Set.is_empty available_pkgs - || not (OpamSysPkg.Set.subset depexts_s available_pkgs) - then - update_depexts () - else - st - | Suppose_available -> st - else - update_depexts () + update_package_metadata nv opam { st with pinned; available_packages } let do_backup lock st = match lock with | `Lock_write -> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.6.0/src/state/opamSwitchState.mli new/opam-2.6.1/src/state/opamSwitchState.mli --- old/opam-2.6.0/src/state/opamSwitchState.mli 2026-09-16 15:25:46.000000000 +0200 +++ new/opam-2.6.1/src/state/opamSwitchState.mli 2026-10-06 23:13:53.000000000 +0200 @@ -244,10 +244,6 @@ changed. *) val update_pin: package -> OpamFile.OPAM.t -> 'a switch_state -> 'a switch_state -(** Given a [package_set], updates the [sys_pkg_status package_map] with the - system dependencies of each package in the set. *) -val update_sys_packages: package_set -> 'a switch_state -> 'a switch_state - (** Updates the selected repositories in the given switch (does not load the full switch state, but takes a transient write lock on the switch, so make sure not to hold other locks to avoid deadlocks). Sets the switch
