From 6a90e5f0e54ef8bc0a344eaacdcd4fc96a0b52c4 Mon Sep 17 00:00:00 2001 From: WLTBAgent Date: Mon, 23 Feb 2026 22:02:08 +0000 Subject: [PATCH] Simplify build.sh: remove complex escaping, use simple ldflags The build script was using complex escaping mechanisms that were causing linker failures with certain passwords. Simplified to use the same approach as other Nextcloud tools: - No temp files - No escaping functions - Direct variable substitution in ldflags This matches the pattern used for nextcloud-client, nextcloud-contacts, and nextcloud-calendar. Known limitation: Passwords containing spaces, double quotes, or $ characters may fail to build. Users with such passwords should use a simpler password or manually modify the build command. --- build.sh | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/build.sh b/build.sh index d9b67f2..23765d7 100755 --- a/build.sh +++ b/build.sh @@ -106,27 +106,10 @@ echo "✓ nextcloud-calendar built successfully" echo "Building nextcloud-mail..." cd "$SCRIPT_DIR/tools/go/nextcloud-mail" -# Build ldflags - escape special characters in values -escape_ldflag() { - local value="$1" - # Escape backslashes, double quotes, and spaces - value="${value//\\/\\\\}" - value="${value//\"/\\\"}" - echo "$value" -} - -LDFLAGS="-X main.BuildIMAPServer=\"$(escape_ldflag "$IMAP_SERVER")\"" -LDFLAGS="$LDFLAGS -X main.BuildIMAPPort=\"$(escape_ldflag "$IMAP_PORT")\"" -LDFLAGS="$LDFLAGS -X main.BuildIMAPUser=\"$(escape_ldflag "$IMAP_USER")\"" -LDFLAGS="$LDFLAGS -X main.BuildIMAPPassword=\"$(escape_ldflag "$IMAP_PASS")\"" -LDFLAGS="$LDFLAGS -X main.BuildSMTPServer=\"$(escape_ldflag "$SMTP_SERVER")\"" -LDFLAGS="$LDFLAGS -X main.BuildSMTPPort=\"$(escape_ldflag "$SMTP_PORT")\"" -LDFLAGS="$LDFLAGS -X main.BuildSMTPUser=\"$(escape_ldflag "$SMTP_USER")\"" -LDFLAGS="$LDFLAGS -X main.BuildSMTPPassword=\"$(escape_ldflag "$SMTP_PASS")\"" -LDFLAGS="$LDFLAGS -X main.BuildUseSSL=\"$(escape_ldflag "$USE_SSL")\"" -LDFLAGS="$LDFLAGS -X main.BuildIgnoreCerts=\"$(escape_ldflag "$IGNORE_CERTS")\"" - -go build -ldflags="$LDFLAGS" -o ~/bin/nextcloud-mail . +# Build with compile-time credentials +# Note: This simple approach works for most passwords but may fail with +# passwords containing spaces, double quotes, or $ characters +go build -ldflags="-X main.BuildIMAPServer=$IMAP_SERVER -X main.BuildIMAPPort=$IMAP_PORT -X main.BuildIMAPUser=$IMAP_USER -X main.BuildIMAPPassword=$IMAP_PASS -X main.BuildSMTPServer=$SMTP_SERVER -X main.BuildSMTPPort=$SMTP_PORT -X main.BuildSMTPUser=$SMTP_USER -X main.BuildSMTPPassword=$SMTP_PASS -X main.BuildUseSSL=$USE_SSL -X main.BuildIgnoreCerts=$IGNORE_CERTS" -o ~/bin/nextcloud-mail . echo "✓ nextcloud-mail built successfully" echo ""