Bug 246713 - www/nift: Update to 2.3.10
Summary: www/nift: Update to 2.3.10
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Loïc Bartoletti
Keywords: buildisok, needs-qa
Depends on:
Reported: 2020-05-25 03:54 UTC by Mohammad S. Babaei
Modified: 2020-08-26 12:24 UTC (History)
2 users (show)

See Also:

www/nift-2.3.9 to 2.3.10 patch file (4.56 KB, patch)
2020-05-25 03:54 UTC, Mohammad S. Babaei
info: maintainer-approval+
Details | Diff
nift with disable_make_jobs (1.37 KB, patch)
2020-08-25 16:33 UTC, Loïc Bartoletti
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mohammad S. Babaei 2020-05-25 03:54:53 UTC
Created attachment 214828 [details]
www/nift-2.3.9 to 2.3.10 patch file

Release Notes:

    added '!round' option to console fn
    added 'f++' and 'n++' options to exprtk and exprtk.compile fns
    added '...' option for std::vector definitions (parameters are values)
    added vjoin and ? (ternary operator) fns
    changed options/parameters/types variables for user-defined structs/fns to std::vector<string>
    added add_scope, add_member_fns and replace_vars fns
    added 's' (add scope) option to if, for, while, do-while and fn calls
    added 'mf' option to definitions and fn calls
    fixed various bugs
    made various improvements
Comment 1 Steve Wills freebsd_committer 2020-05-25 04:09:20 UTC
Build info is available at https://gitlab.com/swills/freebsd-ports/pipelines/149186734
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2020-05-25 05:04:27 UTC
^Triage: [tags] in summaries are deprecated
Comment 3 Loïc Bartoletti freebsd_committer 2020-05-25 10:16:17 UTC

Please, can you remove lines with _MAKE_JOBS_UNSAFE? I forgot to remove it on latest version. MAKE_JOBS_UNSAFE is not needed.

By the way, is all options of LUA are required? 

Comment 4 Mohammad S. Babaei 2020-05-28 11:13:50 UTC

Those two MAKE_JOBS_UNSAFE are necessary for the first two options or the build will fail due to the fact that the make runs in parallel but the dependencies should be built first.
Comment 5 Loïc Bartoletti freebsd_committer 2020-06-12 04:28:13 UTC
(In reply to Mohammad S. Babaei from comment #4)
No, _MAKE_JOBS_UNSAFE have no effect. I forgot to remove it in my last commit.

What's your position about lua options?

See https://lists.freebsd.org/pipermail/svn-ports-all/2020-May/252546.html

Comment 6 Mohammad S. Babaei 2020-06-15 16:09:40 UTC
Well, I just did run a test. On my 2 core VPS it is slow. So, no problem. But, inside an 8 core VMWare instance on my desktop when I remove those *_MAKE_JOBS_UNSAFE I get build errors.

Why does this happen? Because the main Makefile invokes LuaJIT or Lua's Makefile and runs everything in parallel. But, the Nift Makefile depends on Lua or LuaJIT target depending on the user's choice which has not been built yet, so it fails on a system with more CPU cores because the Nift code base is much much smaller than Lua's or LuaJIT's. 

===>  License MIT accepted by the user
===>   nift-2.3.9 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by nift-2.3.9 for building
===>  Extracting for nift-2.3.9
=> SHA256 Checksum OK for nifty-site-manager-nsm-v2.3.9_GH0.tar.gz.
===>  Patching for nift-2.3.9
===>  Applying FreeBSD patches for nift-2.3.9 from /usr/home/mamadou/nift/files
/usr/bin/sed -i.bak -e 's|%%LOCALBASE%%|/usr/local|g'  /usr/home/mamadou/nift/work/nsm-2.3.9/Makefile
===>   nift-2.3.9 depends on package: gmake>=4.3 - found
===>   nift-2.3.9 depends on file: /usr/local/bin/ccache - found
===>  Configuring for nift-2.3.9
===>  Building for nift-2.3.9
gmake[2]: Entering directory '/usr/home/mamadou/nift/work/nsm-2.3.9'
cd LuaJIT && gmake
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o ConsoleColor.o ConsoleColor.cpp
gmake[3]: Entering directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT'
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Directory.o Directory.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Filename.o Filename.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o SystemInfo.o SystemInfo.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o DateTimeInfo.o DateTimeInfo.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Expr.o Expr.cpp
==== Building LuaJIT 2.1.0-beta3 ====
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Quoted.o Quoted.cpp
gmake -C src
gmake[4]: Entering directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT/src'
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o NumFns.o NumFns.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o StrFns.o StrFns.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o HashTk.o hashtk/HashTk.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Path.o Path.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Title.o Title.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Lua.o Lua.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o FileSystem.o FileSystem.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Variables.o Variables.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Pagination.o Pagination.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o TrackedInfo.o TrackedInfo.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o GitInfo.o GitInfo.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Lolcat.o Lolcat.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o WatchList.o WatchList.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Getline.o Getline.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o ExprtkFns.o ExprtkFns.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o LuaFns.o LuaFns.cpp
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o Parser.o Parser.cpp
HOSTCC    host/minilua.o
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o ProjectInfo.o ProjectInfo.cpp
HOSTCC    host/buildvm_asm.o
HOSTCC    host/buildvm_peobj.o
HOSTCC    host/buildvm_fold.o
HOSTCC    host/buildvm_lib.o
CC        lj_gc.o
CC        lj_char.o
CC        lj_obj.o
CC        lj_buf.o
CC        lj_str.o
CC        lj_tab.o
CC        lj_func.o
CC        lj_udata.o
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ -c -o nsm.o nsm.cpp
CC        lj_meta.o
CC        lj_debug.o
CC        lj_state.o
CC        lj_vmevent.o
CC        lj_vmmath.o
CC        lj_strscan.o
CC        lj_strfmt.o
CC        lj_strfmt_num.o
CC        lj_api.o
CC        lj_profile.o
CC        lj_lex.o
clang -std=c++11 -Wall -Wextra -pedantic -O3 -Dexprtk_disable_caseinsensitivity -s -Qunused-arguments -lstdc++ -D__BUNDLED__ -D__LUAJIT_VERSION_2_1__ nsm.o ConsoleColor.o DateTimeInfo.o Directory.o Expr.o ExprtkFns.o Filename.o FileSystem.o Getline.o GitInfo.o HashTk.o Lolcat.o LuaFns.o Lua.o NumFns.o Pagination.o Parser.o Path.o ProjectInfo.o Quoted.o StrFns.o SystemInfo.o Title.o TrackedInfo.o Variables.o WatchList.o -o nsm -pthread ./LuaJIT/src/libluajit.a -ldl -lm
CC        lj_parse.o
clang: error: no such file or directory: './LuaJIT/src/libluajit.a'
gmake[2]: *** [Makefile:226: nsm] Error 1
gmake[2]: *** Waiting for unfinished jobs....
CC        lj_bcwrite.o
CC        lj_bcread.o
CC        lj_load.o
CC        lj_ir.o
CC        lj_opt_mem.o
CC        lj_opt_narrow.o
CC        lj_opt_dce.o
CC        lj_opt_loop.o
CC        lj_opt_split.o
CC        lj_opt_sink.o
CC        lj_mcode.o
CC        lj_snap.o
CC        lj_asm.o
CC        lj_trace.o
CC        lj_gdbjit.o
CC        lj_ctype.o
CC        lj_cdata.o
CC        lj_cconv.o
CC        lj_ccall.o
CC        lj_ccallback.o
CC        lj_carith.o
CC        lj_clib.o
CC        lj_cparse.o
CC        lj_lib.o
CC        lj_alloc.o
CC        lib_aux.o
CC        lib_package.o
CC        lib_init.o
CC        luajit.o
HOSTLINK  host/minilua
DYNASM    host/buildvm_arch.h
HOSTCC    host/buildvm.o
HOSTLINK  host/buildvm
BUILDVM   lj_vm.S
BUILDVM   lj_ffdef.h
BUILDVM   lj_bcdef.h
BUILDVM   lj_folddef.h
BUILDVM   lj_recdef.h
BUILDVM   jit/vmdef.lua
BUILDVM   lj_libdef.h
ASM       lj_vm.o
CC        lj_err.o
CC        lj_bc.o
CC        lj_dispatch.o
CC        lj_record.o
CC        lj_crecord.o
CC        lj_ffrecord.o
CC        lib_base.o
CC        lib_math.o
CC        lib_bit.o
CC        lib_string.o
CC        lib_table.o
CC        lib_io.o
CC        lib_os.o
CC        lib_debug.o
CC        lib_jit.o
CC        lib_ffi.o
CC        lj_opt_fold.o
DYNLINK   libluajit.so
AR        libluajit.a
LINK      luajit
OK        Successfully built LuaJIT
gmake[4]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT/src'
==== Successfully built LuaJIT 2.1.0-beta3 ====
gmake[3]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT'
gmake[2]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

make[1]: stopped in /usr/home/mamadou/nift
*** Error code 1

make: stopped in /usr/home/mamadou/nift
Comment 7 Mohammad S. Babaei 2020-06-15 16:14:01 UTC
BTW, in the build log you clearly see the following line gets printed out later than the Nift build error:

OK        Successfully built LuaJIT

Which proves the *_MAKE_JOBS_UNSAFE indeed works.

LINK      luajit
OK        Successfully built LuaJIT
gmake[4]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT/src'
==== Successfully built LuaJIT 2.1.0-beta3 ====
gmake[3]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9/LuaJIT'
gmake[2]: Leaving directory '/usr/home/mamadou/nift/work/nsm-2.3.9'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Comment 8 Mohammad S. Babaei 2020-08-23 22:05:13 UTC

Wondering if there are any updates on this or no?
Comment 9 Loïc Bartoletti freebsd_committer 2020-08-25 16:33:52 UTC
Created attachment 217521 [details]
nift with disable_make_jobs


Can you try this patch, please?
Comment 10 Mohammad S. Babaei 2020-08-25 16:52:46 UTC
I disabled CCACHE in make.conf and ran the following:

$ make clean && make makesum && make stage && make stage-qa && make package && make install && make deinstall && make clean

It builds fine with the bundled lua jit or lua 5.3.
Comment 11 Mohammad S. Babaei 2020-08-25 16:53:53 UTC
BTW, I cannot set the maintainer approval flag on your patch.
Comment 12 commit-hook freebsd_committer 2020-08-26 11:58:28 UTC
A commit references this bug:

Author: lbartoletti
Date: Wed Aug 26 11:57:27 UTC 2020
New revision: 546276
URL: https://svnweb.freebsd.org/changeset/ports/546276

  www/nift: Update to 2.3.10

    - update to
    - fix helper

    - https://github.com/nifty-site-manager/nsm/releases/tag/v2.3.10

  PR:		246713
  Submitted by:	Mohammad S. Babaei (maintainer)

Comment 13 Loïc Bartoletti freebsd_committer 2020-08-26 12:24:44 UTC
Committed, thanks!