about summary refs log tree commit diff
path: root/pkgs/build-support/upstream-updater/update-walker.txt
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/upstream-updater/update-walker.txt')
-rw-r--r--pkgs/build-support/upstream-updater/update-walker.txt118
1 files changed, 0 insertions, 118 deletions
diff --git a/pkgs/build-support/upstream-updater/update-walker.txt b/pkgs/build-support/upstream-updater/update-walker.txt
deleted file mode 100644
index ae47e55902943..0000000000000
--- a/pkgs/build-support/upstream-updater/update-walker.txt
+++ /dev/null
@@ -1,118 +0,0 @@
-update-walker is an imperative semiautomated update helper.
-
-It runs the X.upstream file to find the freshest version of the package in
-the specified upstream source and updates the corresponding X.nix file.
-
-
-
-The simplest available commands:
-
-url: set the upstream source list URL equal to $1; the default is
-meta.downloadPage with meta.homepage fallback
-
-dl_url_re: set the regular expression used to select download links to $1; the
-default is meta.downloadURLRegexp or '[.]tar[.]([^./])+\$' if it is not set
-
-target: specify target expression; default is to replace .upstream extension
-with .nix extension
-
-name: specify the derivation name; default is the basename of the dirname
-of the .upstream file
-
-attribute_name: specify the attribute name to evaluate for getting the current
-version from meta.version; default is to use the derivation name
-
-minimize_overwrite: set config options that mean that only version= and
-sha256= have to be replaced; the default is to regenerate a full upstream
-description block with url, name, version, hash etc.
-
-
-
-A lot of packages can be updated in a pseudo-declarative style using only
-the commands from the previous paragraph.
-
-Some packages do not need any non-default settings, in these case just setting
-meta.updateWalker to true is enough, you can run update-walker directly on the
-.nix file afterwards. In this case minimize_overwrite it implied unless
-meta.fullRegenerate is set.
-
-
-
-The packages that require more fine-grained control than the described options
-allow, you need to take into account the default control flow of the tool.
-
-First, the definitions from update-walker script and additional definitions
-from update-walker-service-specific.sh are loaded. Then the config is executed
-as a shell script. Some of the commands it can use do remember whether they
-have been used. Afterwards the following steps happen: 
-
-attribute_name is set to name unless it has been already set
-
-meta.version is read from the NixPkgs package called attribute_name
-
-download URL regexp is set to default unless it has been already set in the
-updater script
-
-the download page URL gets set to default value unless it has been set
-previously
-
-if the action of getting the download page and choosing the freshest link by
-version has not yet been taken, it happens
-
-if the version has not yet been extracted from the URL, it gets extracted
-
-target nix expression to update gets set to the default value unless it has
-been set explicitly
-
-if the URL version is fresher than the packaged version, the new file gets
-downloaded and its hash is calculated
-
-do_overwrite function is called; the default calculates a big upstream data
-block and puts it after the '# Generated upstream information' marker (the
-marker can be changed by the command marker)
-
-
-
-If the update needs some special logic, it is put into the updater script and
-the corresponding steps are skipped because the needed action has already been
-performed. 
-
-For example: 
-
-minimize_overwrite is exactly the same as
-
-do_overwrite() { do_overwrite_just_version; }
-
-redefinition. You can do a more complex do_overwrite redifinition, if needed.
-It can probably use ensure_hash to download the source and calculate the hash
-and set_var_value.
-
-set_var_value alters the $3-th instance of assigning the $1 name in the
-expression to the value $2. $3 defaults to 1. It can modify $4 instead of the
-current target, it can put the value without quotes if $5 is 1.
-
-
-
-Typical steps include:
-
-ensure_choice: download current URL and find the freshest version link on the
-page, it is now the new URL
-
-ensure_hash: download current URL and calculate the source package hash
-
-ensure_version: extract version from the URL
-
-SF_redirect: replace the current URL with a SourceForge.net mirror:// URL
-
-SF_version_dir: assume SourceForge.net layout and choose the freshest
-version-named subdirectory in the file catalog; you can optionally specify $1
-as a directory name regexp (digits and periods will be required after it)
-
-SF_version_tarball: assume SourceForge.net layout and choose the freshest
-tarball download link
-
-version: apply replacement of $1 with $2 (extended regexp format) to extract
-the version from URL
-
-version_link: choose the freshest versioned link, $1 is the regexp of
-acceptable links