feat(identity): rename user-visible identity to voculinux with one-time legacy import

The fork takes its own name everywhere a user can see it: binaries
(voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus
namespace (com.voculinux.Voculinux, no alias for the old name),
config/data/cache dirs, single-instance lock, IBus engine identity,
tray icons, resource prefixes, VOCULINUX_* environment names, and the
update-checker user agent. The internal Python module stays vocalinux
and the distribution metadata keeps the upstream URLs as provenance.

On first run a previous Vocalinux install's config.json, custom
dictionary, and portal restore token are copied once into the new
locations (new config always wins, no merge, no write-back); models
re-resolve through the pinned-checksum download path. An offline
naming-sweep test proves no old-name strings remain on user-visible
surfaces outside the allowlist.

Refs #18
This commit is contained in:
soubarnak
2026-11-06 01:29:39 +05:30
parent c565e6d946
commit ea7be5f111
251 changed files with 2449 additions and 1991 deletions
+8 -8
View File
@@ -191,7 +191,7 @@ install_whisper_model() {
print_info "Downloading Whisper tiny model..."
print_info "This may take a few minutes depending on your internet connection."
local TEMP_FILE="$VOCALINUX_TMP_DIR/tiny.pt"
local TEMP_FILE="$VOCULINUX_TMP_DIR/tiny.pt"
if ! download_model_file "$TINY_MODEL_URL" "$TEMP_FILE" "Whisper model"; then
return 1
@@ -214,7 +214,7 @@ install_whisper_model() {
print_success "Whisper tiny model installed successfully ($MODEL_SIZE)"
# Create a marker file to indicate this model was pre-installed
echo "$(date)" > "$WHISPER_DIR/.vocalinux_preinstalled"
echo "$(date)" > "$WHISPER_DIR/.voculinux_preinstalled"
return 0
else
@@ -241,7 +241,7 @@ install_vosk_models() {
# is deleted after unpacking. So whoever unpacks it records the verified zip
# digest in a stamp (here, and in the app's own downloader), and the directory
# is trusted only while that stamp matches what we pin today.
local SMALL_MODEL_STAMP="$SMALL_MODEL_PATH/.vocalinux_verified"
local SMALL_MODEL_STAMP="$SMALL_MODEL_PATH/.voculinux_verified"
local EXPECTED_ZIP_DIGEST
EXPECTED_ZIP_DIGEST=$(pinned_digest_for "$SMALL_MODEL_ARCHIVE" || true)
if [ -d "$SMALL_MODEL_PATH" ]; then
@@ -282,7 +282,7 @@ install_vosk_models() {
print_info "Downloading small VOSK model (approximately 40MB)..."
print_info "This may take a few minutes depending on your internet connection."
local TEMP_ZIP="$VOCALINUX_TMP_DIR/$(basename $SMALL_MODEL_URL)"
local TEMP_ZIP="$VOCULINUX_TMP_DIR/$(basename $SMALL_MODEL_URL)"
if ! download_model_file "$SMALL_MODEL_URL" "$TEMP_ZIP" "VOSK model"; then
return 1
@@ -334,13 +334,13 @@ install_vosk_models() {
fi
chmod -R 755 "$STAGING_DIR/$SMALL_MODEL_NAME"
echo "$(date)" > "$STAGING_DIR/$SMALL_MODEL_NAME/.vocalinux_preinstalled"
echo "$(date)" > "$STAGING_DIR/$SMALL_MODEL_NAME/.voculinux_preinstalled"
# Record the digest this tree was extracted from, so a later run can tell a
# verified model from one that merely exists. Written before the swap: an
# unstamped tree is one this function would download all over again.
if [ -z "$EXPECTED_ZIP_DIGEST" ] ||
! printf '%s\n' "$EXPECTED_ZIP_DIGEST" > "$STAGING_DIR/$SMALL_MODEL_NAME/.vocalinux_verified"; then
! printf '%s\n' "$EXPECTED_ZIP_DIGEST" > "$STAGING_DIR/$SMALL_MODEL_NAME/.voculinux_verified"; then
print_error "Could not record the verified digest for $SMALL_MODEL_NAME"
rm -rf "$STAGING_DIR"
return 1
@@ -418,7 +418,7 @@ install_whispercpp_model() {
print_info "Downloading whisper.cpp tiny model..."
print_info "This may take a few minutes depending on your internet connection."
local TEMP_FILE="$VOCALINUX_TMP_DIR/ggml-tiny.bin"
local TEMP_FILE="$VOCULINUX_TMP_DIR/ggml-tiny.bin"
if ! download_model_file "$TINY_MODEL_URL" "$TEMP_FILE" "whisper.cpp model"; then
return 1
@@ -441,7 +441,7 @@ install_whispercpp_model() {
print_success "whisper.cpp tiny model installed successfully ($MODEL_SIZE)"
# Create a marker file to indicate this model was pre-installed
echo "$(date)" > "$WHISPERCPP_DIR/.vocalinux_preinstalled"
echo "$(date)" > "$WHISPERCPP_DIR/.voculinux_preinstalled"
return 0
else