Merge pull request #151363 from Stunkymonkey/doc-updateWalker

authored by Sandro and committed by GitHub 27cccd4e c2f5452f

+5 -967
-4
doc/stdenv/meta.chapter.md
··· 192 192 193 193 If set to `true`, the package is marked as "broken", meaning that it won’t show up in `nix-env -qa`, and cannot be built or installed. Such packages should be removed from Nixpkgs eventually unless they are fixed. 194 194 195 - ### `updateWalker` {#var-meta-updateWalker} 196 - 197 - If set to `true`, the package is tested to be updated correctly by the `update-walker.sh` script without additional settings. Such packages have `meta.version` set and their homepage (or the page specified by `meta.downloadPage`) contains a direct link to the package tarball. 198 - 199 195 ## Licenses {#sec-meta-license} 200 196 201 197 The `meta.license` attribute should preferably contain a value from `lib.licenses` defined in [`nixpkgs/lib/licenses.nix`](https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix), or in-place license description of the same format if the license is unlikely to be useful in another expression.
-3
pkgs/applications/graphics/qiv/default.upstream
··· 1 - url http://spiegl.de/qiv/download/ 2 - version_link '[.]tgz$' 3 - do_overwrite() { do_overwrite_just_version; }
-7
pkgs/applications/misc/mupdf/default.upstream
··· 1 - url https://mupdf.com/downloads/archive/ 2 - do_overwrite(){ 3 - ensure_hash 4 - ensure_version 5 - set_var_value version $CURRENT_VERSION 6 - set_var_value sha256 $CURRENT_HASH 7 - }
-1
pkgs/applications/misc/vifm/default.nix
··· 38 38 license = licenses.gpl2; 39 39 downloadPage = "https://vifm.info/downloads.shtml"; 40 40 homepage = "https://vifm.info/"; 41 - updateWalker = true; 42 41 changelog = "https://github.com/vifm/vifm/blob/v${version}/ChangeLog"; 43 42 }; 44 43 }
-1
pkgs/applications/networking/instant-messengers/gajim/default.nix
··· 87 87 license = lib.licenses.gpl3Plus; 88 88 maintainers = with lib.maintainers; [ raskin abbradar ]; 89 89 downloadPage = "http://gajim.org/downloads.php"; 90 - updateWalker = true; 91 90 platforms = lib.platforms.linux; 92 91 }; 93 92 }
-2
pkgs/applications/networking/instant-messengers/mcabber/default.nix
··· 38 38 license = licenses.gpl2; 39 39 maintainers = with maintainers; [ pSub ]; 40 40 platforms = with platforms; linux; 41 - updateWalker = true; 42 41 downloadPage = "http://mcabber.com/files/"; 43 - downloadURLRegexp = "mcabber-[0-9.]+[.]tar[.][a-z0-9]+$"; 44 42 }; 45 43 }
-6
pkgs/applications/science/logic/leo2/default.upstream
··· 1 - url http://page.mi.fu-berlin.de/cbenzmueller/leo/download.html 2 - version_link '[.]tgz' 3 - version '.*_v([0-9.]+)[.][a-z0-9]+$' '\1' 4 - do_overwrite () { 5 - do_overwrite_just_version 6 - }
-6
pkgs/applications/science/logic/potassco/clingo.upstream
··· 1 - target clingo.nix 2 - attribute_name clingo 3 - url https://github.com/potassco/clingo/releases/ 4 - ensure_choice 5 - version '.*/v([0-9.]+)[.]tar[.].*' '\1' 6 - minimize_overwrite
-1
pkgs/applications/science/logic/satallax/default.nix
··· 66 66 platforms = lib.platforms.linux; 67 67 downloadPage = "http://www.ps.uni-saarland.de/~cebrown/satallax/downloads.php"; 68 68 homepage = "http://www.ps.uni-saarland.de/~cebrown/satallax/index.php"; 69 - updateWalker = true; 70 69 }; 71 70 }
-1
pkgs/applications/science/math/pari/default.nix
··· 82 82 license = licenses.gpl2Plus; 83 83 maintainers = with maintainers; [ ertes AndersonTorres ] ++ teams.sage.members; 84 84 platforms = platforms.linux ++ platforms.darwin; 85 - updateWalker = true; 86 85 }; 87 86 }
-1
pkgs/applications/science/math/ratpoints/default.nix
··· 31 31 maintainers = [lib.maintainers.raskin]; 32 32 platforms = lib.platforms.unix; 33 33 homepage = "http://www.mathe2.uni-bayreuth.de/stoll/programs/"; 34 - updateWalker = true; 35 34 }; 36 35 }
-5
pkgs/applications/science/misc/golly/default.upstream
··· 1 - url https://sourceforge.net/projects/golly/files/golly/ 2 - version_link '[-][0-9.]+/$' 3 - SF_version_tarball 'src' 4 - SF_redirect 5 - minimize_overwrite
-1
pkgs/applications/version-management/mercurial/default.nix
··· 92 92 downloadPage = "https://www.mercurial-scm.org/release/"; 93 93 license = licenses.gpl2Plus; 94 94 maintainers = with maintainers; [ eelco lukegb pacien ]; 95 - updateWalker = true; 96 95 platforms = platforms.unix; 97 96 }; 98 97 };
-8
pkgs/applications/version-management/monotone/default.upstream
··· 1 - url http://www.monotone.ca/downloads.php 2 - 3 - do_overwrite(){ 4 - ensure_version 5 - ensure_hash 6 - set_var_value version $CURRENT_VERSION 7 - set_var_value sha256 $CURRENT_HASH 8 - }
-19
pkgs/build-support/upstream-updater/attrset-to-dir.nix
··· 1 - a : 2 - a.stdenv.mkDerivation { 3 - buildCommand = '' 4 - mkdir -p "$out/attributes" 5 - '' + (a.lib.concatStrings (map 6 - (n: '' 7 - ln -s "${a.writeTextFile {name=n; text=builtins.getAttr n a.theAttrSet;}}" $out/attributes/${n}; 8 - '') 9 - (builtins.attrNames a.theAttrSet) 10 - )); 11 - 12 - name = "attribute-set"; 13 - meta = { 14 - description = "Contents of an attribute set"; 15 - maintainers = [ 16 - a.lib.maintainers.raskin 17 - ]; 18 - }; 19 - }
-24
pkgs/build-support/upstream-updater/create-src-info-git.sh
··· 1 - #! /bin/sh 2 - 3 - [ -z "$1" ] && { 4 - echo "Use $0 expression-basename repo-url branch-name package-base-name" 5 - echo "Like:" 6 - echo "$0 default http://git.example.com/repo origin/master hello" 7 - exit 1; 8 - } >&2 9 - 10 - own_dir="$(cd "$(dirname "$0")"; sh -c pwd)" 11 - 12 - cp "$own_dir/../builder-defs/template-bdp-uud.nix" "$1.nix" 13 - sed -e "s@src-for-default.nix@src-for-$1.nix@g; 14 - s@fetchUrlFromSrcInfo@fetchGitFromSrcInfo@g" -i "$1.nix" 15 - echo '{}' > "src-for-$1.nix" 16 - cat << EOF > src-info-for-$1.nix 17 - { 18 - repoUrl = "$2"; 19 - rev = "$3"; 20 - baseName = "$4"; 21 - method = "fetchgit"; 22 - } 23 - EOF 24 -
-20
pkgs/build-support/upstream-updater/create-src-info.sh
··· 1 - #! /bin/sh 2 - 3 - [ -z "$1" ] && { 4 - echo "Use $0 expression-basename download-page package-base-name" 5 - echo "Like:" 6 - echo "$0 default http://example.com/downloads hello" 7 - exit 1; 8 - } >&2 9 - 10 - own_dir="$(cd "$(dirname "$0")"; sh -c pwd)" 11 - 12 - cp "$own_dir/../builder-defs/template-auto-callable.nix" "$1.nix" 13 - sed -e "s@src-for-default.nix@src-for-$1.nix@g" -i "$1.nix" 14 - echo '{}' > "src-for-$1.nix" 15 - cat << EOF > src-info-for-$1.nix 16 - { 17 - downloadPage = "$2"; 18 - baseName = "$3"; 19 - } 20 - EOF
-29
pkgs/build-support/upstream-updater/design.txt
··· 1 - Next to file.nix we get src-for-file.nix 2 - src-for-file.nix should evaluate to a flat attribute set with 3 - string values. 4 - It is supposed to be imported in the main expression. 5 - In the ideal world it can export url, hash, version. 6 - 7 - src-for-file.nix generation is directed by 8 - src-info-for-file.nix. 9 - 10 - Attributes: 11 - 12 - src-info-for-file.nix: 13 - 14 - downloadPage 15 - rev (for repos) 16 - baseName (default = unnamed-package) 17 - sourceRegexp (default = '.*[.]tar[.].*') 18 - choiceCommand (default = 'head -1') 19 - versionExtractorSedScript (default = 's/.*-([0-9.]+)[.].*/\1/') 20 - versionReferenceCreator (default = 's/-([0-9.]+)[.]/-${version}./') 21 - mirrorSedScript (default = none) 22 - 23 - src-for-file.nix: 24 - 25 - advertisedUrl (its match is the check for update presence) 26 - url 27 - hash 28 - version 29 - name
-14
pkgs/build-support/upstream-updater/snippets.sh
··· 1 - # sed scripts 2 - 3 - #http://sourceforge.net/projects/webdruid/files/webdruid/0.6.0-alpha5/webdruid-0.6.0-alpha5.tar.gz/download 4 - #http://downloads.sourceforge.net/webdruid/files/webdruid/0.6.0-alpha5/webdruid-0.6.0-alpha5.tar.gz 5 - skipRedirectSF='s@sourceforge.net/projects@downloads.sourceforge.net/project@; s@/files@@; s@/download$@@;' 6 - extractReleaseSF='s@.*/([^/]+)/[^/]+@\1@' 7 - extractVersionSF='s@.*/[^/0-9]*([0-9].*)[.](tar|tgz|tbz2|zip).*@\1@' 8 - apacheMirror='s@http://www.apache.org/dist/@mirror://apache/@' 9 - skipRedirectApache='s@/dyn/closer.cgi[?]path=@/dist@' 10 - 11 - replaceAllVersionOccurences() { 12 - echo s/"$version"/\${version}/g 13 - } 14 - dashDelimitedVersion='s/.*-([0-9.]+)-.*/\1/'
-13
pkgs/build-support/upstream-updater/test-case.nix
··· 1 - { 2 - a=1; 3 - b="text"; 4 - c='' 5 - text 6 - ''; 7 - d='' 8 - Multi-line text with special characters - 9 - like \ (backslash) and ''${} (dollar + 10 - curly braces) and $ (dollar) and ' (quote) 11 - and " (double quote). 12 - ''; 13 - }
-182
pkgs/build-support/upstream-updater/update-upstream-data.sh
··· 1 - #! /bin/sh 2 - 3 - set -x 4 - 5 - own_dir="$(cd "$(dirname "$0")"; sh -c pwd)" 6 - 7 - source "$own_dir/snippets.sh" 8 - 9 - [ -z "$1" ] && { 10 - echo "Specify main expression filename." 11 - exit 1; 12 - } 13 - 14 - main_file="$1" 15 - main_dir="$(cd "$(dirname "$main_file")" ; sh -c pwd)" 16 - file_name="$(basename "$main_file")" 17 - defs_file="$main_dir"/src-info-for-"$file_name" 18 - src_file="$main_dir"/src-for-"$file_name" 19 - # OK, [vcs] revert is always possible 20 - new_src_file="$main_dir"/src-for-"$file_name" 21 - 22 - forcedUrl="$2" 23 - 24 - defs_dir="$("$own_dir"/attrset-to-dir.sh "$defs_file")" 25 - src_defs_dir="$("$own_dir"/attrset-to-dir.sh "$src_file")" 26 - 27 - getAttr () { 28 - file="$defs_dir"/"$1" 29 - data="$( ( [ -f "$file" ] && cat "$file" ) || echo "$2" )" 30 - echo "attribute $1 obtained as: [[$data]]" >&2 31 - echo "$data" 32 - } 33 - 34 - method="$(getAttr method fetchurl)" 35 - baseName="$(getAttr baseName 'unnamed-package')" 36 - commonPrefetchVars=" version name hash" 37 - 38 - prefetchClause="" 39 - [ fetchSFdirs = "$method" ] && { 40 - if [ -z "$forcedUrl" ]; then 41 - freshUrl="$("$own_dir"/urls-from-page.sh "$(getAttr downloadPage)" | 42 - eval "egrep '$(getAttr sourceRegexp '[-][0-9.]+/$')'" | 43 - eval "egrep -v '$(getAttr blacklistRegexp '^$')'" | 44 - eval "$(getAttr choiceCommand 'head -n 1')" | 45 - eval "$(getAttr versionToFileCommand "sed -re 's@/([^/]*-[0-9.]+)/@/\1/\1$(getAttr fileSuffix .tar.gz)@'")" 46 - )" 47 - 48 - if ! egrep ':' <<< "$freshUrl" ; then 49 - freshUrl="$(dirname "$(getAttr downloadPage).")/$freshUrl" 50 - fi 51 - 52 - echo "Found download link: $freshUrl" >&2 53 - else 54 - freshUrl="$forcedUrl" 55 - fi 56 - 57 - freshUrl="$(echo "$freshUrl" | sed -re "$skipRedirectSF")" 58 - echo "Sourceforge-corrected URL: $freshUrl" >&2 59 - 60 - version="$(echo "$freshUrl" | 61 - sed -re "$(getAttr versionExtractorSedScript "$extractVersionSF")")" 62 - baseName="$(getAttr baseName "$(echo "$freshUrl" | sed -re 's@.*/project/([^/]+)/.*@\1@')")" 63 - url="$freshUrl" 64 - name="$baseName-$version" 65 - advertisedUrl="$freshUrl" 66 - 67 - if [ x"$freshUrl" = x"$(cat "$src_defs_dir"/advertisedUrl)" ]; then 68 - echo "Source link not changed" >&2 69 - exit 70 - fi 71 - hash=$(nix-prefetch-url "$freshUrl") 72 - 73 - prefetchVars="url advertisedUrl"; 74 - } 75 - [ fetchSF = "$method" ] && { 76 - if [ -z "$forcedUrl" ]; then 77 - freshUrl="$("$own_dir"/urls-from-page.sh "$(getAttr downloadPage)" | 78 - eval "egrep \"$(getAttr sourceRegexp '.*[.]tar[.].*|.*[.]tgz$|.*[.]tbz2$')\"" | 79 - eval "egrep -v \"$(getAttr blacklistRegexp '^$')\"" | 80 - eval "$(getAttr choiceCommand 'head -1')")" 81 - 82 - if ! egrep ':' <<< "$freshUrl" ; then 83 - freshUrl="$(dirname "$(getAttr downloadPage).")/$freshUrl" 84 - fi 85 - 86 - echo "Found download link: $freshUrl" >&2 87 - else 88 - freshUrl="$forcedUrl" 89 - fi 90 - 91 - freshUrl="$(echo "$freshUrl" | sed -re "$skipRedirectSF")" 92 - echo "Sourceforge-corrected URL: $freshUrl" >&2 93 - 94 - version="$(echo "$freshUrl" | 95 - sed -re "$(getAttr versionExtractorSedScript "$extractVersionSF")")" 96 - baseName="$(getAttr baseName "$(echo "$freshUrl" | sed -re 's@.*/project/([^/]+)/.*@\1@')")" 97 - url="$freshUrl" 98 - name="$baseName-$version" 99 - advertisedUrl="$freshUrl" 100 - 101 - if [ x"$freshUrl" = x"$(cat "$src_defs_dir"/advertisedUrl)" ]; then 102 - echo "Source link not changed" >&2 103 - exit 104 - fi 105 - hash=$(nix-prefetch-url "$freshUrl") 106 - 107 - prefetchVars="url advertisedUrl"; 108 - } 109 - [ fetchurl = "$method" ] && { 110 - if [ -z "$forcedUrl" ] ; then 111 - freshUrl="$("$own_dir"/urls-from-page.sh "$(getAttr downloadPage)" | 112 - eval "egrep \"$(getAttr sourceRegexp '.*[.]tar[.].*|.*[.]tgz$|.*[.]tbz2$')\"" | 113 - eval "egrep -v \"$(getAttr blacklistRegexp '^$')\"" | 114 - eval "$(getAttr choiceCommand 'head -1')")" 115 - 116 - if ! egrep ':' <<< "$freshUrl" ; then 117 - freshUrl="$(dirname "$(getAttr downloadPage).")/$freshUrl" 118 - fi 119 - 120 - echo "Found download link: $freshUrl" >&2 121 - else 122 - freshUrl="$forcedUrl" 123 - fi 124 - 125 - version="$(echo "$freshUrl" | 126 - eval "sed -re \"$(getAttr versionExtractorSedScript \ 127 - 's/.*-([0-9.]+)[.].*/\1/')\"")" 128 - 129 - mirrorUrl="$(echo "$freshUrl" | 130 - eval "sed -r -e \"$(getAttr versionReferenceCreator \ 131 - 's/-'"${version}"'[.]/-\${version}./')\"" | 132 - eval "sed -r -e \"$(getAttr mirrorSedScript)\"")" 133 - url="$mirrorUrl" 134 - 135 - name="$baseName-$version" 136 - 137 - advertisedUrl="$freshUrl" 138 - url="$mirrorUrl" 139 - 140 - if [ x"$freshUrl" = x"$(cat "$src_defs_dir"/advertisedUrl)" ]; then 141 - echo "Source link not changed" >&2 142 - exit 143 - fi 144 - hash=$(nix-prefetch-url "$freshUrl") 145 - 146 - prefetchVars="url advertisedUrl"; 147 - } 148 - [ "fetchgit" = "$method" ] && { 149 - repoUrl="$(getAttr repoUrl)" 150 - export NIX_PREFETCH_GIT_CHECKOUT_HOOK=" 151 - cat .git/HEAD 152 - " 153 - export NIX_HASH_ALGO=sha256 154 - rev="$(getAttr rev '')"; 155 - rev_and_hash="$("$own_dir"/../fetchgit/nix-prefetch-git "$repoUrl" "$rev" | tee /dev/stderr | tail -2)" 156 - 157 - rev="$(echo "$rev_and_hash" | head -1)" 158 - url="$repoUrl"; 159 - hash="$(echo "$rev_and_hash" | tail -1)" 160 - version="$rev" 161 - name="$baseName-$version" 162 - 163 - prefetchVars="rev url"; 164 - } 165 - 166 - prefetchAssignments=""; 167 - for i in $commonPrefetchVars $prefetchVars; do 168 - prefetchAssignments="$prefetchAssignments $i=\"$(eval echo \"\$$i\")\";$(echo -e '\n ')" 169 - done; 170 - 171 - extraAssignments="" 172 - for i in $(getAttr extraVars ''); do 173 - eval "$(getAttr "eval_$i" 'i=""')" 174 - extraAssignments="$extraAssignments $i=\"$(eval echo \"\$$i\")\";$(echo -e '\n ')" 175 - done 176 - 177 - cat << EOF > "$new_src_file" 178 - rec { 179 - $prefetchAssignments 180 - $extraAssignments 181 - } 182 - EOF
-20
pkgs/build-support/upstream-updater/update-walker-service-specific.sh
··· 1 - SF_redirect () { 2 - redirect 99 3 - process 'http://[a-z]+[.]dl[.]sourceforge[.]net/' 'mirror://sourceforge/' 4 - process '[?].*' '' 5 - } 6 - 7 - SF_version_dir () { 8 - version_link 'http://sourceforge.net/.+/'"$1"'[0-9.]+/$' 9 - } 10 - 11 - SF_version_tarball () { 12 - version_link "${1:-[.]tar[.]}.*/download\$" 13 - } 14 - 15 - GH_latest () { 16 - prefetch_command_rel ../fetchgit/nix-prefetch-git 17 - revision "$("$(dirname "$0")/urls-from-page.sh" "$CURRENT_URL/commits" | grep /commit/ | head -n 1 | xargs basename )" 18 - version '.*' "git-$(date +%Y-%m-%d)" 19 - NEED_TO_CHOOSE_URL= 20 - }
-320
pkgs/build-support/upstream-updater/update-walker.sh
··· 1 - #! /bin/sh 2 - 3 - own_dir="$(cd "$(dirname "$0")"; pwd)" 4 - 5 - URL_WAS_SET= 6 - DL_URL_RE= 7 - CURRENT_URL= 8 - CURRENT_REV= 9 - PREFETCH_COMMAND= 10 - NEED_TO_CHOOSE_URL=1 11 - 12 - url () { 13 - URL_WAS_SET=1 14 - CURRENT_URL="$1" 15 - } 16 - 17 - dl_url_re () { 18 - DL_URL_RE="$1" 19 - } 20 - 21 - version_unpack () { 22 - sed -re ' 23 - s/[.]/ /g; 24 - s@/@ / @g 25 - s/-(rc|pre)/ -1 \1 /g; 26 - s/-(gamma)/ -2 \1 /g; 27 - s/-(beta)/ -3 \1 /g; 28 - s/-(alpha)/ -4 \1 /g; 29 - s/[-]/ - /g; 30 - ' 31 - } 32 - 33 - version_repack () { 34 - sed -re ' 35 - s/ - /-/g; 36 - s/ -[0-9]+ ([a-z]+) /-\1/g; 37 - s@ / @/@g 38 - s/ /./g; 39 - ' 40 - } 41 - 42 - version_sort () { 43 - version_unpack | 44 - sort -t ' ' -n $(for i in $(seq 30); do echo " -k${i}n" ; done) | tac | 45 - version_repack 46 - } 47 - 48 - position_choice () { 49 - head -n "${1:-1}" | tail -n "${2:-1}" 50 - } 51 - 52 - matching_links () { 53 - "$own_dir"/urls-from-page.sh "$CURRENT_URL" | grep -E "$1" 54 - } 55 - 56 - link () { 57 - CURRENT_URL="$(matching_links "$1" | position_choice "$2" "$3")" 58 - unset NEED_TO_CHOOSE_URL 59 - echo "Linked by: $*" 60 - echo "URL: $CURRENT_URL" >&2 61 - } 62 - 63 - version_link () { 64 - CURRENT_URL="$(matching_links "$1" | version_sort | position_choice "$2" "$3")" 65 - unset NEED_TO_CHOOSE_URL 66 - echo "Linked version by: $*" 67 - echo "URL: $CURRENT_URL" >&2 68 - } 69 - 70 - redirect () { 71 - CURRENT_URL="$(curl -I -L --max-redirs "${1:-99}" "$CURRENT_URL" | 72 - grep -E '^[Ll]ocation: ' | position_choice "${2:-999999}" "$3" | 73 - sed -e 's/^[Ll]ocation: //; s/\r//')" 74 - echo "Redirected: $*" 75 - echo "URL: $CURRENT_URL" >&2 76 - } 77 - 78 - replace () { 79 - sed -re "s $1 $2 g" 80 - } 81 - 82 - process () { 83 - CURRENT_URL="$(echo "$CURRENT_URL" | replace "$1" "$2")" 84 - echo "Processed: $*" 85 - echo "URL: $CURRENT_URL" >&2 86 - } 87 - 88 - version () { 89 - CURRENT_VERSION="$(echo "$CURRENT_URL" | replace "$1" "$2")" 90 - echo "Version: $CURRENT_VERSION" >&2 91 - } 92 - 93 - ensure_version () { 94 - echo "Ensuring version. CURRENT_VERSION: $CURRENT_VERSION" >&2 95 - [ -z "$CURRENT_VERSION" ] && version '.*-([0-9.]+)[-._].*' '\1' 96 - } 97 - 98 - ensure_target () { 99 - echo "Ensuring target. CURRENT_TARGET: $CURRENT_TARGET" >&2 100 - [ -z "$CURRENT_TARGET" ] && target "$(basename "$CONFIG_NAME" .upstream).nix" 101 - } 102 - 103 - ensure_name () { 104 - echo "Ensuring name. CURRENT_NAME: $CURRENT_NAME" >&2 105 - [ -z "$CURRENT_NAME" ] && name "$(basename "$CONFIG_DIR")" 106 - echo "Resulting name: $CURRENT_NAME" 107 - } 108 - 109 - ensure_attribute_name () { 110 - echo "Ensuring attribute name. CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2 111 - ensure_name 112 - [ -z "$CURRENT_ATTRIBUTE_NAME" ] && attribute_name "$CURRENT_NAME" 113 - echo "Resulting attribute name: $CURRENT_ATTRIBUTE_NAME" 114 - } 115 - 116 - ensure_url () { 117 - echo "Ensuring starting URL. CURRENT_URL: $CURRENT_URL" >&2 118 - ensure_attribute_name 119 - [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadPage)" 120 - [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta downloadpage)" 121 - [ -z "$CURRENT_URL" ] && CURRENT_URL="$(retrieve_meta homepage)" 122 - echo "Resulting URL: $CURRENT_URL" 123 - } 124 - 125 - ensure_choice () { 126 - echo "Ensuring that choice is made." >&2 127 - echo "NEED_TO_CHOOSE_URL: [$NEED_TO_CHOOSE_URL]." >&2 128 - echo "CURRENT_URL: $CURRENT_URL" >&2 129 - [ -z "$URL_WAS_SET" ] && [ -z "$CURRENT_URL" ] && ensure_url 130 - [ -n "$NEED_TO_CHOOSE_URL" ] && { 131 - version_link "${DL_URL_RE:-[.]tar[.]([^./])+\$}" 132 - unset NEED_TO_CHOOSE_URL 133 - } 134 - [ -z "$CURRENT_URL" ] && { 135 - echo "Error: empty CURRENT_URL" 136 - echo "Error: empty CURRENT_URL" >&2 137 - exit 1 138 - } 139 - } 140 - 141 - revision () { 142 - CURRENT_REV="$1" 143 - echo "CURRENT_REV: $CURRENT_REV" 144 - } 145 - 146 - prefetch_command () { 147 - PREFETCH_COMMAND="$1" 148 - } 149 - 150 - prefetch_command_rel () { 151 - PREFETCH_COMMAND="$(dirname "$0")/$1" 152 - } 153 - 154 - ensure_hash () { 155 - echo "Ensuring hash. CURRENT_HASH: $CURRENT_HASH" >&2 156 - [ -z "$CURRENT_HASH" ] && hash 157 - } 158 - 159 - hash () { 160 - CURRENT_HASH="$(${PREFETCH_COMMAND:-nix-prefetch-url} "$CURRENT_URL" $CURRENT_REV)" 161 - echo "CURRENT_HASH: $CURRENT_HASH" >&2 162 - } 163 - 164 - name () { 165 - CURRENT_NAME="$1" 166 - echo "CURRENT_NAME: $CURRENT_NAME" >&2 167 - } 168 - 169 - attribute_name () { 170 - CURRENT_ATTRIBUTE_NAME="$1" 171 - echo "CURRENT_ATTRIBUTE_NAME: $CURRENT_ATTRIBUTE_NAME" >&2 172 - } 173 - 174 - retrieve_meta () { 175 - nix-instantiate --eval-only '<nixpkgs>' -A "$CURRENT_ATTRIBUTE_NAME".meta."$1" | xargs 176 - } 177 - 178 - retrieve_version () { 179 - PACKAGED_VERSION="$(retrieve_meta version)" 180 - } 181 - 182 - ensure_dl_url_re () { 183 - echo "Ensuring DL_URL_RE. DL_URL_RE: $DL_URL_RE" >&2 184 - [ -z "$DL_URL_RE" ] && dl_url_re "$(retrieve_meta downloadURLRegexp)" 185 - echo "DL_URL_RE: $DL_URL_RE" >&2 186 - } 187 - 188 - directory_of () { 189 - cd "$(dirname "$1")"; pwd 190 - } 191 - 192 - full_path () { 193 - echo "$(directory_of "$1")/$(basename "$1")" 194 - } 195 - 196 - target () { 197 - CURRENT_TARGET="$1" 198 - { [ "$CURRENT_TARGET" = "${CURRENT_TARGET#/}" ] && CURRENT_TARGET="$CONFIG_DIR/$CURRENT_TARGET"; } 199 - echo "Target set to: $CURRENT_TARGET" 200 - } 201 - 202 - marker () { 203 - BEGIN_EXPRESSION="$1" 204 - } 205 - 206 - update_found () { 207 - echo "Compare: $CURRENT_VERSION vs $PACKAGED_VERSION" 208 - [ "$CURRENT_VERSION" != "$PACKAGED_VERSION" ] 209 - } 210 - 211 - do_write_expression () { 212 - echo "${1}rec {" 213 - echo "${1} baseName=\"$CURRENT_NAME\";" 214 - echo "${1} version=\"$CURRENT_VERSION\";" 215 - echo "${1} name=\"\${baseName}-\${version}\";" 216 - echo "${1} hash=\"$CURRENT_HASH\";" 217 - echo "${1} url=\"$CURRENT_URL\";" 218 - [ -n "$CURRENT_REV" ] && echo "${1} rev=\"$CURRENT_REV\";" 219 - echo "${1} sha256=\"$CURRENT_HASH\";" 220 - echo "$2" 221 - } 222 - 223 - line_position () { 224 - file="$1" 225 - regexp="$2" 226 - count="${3:-1}" 227 - grep -E "$regexp" -m "$count" -B 999999 "$file" | wc -l 228 - } 229 - 230 - replace_once () { 231 - file="$1" 232 - regexp="$2" 233 - replacement="$3" 234 - instance="${4:-1}" 235 - 236 - echo "Replacing once:" 237 - echo "file: [[$file]]" 238 - echo "regexp: [[$regexp]]" 239 - echo "replacement: [[$replacement]]" 240 - echo "instance: [[$instance]]" 241 - 242 - position="$(line_position "$file" "$regexp" "$instance")" 243 - sed -re "${position}s $regexp $replacement " -i "$file" 244 - } 245 - 246 - set_var_value () { 247 - var="${1}" 248 - value="${2}" 249 - instance="${3:-1}" 250 - file="${4:-$CURRENT_TARGET}" 251 - no_quotes="${5:-0}" 252 - 253 - quote='"' 254 - let "$no_quotes" && quote="" 255 - 256 - replace_once "$file" "${var} *= *.*" "${var} = ${quote}${value}${quote};" "$instance" 257 - } 258 - 259 - do_regenerate () { 260 - BEFORE="$(cat "$1" | grep -F "$BEGIN_EXPRESSION" -B 999999;)" 261 - AFTER_EXPANDED="$(cat "$1" | grep -F "$BEGIN_EXPRESSION" -A 999999 | grep -E '^ *[}] *; *$' -A 999999;)" 262 - AFTER="$(echo "$AFTER_EXPANDED" | tail -n +2)" 263 - CLOSE_BRACE="$(echo "$AFTER_EXPANDED" | head -n 1)" 264 - SPACING="$(echo "$CLOSE_BRACE" | sed -re 's/[^ ].*//')" 265 - 266 - echo "$BEFORE" 267 - do_write_expression "$SPACING" "$CLOSE_BRACE" 268 - echo "$AFTER" 269 - } 270 - 271 - do_overwrite () { 272 - ensure_hash 273 - do_regenerate "$1" > "$1.new.tmp" 274 - mv "$1.new.tmp" "$1" 275 - } 276 - 277 - do_overwrite_just_version () { 278 - ensure_hash 279 - set_var_value version $CURRENT_VERSION 280 - set_var_value sha256 $CURRENT_HASH 281 - } 282 - 283 - minimize_overwrite() { 284 - do_overwrite(){ 285 - do_overwrite_just_version 286 - } 287 - } 288 - 289 - process_config () { 290 - CONFIG_DIR="$(directory_of "$1")" 291 - CONFIG_NAME="$(basename "$1")" 292 - BEGIN_EXPRESSION='# Generated upstream information'; 293 - if [ -f "$CONFIG_DIR/$CONFIG_NAME" ] && 294 - [ "${CONFIG_NAME}" = "${CONFIG_NAME%.nix}" ]; then 295 - source "$CONFIG_DIR/$CONFIG_NAME" 296 - else 297 - CONFIG_NAME="${CONFIG_NAME%.nix}" 298 - ensure_attribute_name 299 - [ -n "$(retrieve_meta updateWalker)" ] || 300 - [ -n "$FORCE_UPDATE_WALKER" ] || { 301 - echo "Error: package not marked as safe for update-walker" >&2 302 - echo "Set FORCE_UPDATE_WALKER=1 to override" >&2 303 - exit 1; 304 - } 305 - [ -z "$(retrieve_meta fullRegenerate)" ] && eval " 306 - minimize_overwrite 307 - " 308 - fi 309 - ensure_attribute_name 310 - retrieve_version 311 - ensure_dl_url_re 312 - ensure_choice 313 - ensure_version 314 - ensure_target 315 - update_found && do_overwrite "$CURRENT_TARGET" 316 - } 317 - 318 - source "$own_dir/update-walker-service-specific.sh" 319 - 320 - process_config "$1"
-118
pkgs/build-support/upstream-updater/update-walker.txt
··· 1 - update-walker is an imperative semiautomated update helper. 2 - 3 - It runs the X.upstream file to find the freshest version of the package in 4 - the specified upstream source and updates the corresponding X.nix file. 5 - 6 - 7 - 8 - The simplest available commands: 9 - 10 - url: set the upstream source list URL equal to $1; the default is 11 - meta.downloadPage with meta.homepage fallback 12 - 13 - dl_url_re: set the regular expression used to select download links to $1; the 14 - default is meta.downloadURLRegexp or '[.]tar[.]([^./])+\$' if it is not set 15 - 16 - target: specify target expression; default is to replace .upstream extension 17 - with .nix extension 18 - 19 - name: specify the derivation name; default is the basename of the dirname 20 - of the .upstream file 21 - 22 - attribute_name: specify the attribute name to evaluate for getting the current 23 - version from meta.version; default is to use the derivation name 24 - 25 - minimize_overwrite: set config options that mean that only version= and 26 - sha256= have to be replaced; the default is to regenerate a full upstream 27 - description block with url, name, version, hash etc. 28 - 29 - 30 - 31 - A lot of packages can be updated in a pseudo-declarative style using only 32 - the commands from the previous paragraph. 33 - 34 - Some packages do not need any non-default settings, in these case just setting 35 - meta.updateWalker to true is enough, you can run update-walker directly on the 36 - .nix file afterwards. In this case minimize_overwrite it implied unless 37 - meta.fullRegenerate is set. 38 - 39 - 40 - 41 - The packages that require more fine-grained control than the described options 42 - allow, you need to take into account the default control flow of the tool. 43 - 44 - First, the definitions from update-walker script and additional definitions 45 - from update-walker-service-specific.sh are loaded. Then the config is executed 46 - as a shell script. Some of the commands it can use do remember whether they 47 - have been used. Afterwards the following steps happen: 48 - 49 - attribute_name is set to name unless it has been already set 50 - 51 - meta.version is read from the NixPkgs package called attribute_name 52 - 53 - download URL regexp is set to default unless it has been already set in the 54 - updater script 55 - 56 - the download page URL gets set to default value unless it has been set 57 - previously 58 - 59 - if the action of getting the download page and choosing the freshest link by 60 - version has not yet been taken, it happens 61 - 62 - if the version has not yet been extracted from the URL, it gets extracted 63 - 64 - target nix expression to update gets set to the default value unless it has 65 - been set explicitly 66 - 67 - if the URL version is fresher than the packaged version, the new file gets 68 - downloaded and its hash is calculated 69 - 70 - do_overwrite function is called; the default calculates a big upstream data 71 - block and puts it after the '# Generated upstream information' marker (the 72 - marker can be changed by the command marker) 73 - 74 - 75 - 76 - If the update needs some special logic, it is put into the updater script and 77 - the corresponding steps are skipped because the needed action has already been 78 - performed. 79 - 80 - For example: 81 - 82 - minimize_overwrite is exactly the same as 83 - 84 - do_overwrite() { do_overwrite_just_version; } 85 - 86 - redefinition. You can do a more complex do_overwrite redifinition, if needed. 87 - It can probably use ensure_hash to download the source and calculate the hash 88 - and set_var_value. 89 - 90 - set_var_value alters the $3-th instance of assigning the $1 name in the 91 - expression to the value $2. $3 defaults to 1. It can modify $4 instead of the 92 - current target, it can put the value without quotes if $5 is 1. 93 - 94 - 95 - 96 - Typical steps include: 97 - 98 - ensure_choice: download current URL and find the freshest version link on the 99 - page, it is now the new URL 100 - 101 - ensure_hash: download current URL and calculate the source package hash 102 - 103 - ensure_version: extract version from the URL 104 - 105 - SF_redirect: replace the current URL with a SourceForge.net mirror:// URL 106 - 107 - SF_version_dir: assume SourceForge.net layout and choose the freshest 108 - version-named subdirectory in the file catalog; you can optionally specify $1 109 - as a directory name regexp (digits and periods will be required after it) 110 - 111 - SF_version_tarball: assume SourceForge.net layout and choose the freshest 112 - tarball download link 113 - 114 - version: apply replacement of $1 with $2 (extended regexp format) to extract 115 - the version from URL 116 - 117 - version_link: choose the freshest versioned link, $1 is the regexp of 118 - acceptable links
-6
pkgs/development/compilers/fpc/default.upstream
··· 1 - url https://sourceforge.net/projects/freepascal/files/Source/ 2 - SF_version_dir 3 - version_link 'fpcbuild-[0-9.]+[.]tar[.]gz/download$' 4 - SF_redirect 5 - version '.*-([0-9.]+)[.]tar[.]gz' '\1' 6 - do_overwrite () { do_overwrite_just_version; }
+1 -3
pkgs/development/compilers/sbcl/common.nix
··· 119 119 } 120 120 ''); 121 121 122 - meta = sbclBootstrap.meta // { 123 - updateWalker = true; 124 - }; 122 + meta = sbclBootstrap.meta; 125 123 }
-5
pkgs/development/interpreters/regina/default.upstream
··· 1 - url https://sourceforge.net/projects/regina-rexx/files/regina-rexx/ 2 - SF_version_dir 3 - SF_version_tarball 4 - SF_redirect 5 - minimize_overwrite
-10
pkgs/development/libraries/botan/2.0.upstream
··· 1 - url https://botan.randombit.net/ 2 - version_link 'Botan-[0-9]+([.][0-9]+)*[.](tgz|tbz|tbz2|tar[.]bz2)$' 3 - ensure_version 4 - attribute_name botan2 5 - do_overwrite(){ 6 - ensure_hash 7 - set_var_value sha256 $CURRENT_HASH 8 - set_var_value baseVersion ${CURRENT_VERSION%.*} 9 - set_var_value revision ${CURRENT_VERSION##*.} 10 - }
-9
pkgs/development/libraries/botan/default.upstream
··· 1 - url http://botan.randombit.net/download.html 2 - version_link 'Botan-[0-9]+[.][0-9]*[02468]([.][0-9]+)?[.](tgz|tbz|tbz2|tar[.]bz2)$' 3 - ensure_version 4 - do_overwrite(){ 5 - ensure_hash 6 - set_var_value sha256 $CURRENT_HASH 7 - set_var_value baseVersion ${CURRENT_VERSION%.*} 8 - set_var_value revision ${CURRENT_VERSION##*.} 9 - }
-4
pkgs/development/libraries/eigen/default.upstream
··· 1 - url http://eigen.tuxfamily.org/ 2 - ensure_choice 3 - version '.*/([-0-9.]+)[.]tar[.].*' '\1' 4 - do_overwrite() { do_overwrite_just_version; }
-1
pkgs/development/libraries/flint/default.nix
··· 51 51 platforms = platforms.unix; 52 52 homepage = "https://www.flintlib.org/"; 53 53 downloadPage = "https://www.flintlib.org/downloads.html"; 54 - updateWalker = true; 55 54 }; 56 55 }
-1
pkgs/development/libraries/iml/default.nix
··· 24 24 maintainers = [lib.maintainers.raskin]; 25 25 platforms = lib.platforms.unix; 26 26 homepage = "https://cs.uwaterloo.ca/~astorjoh/iml.html"; 27 - updateWalker = true; 28 27 }; 29 28 }
-1
pkgs/development/libraries/libzmf/default.nix
··· 20 20 platforms = lib.platforms.unix; 21 21 homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libzmf"; 22 22 downloadPage = "http://dev-www.libreoffice.org/src/libzmf/"; 23 - updateWalker = true; 24 23 }; 25 24 }
-2
pkgs/development/libraries/loudmouth/default.nix
··· 22 22 description = "A lightweight C library for the Jabber protocol"; 23 23 platforms = platforms.all; 24 24 downloadPage = "http://mcabber.com/files/loudmouth/"; 25 - downloadURLRegexp = "loudmouth-[0-9.]+[.]tar[.]bz2$"; 26 - updateWalker = true; 27 25 license = licenses.lgpl21; 28 26 }; 29 27 }
-10
pkgs/development/libraries/mdds/default.upstream
··· 1 - url https://gitlab.com/mdds/mdds 2 - version_link 'mdds-.*[.]tar[.][a-z0-9]+$' 3 - version '.*-([0-9.]+)[.]tar[.].*' '\1' 4 - 5 - do_overwrite(){ 6 - ensure_hash 7 - ensure_version 8 - set_var_value version $CURRENT_VERSION 9 - set_var_value sha256 $CURRENT_HASH 10 - }
-1
pkgs/development/libraries/mpir/default.nix
··· 21 21 platforms = lib.platforms.unix; 22 22 downloadPage = "https://mpir.org/downloads.html"; 23 23 homepage = "https://mpir.org/"; 24 - updateWalker = true; 25 24 }; 26 25 }
-3
pkgs/development/libraries/osip/default.upstream
··· 1 - url http://ftp.u-tx.net/gnu/osip/ 2 - attribute_name libosip 3 - minimize_overwrite
-1
pkgs/development/libraries/phash/default.nix
··· 31 31 platforms = platforms.all; 32 32 homepage = "http://www.phash.org"; 33 33 downloadPage = "https://github.com/clearscene/pHash"; 34 - updateWalker = true; 35 34 }; 36 35 }
+4 -13
pkgs/development/libraries/safefile/default.nix
··· 8 8 sha256 = "1y0gikds2nr8jk8smhrl617njk23ymmpxyjb2j1xbj0k82xspv78"; 9 9 }; 10 10 11 - passthru = { 12 - updateScript = '' 13 - #!${runtimeShell} 14 - cd ${toString ./.} 15 - ${toString path}/pkgs/build-support/upstream-updater/update-walker.sh default.nix 16 - ''; 17 - }; 18 - 19 - meta = { 11 + meta = with lib; { 20 12 description = "File open routines to safely open a file when in the presence of an attack"; 21 - license = lib.licenses.asl20 ; 22 - maintainers = [lib.maintainers.raskin]; 23 - platforms = lib.platforms.all; 13 + license = licenses.asl20; 14 + maintainers = with maintainers; [ raskin ]; 15 + platforms = platforms.all; 24 16 homepage = "https://research.cs.wisc.edu/mist/safefile/"; 25 - updateWalker = true; 26 17 }; 27 18 }
-1
pkgs/development/libraries/spandsp/default.nix
··· 29 29 maintainers = with lib.maintainers; [raskin]; 30 30 license = lib.licenses.gpl2; 31 31 downloadPage = "http://www.soft-switch.org/downloads/spandsp/"; 32 - updateWalker = true; 33 32 }; 34 33 }
-1
pkgs/development/libraries/xmlsec/default.nix
··· 73 73 description = "XML Security Library in C based on libxml2"; 74 74 license = lib.licenses.mit; 75 75 platforms = with lib.platforms; linux ++ darwin; 76 - updateWalker = true; 77 76 }; 78 77 } 79 78 )
-1
pkgs/development/tools/jq/default.nix
··· 72 72 maintainers = with maintainers; [ raskin globin ]; 73 73 platforms = platforms.unix; 74 74 downloadPage = "https://stedolan.github.io/jq/download/"; 75 - updateWalker = true; 76 75 }; 77 76 }
-1
pkgs/development/tools/misc/luarocks/3.7.nix
··· 77 77 maintainers = with maintainers; [raskin teto]; 78 78 platforms = platforms.linux ++ platforms.darwin; 79 79 downloadPage = "http://luarocks.org/releases/"; 80 - updateWalker = true; 81 80 }; 82 81 }
-1
pkgs/development/tools/misc/luarocks/default.nix
··· 77 77 maintainers = with maintainers; [raskin teto]; 78 78 platforms = platforms.linux ++ platforms.darwin; 79 79 downloadPage = "http://luarocks.org/releases/"; 80 - updateWalker = true; 81 80 }; 82 81 }
-8
pkgs/games/blobby/default.upstream
··· 1 - url https://sourceforge.net/projects/blobby/files/Blobby%20Volley%202%20%28Linux%29/ 2 - SF_version_dir 3 - version_link '[.]tar[.][^.]+/download$' 4 - SF_redirect 5 - do_overwrite(){ 6 - do_overwrite_just_version 7 - set_var_value url $CURRENT_URL 8 - }
-5
pkgs/games/sgt-puzzles/default.upstream
··· 1 - minimize_overwrite 2 - url http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles.tar.gz 3 - redirect 4 - NEED_TO_CHOOSE_URL= 5 - version '.*[-_.]([0-9]{8}[.][^.]+)[.]tar[.].*' '\1'
-1
pkgs/misc/screensavers/xscreensaver/default.nix
··· 62 62 maintainers = with lib.maintainers; [ raskin ]; 63 63 platforms = lib.platforms.unix; # Once had cygwin problems 64 64 downloadPage = "https://www.jwz.org/xscreensaver/download.html"; 65 - updateWalker = true; 66 65 }; 67 66 }
-4
pkgs/os-specific/linux/atop/default.upstream
··· 1 - url http://atoptool.nl/downloadatop.php 2 - version_link '[.]tar[.]' 3 - version '[^0-9]*[-.]([0-9]([-0-9.]*[0-9])?)[.].*' '\1' 4 - minimize_overwrite
-1
pkgs/os-specific/linux/iptables/default.nix
··· 49 49 maintainers = with maintainers; [ fpletz ]; 50 50 license = licenses.gpl2; 51 51 downloadPage = "https://www.netfilter.org/projects/iptables/files/"; 52 - updateWalker = true; 53 52 }; 54 53 }
-8
pkgs/os-specific/linux/sysdig/default.upstream
··· 1 - url https://github.com/draios/sysdig/releases 2 - ensure_choice 3 - version '.*/([0-9.]+)[.]tar[.].*' '\1' 4 - do_overwrite () { 5 - ensure_hash 6 - set_var_value sha256 $CURRENT_HASH 7 - set_var_value version $CURRENT_VERSION 8 - }
-8
pkgs/servers/http/nginx/mainline.upstream
··· 1 - url http://nginx.org/en/download.html 2 - version_link '.*-([0-9]+[.][0-9]+([.][0-9]+)*)[.]tar[.][a-z0-9]*$' 3 - 4 - do_overwrite() { 5 - ensure_hash 6 - set_var_value version "$CURRENT_VERSION" 7 - set_var_value sha256 "$CURRENT_HASH" 8 - }
-8
pkgs/servers/http/nginx/stable.upstream
··· 1 - url http://nginx.org/en/download.html 2 - version_link '.*-([0-9]+[.][0-9]*[02468]([.][0-9]+)*)[.]tar[.][a-z0-9]*$' 3 - 4 - do_overwrite() { 5 - ensure_hash 6 - set_var_value version "$CURRENT_VERSION" 7 - set_var_value sha256 "$CURRENT_HASH" 8 - }
-2
pkgs/stdenv/generic/check-meta.nix
··· 236 236 name = str; 237 237 version = str; 238 238 tag = str; 239 - updateWalker = bool; 240 239 executables = listOf str; 241 240 outputsToInstall = listOf str; 242 241 position = str; ··· 244 243 repositories = attrsOf str; 245 244 isBuildPythonPackage = platforms; 246 245 schedulingPriority = int; 247 - downloadURLRegexp = str; 248 246 isFcitxEngine = bool; 249 247 isIbusEngine = bool; 250 248 isGutenprint = bool;
-1
pkgs/tools/X11/autocutsel/default.nix
··· 20 20 description = "Tracks changes in the server's cutbuffer and CLIPBOARD selection"; 21 21 license = lib.licenses.gpl2Plus; 22 22 platforms = with lib.platforms; all; 23 - updateWalker = true; 24 23 }; 25 24 }
-1
pkgs/tools/X11/xpra/default.nix
··· 135 135 meta = { 136 136 homepage = "https://xpra.org/"; 137 137 downloadPage = "https://xpra.org/src/"; 138 - downloadURLRegexp = "xpra-.*[.]tar[.][gx]z$"; 139 138 description = "Persistent remote applications for X"; 140 139 platforms = platforms.linux; 141 140 license = licenses.gpl2;
-8
pkgs/tools/compression/lrzip/default.upstream
··· 1 - url http://ck.kolivas.org/apps/lrzip/ 2 - version_link '[.]tar[.]bz2$' 3 - 4 - do_overwrite () { 5 - ensure_hash 6 - set_var_value version "$CURRENT_VERSION" 7 - set_var_value sha256 "$CURRENT_HASH" 8 - }
-1
pkgs/tools/filesystems/nilfs-utils/default.nix
··· 47 47 platforms = platforms.linux; 48 48 license = with licenses; [ gpl2 lgpl21 ]; 49 49 downloadPage = "http://nilfs.sourceforge.net/en/download.html"; 50 - updateWalker = true; 51 50 }; 52 51 }
-1
pkgs/tools/filesystems/smbnetfs/default.nix
··· 17 17 platforms = platforms.linux; 18 18 license = licenses.gpl2; 19 19 downloadPage = "https://sourceforge.net/projects/smbnetfs/files/smbnetfs"; 20 - updateWalker = true; 21 20 homepage = "https://sourceforge.net/projects/smbnetfs/"; 22 21 }; 23 22 }
-6
pkgs/tools/filesystems/smbnetfs/default.upstream
··· 1 - url https://sourceforge.net/projects/smbnetfs/files/smbnetfs/ 2 - version_link '[-][0-9.]+[a-z]*/$' 3 - version_link '[.]tar[.][a-z0-9]+/download$' 4 - SF_redirect 5 - version '.*[-]([0-9.]+[a-z]*)[.]tar[.].*' '\1' 6 - do_overwrite () { do_overwrite_just_version; }
-1
pkgs/tools/graphics/barcode/default.nix
··· 23 23 maintainers = with maintainers; [ raskin ]; 24 24 platforms = platforms.linux; # Maybe other non-darwin Unix 25 25 downloadPage = "https://ftp.gnu.org/gnu/barcode/"; 26 - updateWalker = true; 27 26 homepage = "https://www.gnu.org/software/barcode/"; 28 27 license = licenses.gpl3; 29 28 };
-8
pkgs/tools/graphics/cuneiform/default.upstream
··· 1 - url https://launchpad.net/cuneiform-linux/+download 2 - 3 - do_overwrite () { 4 - ensure_hash 5 - set_var_value version "$CURRENT_VERSION" 6 - set_var_value sha256 "$CURRENT_HASH" 7 - set_var_value ' url' "$CURRENT_URL" 8 - }
-4
pkgs/tools/misc/ised/default.upstream
··· 1 - url http://ised.sourceforge.net/web_nav.html 2 - SF_version_tarball 3 - SF_redirect 4 - minimize_overwrite
-1
pkgs/tools/misc/mc/default.nix
··· 94 94 maintainers = with maintainers; [ sander ]; 95 95 platforms = with platforms; linux ++ darwin; 96 96 repositories.git = "https://github.com/MidnightCommander/mc.git"; 97 - updateWalker = true; 98 97 }; 99 98 }
-1
pkgs/tools/networking/getmail6/default.nix
··· 28 28 meta = with lib; { 29 29 description = "A program for retrieving mail"; 30 30 homepage = "https://getmail6.org"; 31 - updateWalker = true; 32 31 license = licenses.gpl2Plus; 33 32 maintainers = with maintainers; [ abbe dotlambda ]; 34 33 };
-1
pkgs/tools/system/dd_rescue/default.nix
··· 36 36 platforms = platforms.linux; 37 37 homepage = "http://www.garloff.de/kurt/linux/ddrescue/"; 38 38 license = licenses.gpl2Plus; 39 - updateWalker = true; 40 39 }; 41 40 }
-1
pkgs/tools/system/di/default.nix
··· 15 15 description = "Disk information utility; displays everything 'df' does and more"; 16 16 homepage = "https://gentoo.com/di/"; 17 17 license = licenses.zlib; 18 - updateWalker = true; 19 18 maintainers = with maintainers; [ manveru ]; 20 19 platforms = platforms.all; 21 20 };
-2
pkgs/tools/system/freeipmi/default.nix
··· 37 37 38 38 maintainers = with lib.maintainers; [ raskin ]; 39 39 platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice 40 - 41 - updateWalker = true; 42 40 }; 43 41 }
-4
pkgs/tools/system/ipmiutil/default.upstream
··· 1 - url https://sourceforge.net/projects/ipmiutil/files/ 2 - SF_version_tarball 3 - SF_redirect 4 - minimize_overwrite