Not use nested functions for progress callbacks. Nested functions are a gcc extension. They execute from the stack and are considered unsafe and not supported by modern compilers e.g. llvm. Also replace deprecated glib functions and other changes to eliminate some compiler warnings. Release not beneficial unless you are using a compiler or an OS that doesn't allow nested function execution from stack.