Use system ICU module and remove local build

Stop backing up and restoring a locally built libicu and instead symlink the distribution ICU module (/usr/lib/x86_64-linux-gnu/mod_icu.so) into /opt/linkding/libicu.so. Add libsqlite3-mod-icu to dependencies and create the symlink after building the frontend. Remove the entire manual download/compile flow for the SQLite ICU extension and its related backups, simplifying installation and relying on the system-provided ICU extension.
This commit is contained in:
CanbiZ (MickLesk) 2026-02-09 14:41:22 +01:00
parent d2bbeed04d
commit 1eb0cc55ff
2 changed files with 4 additions and 17 deletions

View File

@ -37,7 +37,6 @@ function update_script() {
msg_info "Backing up Data"
cp -r /opt/linkding/data /opt/linkding_data_backup
cp /opt/linkding/.env /opt/linkding_env_backup
cp /opt/linkding/libicu.so /opt/linkding_libicu_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding"
@ -45,8 +44,8 @@ function update_script() {
msg_info "Restoring Data"
cp -r /opt/linkding_data_backup/. /opt/linkding/data
cp /opt/linkding_env_backup /opt/linkding/.env
cp /opt/linkding_libicu_backup /opt/linkding/libicu.so
rm -rf /opt/linkding_data_backup /opt/linkding_env_backup /opt/linkding_libicu_backup
rm -rf /opt/linkding_data_backup /opt/linkding_env_backup
ln -sf /usr/lib/x86_64-linux-gnu/mod_icu.so /opt/linkding/libicu.so
msg_ok "Restored Data"
msg_info "Updating ${APP}"

View File

@ -22,6 +22,7 @@ $STD apt-get install -y \
libpq-dev \
libicu-dev \
libsqlite3-dev \
libsqlite3-mod-icu \
libffi-dev
msg_ok "Installed Dependencies"
@ -33,22 +34,9 @@ msg_info "Building Frontend"
cd /opt/linkding
$STD npm ci
$STD npm run build
ln -sf /usr/lib/x86_64-linux-gnu/mod_icu.so /opt/linkding/libicu.so
msg_ok "Built Frontend"
msg_info "Compiling SQLite ICU Extension"
cd /tmp
SQLITE_RELEASE_YEAR=2023
SQLITE_RELEASE=3430000
$STD wget https://www.sqlite.org/${SQLITE_RELEASE_YEAR}/sqlite-amalgamation-${SQLITE_RELEASE}.zip
$STD unzip -o sqlite-amalgamation-${SQLITE_RELEASE}.zip
cp sqlite-amalgamation-${SQLITE_RELEASE}/sqlite3.h .
cp sqlite-amalgamation-${SQLITE_RELEASE}/sqlite3ext.h .
$STD wget "https://www.sqlite.org/src/raw/ext/icu/icu.c?name=91c021c7e3e8bbba286960810fa303295c622e323567b2e6def4ce58e4466e60" -O icu.c
$STD gcc -fPIC -shared icu.c $(pkg-config --libs --cflags icu-uc icu-io) -o /opt/linkding/libicu.so
rm -rf sqlite-amalgamation-${SQLITE_RELEASE}* icu.c sqlite3.h sqlite3ext.h
cd /opt/linkding
msg_ok "Compiled SQLite ICU Extension"
msg_info "Setting up linkding"
rm -f bookmarks/settings/dev.py
touch bookmarks/settings/custom.py