Control: tags -1 - moreinfo

Dear Boyuan,

Thank you very much for reviewing 2.0.1-1 and catching these two issues.
I have resolved both and uploaded the updated 2.0.1-1 source package to
Debian Mentors:

  dget -x
https://mentors.debian.net/debian/pool/main/v/vielotus/vielotus_2.0.1-1.dsc

Upstream v2.0.1 tag (commit 858d776d007c6b0d518c20016dea9ba809f49603):
  https://github.com/stevedat/VieLotus-IM/tree/v2.0.1

Summary of fixes:

1. Fixed Telex + Smart Bilingual regression (`off -> off` and
   `please turn off -> please turn off`):
   - In the previous 2.0.1 build, the repeated-modifier escape flag
     (`m_telexToneEscape`) prevented `shouldRestoreRawEnglish()` from
     restoring `off` in default/English contexts (turning `off` into `of`),
     and `ass`, `diff`, and `err` were missing from
     `11_extended_english_escapes.txt`.
   - `shouldRestoreRawEnglish()` in
     `Sources/VieLotusCoreWindows/WindowsNativeEngine.cpp` now restores
`off`
     under Smart Bilingual (both standalone `off -> off` and in phrases such
     as `please turn off -> please turn off`), and `ass`, `diff`, and `err`
     have been added to
`Sources/VieLotusCoreWindows/lexicon/11_extended_english_escapes.txt`.
   - Added explicit regression tests for `off` and `please turn off` across
     both the C++ engine and Linux C-ABI preedit/commit flows.

2. Made `vielotus_2.0.1.orig.tar.xz` and the `v2.0.1` upstream tag 100%
   identical (`Sources/VieLotusCAPI/include/vielotus.h`):
   - `scripts/build_debian_source_pkg.sh` previously packed the unsanitized
     monorepo `vielotus.h` still containing the seven unimplemented
     suggestion/loopback declarations that had been removed in the tagged
     upstream repository.
   - `scripts/build_debian_source_pkg.sh` now strips those declarations
     identically, and all 48 files in `vielotus_2.0.1.orig.tar.xz` match the
     `v2.0.1` tag (`858d776d007c6b0d518c20016dea9ba809f49603`)
byte-for-byte.

Please let me know if anything else is needed. Thank you again for your time
and sponsorship review!

Best regards,
Dat Tran (Steve Dat)

On Mon, Nov 2, 2026 at 8:45 AM Boyuan Yang <[email protected]> wrote:

> X-Debbugs-CC: [email protected]  [email protected]
>
> Hi,
>
> 在 2026/11/1 20:17, Dat Tran 写道:
> > Control: tags -1 - moreinfo
> > Control: retitle -1 RFS: vielotus/2.0.1-1 [ITP] -- VieLotusIM (Sen Viet)
> next-gen Vietnamese input method
> >
> > Dear Boyuan,
> >
> > Thank you very much for testing 2.0.0-1 on sid/amd64 and for pointing
> out the
> > DFSG #2 issue together with the FTP Team and debian-legal references.
> >
> > You are completely right: publishing a pre-filtered/obfuscated C++
> engine and
> > shipping precomputed 64-bit FNV-1a hex tables without their underlying
> > plaintext wordlists and generator does not meet DFSG #2 (preferred form
> for
> > modification).
> >
> > I have resolved this upstream in release v2.0.1 and uploaded an updated
> source
> > package (2.0.1-1) to Debian Mentors:
> >
> >    dget -x
> https://mentors.debian.net/debian/pool/main/v/vielotus/vielotus_2.0.1-1.dsc
> <
> https://mentors.debian.net/debian/pool/main/v/vielotus/vielotus_2.0.1-1.dsc
> >
> >
> > Upstream v2.0.1 tag:
> >
> https://github.com/stevedat/VieLotus-IM/tree/v2.0.1/Sources/VieLotusCoreWindows
> <
> https://github.com/stevedat/VieLotus-IM/tree/v2.0.1/Sources/VieLotusCoreWindows
> >
> >
> > Summary of changes and how the Linux/desktop C++ core is maintained and
> built:
> >
> > 1. Direct, unobfuscated C++20 maintenance source (MIT / Expat):
> >     - `Sources/VieLotusCoreWindows/WindowsNativeEngine.{h,cpp}` is now
> published
> >       and maintained directly in its unobfuscated human-readable form
> (semantic
> >       struct, function, and table names, inline comments, zero
> pre-publication
> >       filtering or identifier mangling).
> >     - Relationship to the rest of the project: our macOS/iOS app uses a
> separate
> >       Apple-platform Swift implementation (`InputMethodKit` / `UIKit` /
> >       `NaturalLanguage`), whereas the Linux (IBus / Fcitx5) and Windows
> (TSF)
> >       engine in `Sources/VieLotusCoreWindows/` is a standalone
> zero-dependency
> >       C++20 implementation maintained directly in C++20 (there is no
> >       Swift-to-C++ transpiler or code generator producing
> >       `WindowsNativeEngine.cpp`).
> >     - We have permanently retired the old obfuscation policy for the
> C++20
> >       desktop/Linux engine.
> >
> > 2. Plaintext UTF-8 (Unicode NFC) wordlists, historical provenance &
> offline
> >     generator (all Expat / MIT):
> >     - Prior to v2.0.1, `WindowsNativeEngine.cpp` embedded 12 precomputed
> sorted
> >       64-bit FNV-1a lookup arrays (2,008 entries in total) inline without
> >       committing the plaintext wordlists alongside the C++ file.
> >     - For v2.0.1, all 12 phonotactic and bilingual collision-escape
> tables
> >       (2,008 / 2,008 entries, verified 100% bit-for-bit with zero hash
> >       collisions against the pre-2.0.1 tables) have been consolidated,
> audited,
> >       and committed as human-editable UTF-8 (Unicode NFC) plaintext
> wordlists at:
> >         `Sources/VieLotusCoreWindows/lexicon/00_initial_onsets.txt` ..
> >
>  `Sources/VieLotusCoreWindows/lexicon/11_extended_english_escapes.txt`
> >       Starting with v2.0.1, these `.txt` files are the sole canonical
> upstream
> >       maintenance source for the C++20 engine's lexical tables. Full
> per-table
> >       provenance, reconstitution notes, and format invariants are
> documented in
> >       `Sources/VieLotusCoreWindows/lexicon/README.md` and
> `debian/copyright`.
> >     - Added the deterministic, offline Python 3 generator (standard
> library
> >       only, no external dependencies, no network access):
> >         `Sources/VieLotusCoreWindows/scripts/generate_lexicon_hashes.py`
> >       which validates UTF-8, strict Unicode NFC normalization, lowercase
> BMP
> >       codepoints, duplicate freedom, and zero 64-bit FNV-1a collisions
> before
> >       emitting sorted lookup arrays.
> >
> > 3. Non-shadowable build-time regeneration & removal of binary fallback
> in CMake:
> >     - `CrossPlatform/capi-native/CMakeLists.txt` (with `python3:any` in
> >       `debian/control` `Build-Depends`) regenerates
> >
>  
> `${CMAKE_CURRENT_BINARY_DIR}/generated/VieLotusLexicon/WindowsNativeLexiconGenerated.inc`
> >       directly from `lexicon/*.txt` during every build, and
> >       `WindowsNativeEngine.cpp` includes it via
> >       `#include <VieLotusLexicon/WindowsNativeLexiconGenerated.inc>`.
> >     - No `.inc` file sits alongside `WindowsNativeEngine.cpp` and
> `prebuilt/` is
> >       not added to compiler include paths on Linux/Debian builds, so
> edits to
> >       `lexicon/*.txt` deterministically take effect on rebuild (verified
> via `-H`
> >       include traces and wordlist-mutation rebuild tests).
> >     - Removed the legacy prebuilt `.deb` extraction fallback from
> >       `CrossPlatform/capi-native/CMakeLists.txt`; CMake now fails
> immediately
> >       with `FATAL_ERROR` if any C++20 source file, wordlist, or
> generator script
> >       is missing.
> >
> > Please let me know if there are any remaining questions or further
> adjustments
> > needed for DFSG review. Thank you again for your time and guidance.
>
>
> Thank you for addressing the source-code concerns. That new version would
> sort out
> my major concerns.
>
> However, I would like to see the two following extra issues solved before
> sponsorship:
>
>
> 1. Telex input regression
>
> With the default Telex configuration and Smart Bilingual enabled, in
> my tests v2.0.1 changes:
>
>      off                 -> of
>      please turn off     -> please turn of
>
> Both inputs were correct in the previously reviewed 2.0.0 package.
> Please fix this regression.
>
>
> 2. Source tarball and upstream tag mismatch
>
> The submitted orig tarball differs from the v2.0.1 tag at commit
> 41e8892a96bebc12beee364e59983f46960ba4c5 in:
>
>      Sources/VieLotusCAPI/include/vielotus.h
>
> The tarball still declares seven unimplemented suggestion/loopback
> APIs that have already been removed from the tagged header.
> Please make the release tag and orig tarball consistent.
>
> Please prepare an updated package with these fixes. Thanks for your
> work on this project.
>
>
> Best,
> Boyuan Yang
>

Reply via email to