| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 |
|
| 19 | |
| 20 | |
| 21 | |
| 22 |
|
| 23 | guix refresh --version
|
| 24 |
|
| 25 | manifest="t-guix-refresh-manifest-$$.scm"
|
| 26 | module_dir="t-guix-refresh-modules-$$"
|
| 27 | trap 'rm -f "$manifest"; rm -rf "$module_dir"' EXIT
|
| 28 |
|
| 29 | |
| 30 | export GUIX_TEST_UPDATER_TARGETS
|
| 31 | idutils_version="$(guix package -A ^idutils$ | cut -f2)"
|
| 32 | GUIX_TEST_UPDATER_TARGETS='
|
| 33 | (("guile" "3" (("12.5" "file:///dev/null")
|
| 34 | ("1.6.4" "file:///dev/null")
|
| 35 | ("3.13.3" "file:///dev/null")))
|
| 36 | ("libreoffice" "" (("1.0" "file:///dev/null")))
|
| 37 | ("idutils" "" (("'$idutils_version'" "file:///dev/null")))
|
| 38 | ("the-test-package" "" (("5.5" "file://'$PWD/$module_dir'/source"
|
| 39 | ("grep" "sed" "libreoffice")))))'
|
| 40 |
|
| 41 | |
| 42 | guix refresh -t test idutils |
| 43 | case "$(guix refresh -t test idutils 2>&1)" in
|
| 44 | *"$idutils_version"*"already the latest version"*) true;;
|
| 45 | *) false;;
|
| 46 | esac
|
| 47 |
|
| 48 | |
| 49 | case "$(guix refresh -t test -u idutils \
|
| 50 | --target-version=$idutils_version 2>&1)" in
|
| 51 | *downgrading*) false;;
|
| 52 | *updating*) false;;
|
| 53 | *) true;;
|
| 54 | esac
|
| 55 |
|
| 56 | guix refresh -t test libreoffice |
| 57 | case "$(guix refresh -t test libreoffice 2>&1)" in
|
| 58 | *"greater than the latest known version"*"1.0"*) true;;
|
| 59 | *) false;;
|
| 60 | esac
|
| 61 |
|
| 62 | |
| 63 | cat > "$manifest" <<EOF
|
| 64 | (specifications->manifest (list "[email protected]"))
|
| 65 | EOF
|
| 66 | default_IFS="$IFS"
|
| 67 | IFS=_
|
| 68 | for spec in "guile" \
|
| 69 | "[email protected]" \
|
| 70 | "-e_(@ (gnu packages guile) guile-3.0)" \
|
| 71 | "-m_$manifest" \
|
| 72 | "-r_guile" \
|
| 73 | "-s_core"
|
| 74 | do
|
| 75 | guix refresh -t test $spec
|
| 76 | case "$(guix refresh -t test $spec 2>&1)" in
|
| 77 | *"would be upgraded"*"12.5"*)
|
| 78 | true;;
|
| 79 | *)
|
| 80 | false;;
|
| 81 | esac
|
| 82 | done
|
| 83 | IFS="$default_IFS"
|
| 84 |
|
| 85 | |
| 86 | mkdir "$module_dir"
|
| 87 | echo hello > "$module_dir/source"
|
| 88 | cat > "$module_dir/sample.scm"<<EOF
|
| 89 | (define-module (sample)
|
| 90 | #:use-module (guix packages)
|
| 91 | #:use-module (guix download)
|
| 92 | #:use-module (gnu packages base))
|
| 93 |
|
| 94 | (define-public my-thing
|
| 95 | (package
|
| 96 | (inherit hello)
|
| 97 | (name "the-test-package")
|
| 98 | (version "4.3")
|
| 99 | (source (origin
|
| 100 | (method url-fetch)
|
| 101 | (uri (string-append "mirror://gnu/hello/hello-" version
|
| 102 | ".tar.gz"))
|
| 103 | (sha256
|
| 104 | (base32
|
| 105 | "086vqwk2wl8zfs47sq2xpjc9k066ilmb8z6dn0q6ymwjzlm196cd"))))
|
| 106 | (inputs (list coreutils tar))
|
| 107 | (properties '((updater-ignored-inputs . ("libreoffice"))))))
|
| 108 | EOF
|
| 109 | guix refresh -t test -L "$module_dir" the-test-package
|
| 110 | guix refresh -t test -L "$module_dir" the-test-package -u \
|
| 111 | --keyring="$module_dir/keyring.kbx" |
| 112 | grep 'version "5.5"' "$module_dir/sample.scm"
|
| 113 | grep "$(guix hash -H sha256 -f nix-base32 "$module_dir/source")" "$module_dir/sample.scm"
|
| 114 | grep '(inputs (list grep sed))' "$module_dir/sample.scm"
|
| 115 |
|
| 116 | |
| 117 | guix refresh -t test guile=2.0.0 |
| 118 | case "$(guix refresh -t test guile=2.0.0 2>&1)" in
|
| 119 | *"failed to find"*"2.0.0"*) true;;
|
| 120 | *) false;;
|
| 121 | esac
|
| 122 |
|
| 123 | guix refresh -t test guile --target-version=2.0.0 |
| 124 | case "$(guix refresh -t test guile --target-version=2.0.0 2>&1)" in
|
| 125 | *"failed to find"*"2.0.0"*) true;;
|
| 126 | *) false;;
|
| 127 | esac
|
| 128 |
|
| 129 | guix refresh -t test guile=~2.0.0 |
| 130 | case "$(guix refresh -t test guile=~2.0.0 2>&1)" in
|
| 131 | *"failed to find"*"2.0.0"*) true;;
|
| 132 | *) false;;
|
| 133 | esac
|
| 134 |
|
| 135 | |
| 136 | case "$(guix refresh -t test guile --target-version=3 2>&1)" in
|
| 137 | *"would be upgraded"*"3.13.3"*) true;;
|
| 138 | *) false;;
|
| 139 | esac
|
| 140 |
|
| 141 | |
| 142 | case "$(guix refresh -t test guile=~3 2>&1)" in
|
| 143 | *"would be upgraded"*"3.13.3"*) true;;
|
| 144 | *) false;;
|
| 145 | esac
|
| 146 |
|
| 147 | |
| 148 | case "$(guix refresh -t test guile=~3 2>&1)" in
|
| 149 | *"would be upgraded"*"3.13.3"*) true;;
|
| 150 | *) false;;
|
| 151 | esac
|
| 152 |
|
| 153 | for spec in "guile=1.6.4" "guile@3=1.6.4"
|
| 154 | do
|
| 155 | guix refresh -t test "$spec"
|
| 156 | case "$(guix refresh -t test "$spec" 2>&1)" in
|
| 157 | *"would be downgraded"*"1.6.4"*) true;;
|
| 158 | *) false;;
|
| 159 | esac
|
| 160 | done
|
| 161 |
|
| 162 | |
| 163 | guix refresh --list-updaters
|