Version 1 (modified by mickem, 9 months ago) (diff)

--

fetchdeps.py

This page is part of the build/04x of nsclient++

fetchdeps is a python script designed to help fetch dependencies. Initially it is "more for me" than "you". This means it is designed to help build my environment. But since the script is generic in nature let me know any issues you run into so I can improve the script and hopefully eventually it will be "for you".

The script has a series of phases:

  1. Fetch dependencies
  2. Validate dependencies and decompress them
  3. Build dependencies
  4. Write configuration file.
  5. display "the next step".

Caching

Each step is design to use caching which means running again and again will not build again and again. The caching (since that can cause trouble I guess) use:

  1. If the zip file is there it wont be downloaded again (even if it fails sha)
  2. If the folder is there the zip wont be decompressed (even if building fails).
  3. If the "command" is in the <folder>/nscp.command.log file it wont be run again (even if something fails).

So in general if you want something re-build delete both the folder and the zip and then re-run the script.

Fetching dependencies

This is rather crude there is a hard coded list of files which will be downloaded.

  • TODO Add command line option to list this file so one can download it manually.

Validating and unpacking

This will first match the sha1 of the file (if it is there). So you cant download "another version" and rename it. Then it will decompress the zip file into an optional folder (if the zip does not already have one).

  • TODO Add sha2 for the files which dont have one.
  • TODO Add command line option to list files and targetfodlers (and sha1)

Building dependencies

This will build in turn each dependency applying various "patches" to tuned to my environment. If something fail it will bail out so be sure to read any erroros in the last step as that will help know why something is wrong. Normally this builds using the "msbuild" command line tool.

  • TODO Add command line option to list commands to run instead (so it can be built manually)

Write configuration file

A configuration file is written to your target folder (defaults to dist). This configuration file is the key to the whole fetchdeps script as it contains the paths for the components downloaded and built. Armed with this information building nsclient++ will become much much better.

Display "the next step"

This just prints some text about things you can do and missing libraries.

Now what?

In general after running the script you want to validate the result and then finally build nsclient++ (in this folder!). For details on that see the build/04x