Bugzilla – Bug 1219721
rpm lua checker throws error on "!"
Last modified: 2024-02-23 11:50:37 UTC
This simple lua scriplet %transfiletriggerin -p <lua> -- %{_mandir} if posix.getcwd() != '/' then print("Hello") endif cause: [ 4s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --noclean --nosignature --define '_build_create_debug 1' /home/abuild/rpmbuild/SOURCES/man.spec [ 4s] error: invalid syntax in lua scriptlet: [string "%transfiletriggerin"]:1: 'then' expected near '!' ... accordingly to /usr/share/doc/packages/rpm/manual/lua.md the syntax is correct ... I'd like to use the return value of stat = posix.stat("/var/cache/man") to test is /var/cache/man exists and is also a directory but the string compare stat.type != "directory" crashes with a similar error
I use the workaround stat = posix.stat("/var/cache/man") if not stat then domkdir = true elseif not (stat.type == "directory") then domkdir = true os.remove("/var/cache/man") end seems to work
Lua uses ~= instead of != for inequality. So the rpm documentation is not correct. I'll open an issue.
https://github.com/rpm-software-management/rpm/issues/2929