Unreliable Dependecies resolution
Description
Running same command to install packages >2 times yields different results:
first run:
$ aurman -S nsis
~~ initializing aurman...
~~ calculating solutions...
!! While searching for solutions the following errors occurred:
:: Conflicts between: mingw-w64-winpthreads-5.0.4-1, mingw-w64-headers-bootstrap-5.0.3-1
While trying to install mingw-w64-winpthreads, the needed dependency mingw-w64-gcc has been removed
Way to package mingw-w64-winpthreads-5.0.4-1: nsis-3.03-1 -> mingw-w64-gcc-8.2.0-1 -> mingw-w64-winpthreads-5.0.4-1
Way to package mingw-w64-headers-bootstrap-5.0.3-1: nsis-3.03-1 -> mingw-w64-gcc-8.2.0-1 -> mingw-w64-winpthreads-5.0.4-1 -> mingw-w64-gcc-base-8.2.0-1 -> mingw-w64-headers-bootstrap-5.0.3-1
!! we could not find a solution
!! if you think that there should be one, rerun aurman with the --deep_search flag
Second run:
$ aurman -S nsis
~~ initializing aurman...
~~ calculating solutions...
:: The following 8 package(s) are getting installed:
core/gcc-ada / -> 8.2.0-2
aur/mingw-w64-binutils / -> 2.31.1-1
aur/mingw-w64-crt / -> 5.0.4-1
aur/mingw-w64-gcc / -> 8.2.0-1
aur/mingw-w64-headers / -> 5.0.4-2
aur/mingw-w64-winpthreads / -> 5.0.4-1
aur/mingw-w64-zlib / -> 1.2.11-1
aur/nsis / -> 3.03-1
~~ The following will be done:
Install : mingw-w64-binutils
Install : mingw-w64-headers
Install : mingw-w64-winpthreads
Install : gcc-ada
Install : mingw-w64-gcc
Install : mingw-w64-crt
Install : mingw-w64-zlib
Install : nsis
?? Do you want to continue? Y/n:
Third run
$ aurman -S nsis --solution_way
~~ initializing aurman...
~~ calculating solutions...
:: The following 13 package(s) are getting installed:
aur/cloog / -> 0.19.0-1
core/gcc-ada / -> 8.2.0-2
extra/glpk / -> 4.65-2
aur/isl / -> 0.20-4
aur/mingw-w64-binutils / -> 2.31.1-1
aur/mingw-w64-crt / -> 5.0.4-1
aur/mingw-w64-gcc / -> 8.2.0-1
aur/mingw-w64-headers / -> 5.0.4-2
aur/mingw-w64-winpthreads / -> 5.0.4-1
aur/mingw-w64-zlib / -> 1.2.11-1
aur/nsis / -> 3.03-1
aur/osl / -> 0.9.2-2
community/ppl / -> 1.2-2
~~ The following will be done:
Install : gcc-ada
Install : mingw-w64-binutils
Install : mingw-w64-headers
Install : osl
Install : isl
Install : cloog
Install : mingw-w64-winpthreads
Install : glpk, ppl
Install : mingw-w64-gcc-base
Install : mingw-w64-crt
Remove : mingw-w64-gcc-base
Install : mingw-w64-gcc
Install : mingw-w64-zlib
Install : nsis
?? Do you want to continue? Y/n:
So I decided to run with `--deep_search and here what i've got from 2 runs:
$ aurman -S nsis --solution_way --deep_search
~~ initializing aurman...
~~ calculating solutions...
:: The following 8 package(s) are getting installed:
core/gcc-ada / -> 8.2.0-2
aur/mingw-w64-binutils / -> 2.31.1-1
aur/mingw-w64-crt / -> 5.0.4-1
aur/mingw-w64-gcc / -> 8.2.0-1
aur/mingw-w64-headers / -> 5.0.4-2
aur/mingw-w64-winpthreads / -> 5.0.4-1
aur/mingw-w64-zlib / -> 1.2.11-1
aur/nsis / -> 3.03-1
~~ The following will be done:
:: You are using --deep_search, hence --needed is active.
:: That means packages to be reinstalled will not actually be reinstalled.
Reinstall : filesystem, gcc-libs, glibc, iana-etc, linux-api-headers, tzdata
Install : mingw-w64-headers
Reinstall : zlib
Install : mingw-w64-binutils
Install : mingw-w64-winpthreads
Reinstall : bash, binutils, gcc, gmp, libmpc, mpfr, ncurses, readline
Install : gcc-ada
Install : mingw-w64-gcc
Install : mingw-w64-crt
Install : mingw-w64-zlib
Reinstall : bzip2, db, e2fsprogs, expat, gdbm, keyutils, krb5, libffi, libldap, libnsl, libsasl, libtirpc, libutil-linux, openssl, perl, python2, scons, sqlite
Install : nsis
?? Do you want to continue? Y/n:
and
$ aurman -S nsis --solution_way --deep_search
~~ initializing aurman...
~~ calculating solutions...
:: The following 13 package(s) are getting installed:
aur/cloog / -> 0.19.0-1
core/gcc-ada / -> 8.2.0-2
extra/glpk / -> 4.65-2
aur/isl / -> 0.20-4
aur/mingw-w64-binutils / -> 2.31.1-1
aur/mingw-w64-crt / -> 5.0.4-1
aur/mingw-w64-gcc / -> 8.2.0-1
aur/mingw-w64-headers / -> 5.0.4-2
aur/mingw-w64-winpthreads / -> 5.0.4-1
aur/mingw-w64-zlib / -> 1.2.11-1
aur/nsis / -> 3.03-1
aur/osl / -> 0.9.2-2
community/ppl / -> 1.2-2
~~ The following will be done:
:: You are using --deep_search, hence --needed is active.
:: That means packages to be reinstalled will not actually be reinstalled.
Reinstall : bash, filesystem, gcc-libs, glibc, gmp, iana-etc, libmpc, linux-api-headers, mpfr, ncurses, readline, tzdata, zlib
Install : mingw-w64-binutils
Install : mingw-w64-headers
Install : glpk, ppl
Install : mingw-w64-winpthreads
Install : osl
Reinstall : acl, attr, bzip2, ca-certificates, ca-certificates-cacert, ca-certificates-mozilla, ca-certificates-utils, cairo, coreutils, cracklib, curl, db, e2fsprogs, expat, findutils, fontconfig, freetype2, gd, gdbm, giflib, git, glib2, graphite, grep, harfbuzz, harfbuzz-icu, icu, keyutils, krb5, lcms2, libcap, libffi, libgcrypt, libgpg-error, libice, libidn2, libjpeg-turbo, libldap, libnghttp2, libpaper, libpng, libpsl, libsasl, libsigsegv, libsm, libssh2, libsynctex, libsystemd, libtasn1, libtiff, libtirpc, libunistring, libutil-linux, libwebp, libx11, libxau, libxaw, libxcb, libxdmcp, libxext, libxmu, libxpm, libxrender, libxt, lz4, lzo, nspr, nss, openjpeg2, openssl, p11-kit, pam, pambase, pcre, pcre2, perl, perl-error, perl-mailtools, perl-timedate, pixman, poppler, potrace, run-parts, shadow, sqlite, t1lib, texlive-bin, texlive-core, xcb-proto, xorgproto, xz, zziplib
Install : isl
Install : cloog
Install : mingw-w64-gcc-base
Install : mingw-w64-crt
Reinstall : binutils, gcc
Install : gcc-ada
Remove : mingw-w64-gcc-base
Install : mingw-w64-gcc
Install : mingw-w64-zlib
Reinstall : libnsl, python2, scons
Install : nsis
?? Do you want to continue? Y/n:
Expected Behavior
Solution for package dependencies must be same for each run since there is no changes in packages installed between tries.