tig recently updated it's bash-completion making it depend on __git-complete from git.
Becase __git-complete is not automatically sourced tig bash completion fails.
Also this PR makes tig completion load on-demand.
Xcode 11.4 has an updated sys/_types/_fd_def.h header that references a
new symbol from libSystem. This is a problem because we're using
`/usr/bin/clang` to compile the non-Xcode portion, and this pulls in
headers from Xcode's SDK. Somehow it's still linking to the Nix
libraries (I can't figure out where configure finds these to put into
`LDFLAGS` as we're not using the cc-wrapper). The end result is we get a
linker error where this new symbol can't be found at link time, even
though it's a weak import and isn't required at runtime.
Ideally we'd provide a full 10.12 SDK to `/usr/bin/clang`, but we can't
do that because even the DevSDK package we use for our 10.12 SDK doesn't
contain everything (in particular it's missing nearly all dylibs) so we
just get linker errors if we do that.
Instead we'll just do a horrible hack and provide an `-isystem` path to
a folder structure that contains only the 10.12 `sys/_types/_fd_def.h`
header. This avoids the new symbol without causing all the errors that
happen if we pull in the entire `${darwin.Libsystem}/include`.
- updateScript:
A nix expression that can be used in passThrough to update a package
- list-git-tags:
A shell script to list available tags in a git repository
- list-archive-two-level-versions:
A shell script to list available versions in a web site in two
levels: there is a page listing the available major.minor versions,
and for each of them there is another page listings the patch level
versions major.minor.patch.
It is suitable for Xfce packages for instance.
How the updater works:
1. collect the available versions from the source repository (using a
script given as argument)
2. print the collected versions (for debugging)
3. (optionally) apply some transformation to the collected versions to
make them compatible with the versions used in nixpkgs (for instance,
tags in the Xfce git repository may be prefixed with the package name,
and the prefix need to be removed)
4. sort the available versions in decreasing order
5. choose the first version that pass validation:
- check if the version may be a development version
- if the version IS unstable, skip it and give a warning about
skipping a development version (for debugging)
- if the version COULD BE unstable, take it and give a warning
about taking a potential development version (for debugging)
- if the version IS stable, take it
6. update the package version and checksum in its nix expression
7. print the git commands for adding the modified files and for
committing the changes