From 0d340f58ae05cb87c5996d9449d43d51748ff25b Mon Sep 17 00:00:00 2001 From: "Dino A. Dai Zovi" Date: Sun, 14 Sep 2025 13:43:29 -0400 Subject: [PATCH] nvi: use debian patches and fix build Migrate to using patches from Debian package and add one local patch to fix remaining build error. Enable widechar support instead of patch fixing build error --- pkgs/by-name/nv/nvi/debian-patches.nix | 170 +++++++++++++++++++++++++ pkgs/by-name/nv/nvi/debian-patches.txt | 42 ++++++ pkgs/by-name/nv/nvi/package.nix | 21 +-- 3 files changed, 219 insertions(+), 14 deletions(-) create mode 100644 pkgs/by-name/nv/nvi/debian-patches.nix create mode 100644 pkgs/by-name/nv/nvi/debian-patches.txt diff --git a/pkgs/by-name/nv/nvi/debian-patches.nix b/pkgs/by-name/nv/nvi/debian-patches.nix new file mode 100644 index 000000000000..be60d0939eb2 --- /dev/null +++ b/pkgs/by-name/nv/nvi/debian-patches.nix @@ -0,0 +1,170 @@ +# Generated by debian-patches.sh from debian-patches.txt +let + prefix = "https://sources.debian.org/data/main/n/nvi/1.81.6-23/debian/patches"; +in +[ + { + url = "${prefix}/01additional_upstream_data.patch"; + sha256 = "0kqzch40sk66pszb2sp9197ih8rh4g0yawkf7na95x2rjcwzp8x7"; + } + { + url = "${prefix}/03db4.patch"; + sha256 = "0lcc9xqj76izll4x7v6wgrdbxjd6zyzsvrzb5mbkf4qlb86cy1d0"; + } + { + url = "${prefix}/04confdefs.patch"; + sha256 = "1x6vx3dxnn2qw5ihij3xvzyn80fgaxh7bqpnddz4gy028sl2jgmv"; + } + { + url = "${prefix}/06default_value_escapetime.patch"; + sha256 = "1kz2g517lyfrgz7f8blassz8984zb2bsv8dypiks87dmkc73859v"; + } + { + url = "${prefix}/07flush_cache.patch"; + sha256 = "041wsvcaki87r3n44251hqvfvjfsbydjvqkh99r3ky743qakcsn2"; + } + { + url = "${prefix}/08lfs.patch"; + sha256 = "0fv79kj31n0c2s8x4hk8d0897z1clwhchwcb8if2mqsxya3rdwr6"; + } + { + url = "${prefix}/08safe_printf.patch"; + sha256 = "0rn8bqcwjx7hw73mjfcbiq2454w297gh6ih0dn22r1fsx2lq3sn5"; + } + { + url = "${prefix}/08tempfile_umask.patch"; + sha256 = "0k06ha1z48z0kx8l4vi8cmmyqm9ma3mad3fj9p3b2wyzx092gs2n"; + } + { + url = "${prefix}/09casting.patch"; + sha256 = "1ni5rsrbwaahfwnlag9ivnxb8wy7px23i2ybxn3gnm20znmp6qy0"; + } + { + url = "${prefix}/10no_one_line_visual.patch"; + sha256 = "0hwqyjw5ql2n6p0yx9kpkb8yz2plwy5rbdnqcj2gcp2w4mb5mllf"; + } + { + url = "${prefix}/11backward_sentence_moving.patch"; + sha256 = "15b997gx0n4vqmkpxg2281dkklji7hryp0j8gvm1wyipakhvajbn"; + } + { + url = "${prefix}/12horiz_scroll_count.patch"; + sha256 = "1sh9p25ia44bqqkfkqw9zmfqwyjqkq41ycbqs7bvi9qi75qnl9n7"; + } + { + url = "${prefix}/14private_regex_fixes.patch"; + sha256 = "1k884rg8rmwjfs3zvfgrdhnrncsjdannd8jqp91jhvprnjf21j5h"; + } + { + url = "${prefix}/16manpage_errors.patch"; + sha256 = "1l46dl5hfigxlgzyzinsxlkrmfhc4zn63nkhcmr4qjjfrv7qa0hk"; + } + { + url = "${prefix}/17tutorial_typos.patch"; + sha256 = "18mlqg5n91jf6ydz54rf90324chzd9jfzh6zjjmxf2h8w996jbsg"; + } + { + url = "${prefix}/18dbpagesize_binpower.patch"; + sha256 = "0a4fnwkl13w8hz5v7ka4wgr9a86xcniqzxdp0baspp8vawdk57ha"; + } + { + url = "${prefix}/19include_term_h.patch"; + sha256 = "0k5hlfn0x8iiqfva5fz05qnfx4m1pyzfdx3pmlygsda605si1m9i"; + } + { + url = "${prefix}/20glibc_has_grantpt.patch"; + sha256 = "14x5p3g63p4mxnpcspi3h43qwj5vzpc955igk1pp14c65n3knrqr"; + } + { + url = "${prefix}/21exrc_writability_check.patch"; + sha256 = "03yc9vznklphk02vb59vzcz2dlvria4xmdb89iccn81x8lzcyixs"; + } + { + url = "${prefix}/23debian_alternatives.patch"; + sha256 = "1fnxlbv2aq16n4jcm1mpp672874bnz04i4vznpfx6jnxjnzd2px1"; + } + { + url = "${prefix}/24fallback_to_dumb_term.patch"; + sha256 = "00xhfa1fapgy7l76rx7q6jjlmymx8bpqlmc63myfficd42f8fzz7"; + } + { + url = "${prefix}/25manpage_note_dropped_F.patch"; + sha256 = "1gng9gaqrac2ps20hcs6w6zbipd4j1z7h6a0nsk1ip03xc1j87pl"; + } + { + url = "${prefix}/26trailing_tab_segv.patch"; + sha256 = "1iiswsng3h9xpf6ml80wsvbwd8rdvjavyc63hvml31paa1rwjncc"; + } + { + url = "${prefix}/27support_C_locale.patch"; + sha256 = "0g654xhv2al3y1x75yylhkqh588qmn69zjr7fm2wzngz91b8y56l"; + } + { + url = "${prefix}/29file_backup.patch"; + sha256 = "0jnjy6c447lh77c2xl3a5k2bpj4y90jdf43ca8c8hv0acxy0c3qm"; + } + { + url = "${prefix}/30make_recover_script_init_ready.patch"; + sha256 = "0b6lafcxqwmx7b6wkclhhjr022ffli2bwx7jkq6182zws0mz6ls2"; + } + { + url = "${prefix}/31regex_heap_overflow.patch"; + sha256 = "1wchrzk7931za9ksdribwxjdslk1vqshdy4987yhmafp73qi13yq"; + } + { + url = "${prefix}/32allow_exec_of_nvi_opened_file.patch"; + sha256 = "0mpvbpsn1hkb43h9cl1ix6jfyik8mmfrvfgsvrljk0hjrf91bn0a"; + } + { + url = "${prefix}/33-fix-spelling-error.patch"; + sha256 = "1cwyb4jvbyib7p2my49l7m3lf1dzvcazxzrz9wz39amrv3kyc09r"; + } + { + url = "${prefix}/34-fix-long-line.patch"; + sha256 = "0f1n19ax49lpvx3vc3gqpq26p6hfkz4x2ymigsd7ckm3hsn47pdd"; + } + { + url = "${prefix}/35-fix-encoding.patch"; + sha256 = "0g0rnmbwscxb81ll5v81g5vyk9vxx7mkqjcs8p53aj1xrk9a0nsn"; + } + { + url = "${prefix}/upstream/0032-ex-ex_display.c-ex_display-fix-argument-checking-in-.patch"; + sha256 = "108g8kwqdl33q0fsl8abr4qqfd62ldbk849j39nrwflhs4zpsmqi"; + } + { + url = "${prefix}/upstream/0033-vi-v_increment.c-v_increment-fix-support-for-wide-ch.patch"; + sha256 = "1iqzdvn8byd8852q4rpi4g06n03i6ix6jvhgwv4yc3y7s3irlvhk"; + } + { + url = "${prefix}/upstream/0034-cut-fix-appending-to-unused-cut-buffer-and-support-f.patch"; + sha256 = "1vp427d01gqlx6sijba9n8birbzlb54sh7aiyfy1xfjxk9pb76xa"; + } + { + url = "${prefix}/upstream/0035-Word-search-ignored-word-end-boundaries.patch"; + sha256 = "045980hrgs6a9rk8mif64z2jlq06qdk885g7vzqig3cqabv5915m"; + } + { + url = "${prefix}/upstream/0036-Fix-how-keywords-are-picked-up.patch"; + sha256 = "1fd2i2xs9k7il8r57hmdd3pimbsiyj326xigzc2skj5glnjd7lj0"; + } + { + url = "${prefix}/upstream/0037-New-macro-MEMPCPY.patch"; + sha256 = "16j8zry077fsyfyb45bj6blp797nmlnp553az5y1mcn7sbgr8vyx"; + } + { + url = "${prefix}/upstream/0038-Fix-A-word-search-for-keywords-starting-with-a-non-w.patch"; + sha256 = "0cy0v9g3arxda3zzwsbqp0m5y8mvf1fy1wd8ay4q82cfp0f3dcgh"; + } + { + url = "${prefix}/0039-Add-function-prototypes-to-fix-implicit-function-dec.patch"; + sha256 = "1w10cmqbasnmpw6613zmzxrrkfvzmqmdxki9k21jyakv7j0vwdii"; + } + { + url = "${prefix}/0040-Add-more-function-prototypes-to-fix-Wimplicit-functi.patch"; + sha256 = "0m13jaaylq1lxrmi0d2ppr9jg51s3q40chbxcv4jzdlx0bdxq8w1"; + } + { + url = "${prefix}/0041-Fix-FTBFS-because-of-incompatible-pointer-type-error.patch"; + sha256 = "1qvzrxfbk3ylr6cc3y94rlgfbdj2z14dhh6m09drkxb4bqcp2awv"; + } +] diff --git a/pkgs/by-name/nv/nvi/debian-patches.txt b/pkgs/by-name/nv/nvi/debian-patches.txt new file mode 100644 index 000000000000..32e7b4a8448b --- /dev/null +++ b/pkgs/by-name/nv/nvi/debian-patches.txt @@ -0,0 +1,42 @@ +nvi/1.81.6-23 +01additional_upstream_data.patch +03db4.patch +04confdefs.patch +06default_value_escapetime.patch +07flush_cache.patch +08lfs.patch +08safe_printf.patch +08tempfile_umask.patch +09casting.patch +10no_one_line_visual.patch +11backward_sentence_moving.patch +12horiz_scroll_count.patch +14private_regex_fixes.patch +16manpage_errors.patch +17tutorial_typos.patch +18dbpagesize_binpower.patch +19include_term_h.patch +20glibc_has_grantpt.patch +21exrc_writability_check.patch +23debian_alternatives.patch +24fallback_to_dumb_term.patch +25manpage_note_dropped_F.patch +26trailing_tab_segv.patch +27support_C_locale.patch +29file_backup.patch +30make_recover_script_init_ready.patch +31regex_heap_overflow.patch +32allow_exec_of_nvi_opened_file.patch +33-fix-spelling-error.patch +34-fix-long-line.patch +35-fix-encoding.patch +upstream/0032-ex-ex_display.c-ex_display-fix-argument-checking-in-.patch +upstream/0033-vi-v_increment.c-v_increment-fix-support-for-wide-ch.patch +upstream/0034-cut-fix-appending-to-unused-cut-buffer-and-support-f.patch +upstream/0035-Word-search-ignored-word-end-boundaries.patch +upstream/0036-Fix-how-keywords-are-picked-up.patch +upstream/0037-New-macro-MEMPCPY.patch +upstream/0038-Fix-A-word-search-for-keywords-starting-with-a-non-w.patch +0039-Add-function-prototypes-to-fix-implicit-function-dec.patch +0040-Add-more-function-prototypes-to-fix-Wimplicit-functi.patch +0041-Fix-FTBFS-because-of-incompatible-pointer-type-error.patch diff --git a/pkgs/by-name/nv/nvi/package.nix b/pkgs/by-name/nv/nvi/package.nix index d8c3fe35c95f..645990b7669c 100644 --- a/pkgs/by-name/nv/nvi/package.nix +++ b/pkgs/by-name/nv/nvi/package.nix @@ -16,19 +16,9 @@ stdenv.mkDerivation rec { sha256 = "13cp9iz017bk6ryi05jn7drbv7a5dyr201zqd3r4r8srj644ihwb"; }; - patches = [ - # Fix runtime error with modern versions of db. - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-03-db4.patch"; - sha256 = "1vpnly3dcldwl8gwl0jrh5yh0vhgbdhsh6xn7lnwhrawlvk6d55y"; - }) - - # Fix build with Glibc. - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-20-glibc_has_grantpt.patch"; - sha256 = "1ypqj263wh53m5rgiag5c4gy1rksj2waginny1lcj34n72p2dsml"; - }) - ]; + patches = + # Apply patches from debian package + map fetchurl (import ./debian-patches.nix); buildInputs = [ ncurses @@ -39,7 +29,10 @@ stdenv.mkDerivation rec { cd build.unix ''; configureScript = "../dist/configure"; - configureFlags = [ "vi_cv_path_preserve=/tmp" ]; + configureFlags = [ + "vi_cv_path_preserve=/tmp" + "--enable-widechar" + ]; meta = with lib; { description = "Berkeley Vi Editor";