lua.withPackages only brings packages that have passthru.luaModule, which was not the case of luarocks (because it's built differently than other lua packages). We call toLuaModule on luarocks so that it is brought in a lua.withPackages call
it makes overriding easier, instead of having to know internals to
decide which of `sqlite = prev.luaLib.overrideLuarocks prev.sqlite (drv: {` or
`sqlite = prev.sqlite.overrideAttrs (drv: {` just use the latter
I tried to add the packages, but the updater script wasn't working for
me, so to prevent future Nixpkgs PRs from failing to evaluate because of
this, I figured I'd mark this package as broken and remove the arguments
that are not packages.
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
commands used and then added -*'s manually because the word match doesn't
match those
```
rg -o '\w*pkgs\.\w*' ./pkgs/development/lua-modules/overrides.nix | sort | uniq
sd 'pkgs.' '' --string-mode ./pkgs/development/lua-modules/overrides.nix
```
These are extracted from:
nix-shell maintainers/scripts/update-luarocks-shell.nix --run maintainers/scripts/update-luarocks-packages
... but reduced to just the LuaRocks that are *only* SILE dependencies
so I'm confident of bumping them in this context.
Required for Prosody 0.12.0.
I first tried to run the bare
./maintainers/scripts/update-luarocks-packages, however it did break a
fair share of Lua packages.
In the end, I:
1. Added the luaunbound entry to luarocks-packages.csv
2. Run the update-luprocks-packages.
3. Cherry picked the luaunbound entry
4. Reverted the rest of lua-modules/generated-packages.nix to what we
currently have in Nixpkgs.
5. Injected the native unbound library via the lua-modules overrides.
libluv was recently converted to a pure cmake package and now there's
nothing lua related in the build. However an old workaround to force
linking against lua on darwin remains. Clean this up.
The "0.5.0-1" rockspec on luarocks has a bug, resulting in it pulling
the current git master version, which is what we have effectively been
using.
Given that 0.5.0-1 is the latest release, is 6 years old, and that there
have been some bug fixes since then, we do actually want to be using the
git master version, but we also want to be using the correct rockspec
(particularly as alt-getopt has been replaced by argparse in the `moon`
binary).
- luarocks-nix: bumped to pass args too, `package_X = callPackage ...`.
It allows to remove the annoying `with self`.
This new version disables tests (because broken) and now emits derivation
with a callPackage in front.
- replaced X.override with lib.overrideLuarocks, it should be used
whenever buildInputs/extraVariables is changed since it impacts the
generated luarocks config.
Once structured attributes are in, it will be easier to have the
luarocks config generated by a hook and we probably will be able to
replace all overrideLuarocks by overrideAttrs.
- moved lua hooks to a specific folder as I foresee to add more
- moved generateLuarocksConfig to lib
- fix getLuaPath
- removed the useless rockspecDir
Goal is to improve separation between packages and utilities.
Can help with autocompletion/navigate nixpkgs faster.
Also it will help standardize how LUA_PATH is exported across packages,
so that one can more easily make lua changes across nixpkgs (for
instance changing where lua modules are installed).
Upstream is working on some major deprecations, being on a HEAD commit
will not be a good plan going forward.
Remove double `busted` in `checkInputs` - keep only 1.
Trying to reuse the update scripts used by kakoune/vim to provide the
user with an unified convergence. Some stuff doesn't work yet (parallel
download, caching) but I (anyone else welcome to try too) will improve
it in other PRs.
continuation of #109595
pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.
python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
Related:
- 9fc5e7e473
- 593e11fd94
- 508ae42a0f
Since the last time I ran this script, the Repology API changed, so I had to
adapt the script used in the previous PR. The new API should be more robust, so
overall this is a positive (no more grepping the error messages for our relevant
data but just a nice json structure).
Here's the new script I used:
```sh
curl https://repology.org/api/v1/repository/nix_unstable/problems \
| jq -r '.[] | select(.type == "homepage_permanent_https_redirect") | .data | "s@\(.url)@\(.target)@"' \
| sort | uniq | tee script.sed
find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
I will also add this script to `maintainers/scripts`.
According to https://repology.org/repository/nix_unstable/problems, we have a
lot of packages that have http links that redirect to https as their homepage.
This commit updates all these packages to use the https links as their
homepage.
The following script was used to make these updates:
```
curl https://repology.org/api/v1/repository/nix_unstable/problems \
| jq '.[] | .problem' -r \
| rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \
| sort | uniq > script.sed
find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
[ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
[100%] Linking C shared library libluv.dylib
Undefined symbols for architecture x86_64:
"_luaL_addlstring", referenced from:
_thread_dump in luv.c.o
...
Quoting from the splitString docstring:
NOTE: this function is not performant and should never be used.
This replaces trivial uses of splitString for splitting version
strings with the (potentially builtin) splitVersion.
- Lua packages now consistently use LUA_PATH/LUA_CPATH rather than a mix
of those and NIX_LUA_PATH/NIX_LUA_CPATH
- Lua libraries are now consistently only added to the search path
variables if:
1) The library actually has a corresponding directory to search
2) The library is not already present in the search path
This should help prevent the search paths from growing overly large
- Fixed bugs in some path helpers
- Changed the affected shell script indentation to 2 spaces; nixpkgs
shell scripts are inconsistently split between 2 and 4 space
indentation, but 2 matches better with the Nix expressions, so IMO it
makes more sense
luaPackages replaced by generated ones:
- bit32
- compat53
- cqueues
- luacyrussasl -> cyrussasl (luarocks name)
- luaexpat
- luadbi -> luadbi front-end module + separate backend modules
luadbi-{mysql,postgresql,sqlite3}
- luafilesystem
- luaossl
- luasec
- luasocket
- luastdlib -> stdlib (luarocks name)
- lrexlib -> lrexlib-pcre (we already have lrexlib-gnu and
lrexlib-posix, lrexlib-pcre however appears to be the variant used in
mudlet, which is the only current dep in nixpkgs)
- luasqlite -> luasql-sqlite3 (luarocks name)
- lfs -> luafilesytem (we literally had two manually written
luafilesystem expressions, under different names)
Changes and additions to overrides to generated luarocks packgaes,
including:
- busted: Install bash completions along with the zsh ones
- cqueues:
- Perform minor surgery on the rockspec to allow using a single
rockspec to build for all supported Lua versions
- Add a patch by @vcunat to work around a build issue
- luuid: Wrote a tiny patch to allow for Lua 5.1/Luajit compatibility
- General changes:
- Sorted the packages
- Attempted to make the formatting consistent
- Preferenced `.override` instead of `.overrideAttrs` wherever
possible
Minor changes to other packages to adjust for the Lua package changes:
- luakit expression simplified
- prosody expression simplified; but users will now need to specify the
luadbi backend module they intend to use in withExtraLibs
- knot-resolver inputs correctd
- mudlet inputs corrected (although this package was and should still be
broken)
Summary of resulting package updates:
- bit32: init at 5.3.0-1 (same as current hand-written derivation)
- busted: 2.0.rc12-1 -> 2.0.rc13-0
- compat53: init at 0.7-1 (same as current hand-written derivation)
- cqueues: init at 20171014-0 (same as current hand-written derivation)
- cyrussasl: init at 1.1.0-1 (same as current hand-written derivation)
- lrexlib-pcre: init at 2.9.0-1 (vs 2.8.0 in current hand-written
lrexlib derivation)
- luadbi and backends (luadbi-{mysql,postgresql,sqlite3}): init at
0.7.2-1 (vs 0.7.1 in current hand-written derivation)
- luaexpat: init at 1.3.3-1 (vs 1.3.0 in current hand-written
derivation)
- luafilesystem: init at 1.7.0-2 (same as current hand-written
derivation)
- luaossl: init at 20190612-0 (vs 20181207 in current hand-written
derivation)
- luasec: init at 0.8-1 (same as current hand-written derivation)
- luasocket: init at 3.0rc1-2 (same as current hand-written derivation)
- luasql-sqlite3: init at 2.4.0-1 (vs 2.3.0 in current hand-written
luasqlite3 derivation)
- rapidjson: 0.5.1-1 -> 0.5.2-1
- stdlib: init at 41.2.2-1 (vs 41.2.1 in current hand-written
derivation)
One bugfix patch is included - merged upstream but not released yet.
knot-resolver wrapper would need to add binaryheap explicitly,
so it's migrated to the automatic LUA path discovery instead.
Similarly rename std.normalize to std_normalize.
Having a dot in the name prevents some changes to the lua infrastructure,
for instance passing attribute names { std._debug }: to a function would fail with
`syntax error, unexpected ',', expecting '.' or '=',`
Otherwise 'lua' is from the argument populated by callPackage
which means it's whatever the default is.
(instead of the lua we're generating packages for!)
* neovim-unwrapped: now use lua environments
* mpv: use lua environments
* luaPackages.inspect: init at 3.1.1-0
* luaPackages.lgi: mark as a lua module
* luaPackages.vicious: mark as a lua module
* lua: generate packages from luarocks
* luarocks-nix: update
* removed packages already available in nixpkgs
* adressing reviews
update script can now accept another csv file as input with -c
* Remove obsolete comment