Use kiosk home directory for talkkonnect build (fixes permission errors)
Changed from /tmp to ~/talkkonnect to match working script approach: - Clone to /home/$KIOSK_USER/talkkonnect instead of /tmp/talkkonnect-src - Build to ~/talkkonnect-binary then copy to ~/go/bin/talkkonnect - Run all operations as kiosk user from the start - No chown needed - user owns their own home directory This eliminates all "Permission denied" errors when: - Creating vendor directory - Removing old source files - Building the binary Matches the proven approach from talkkonnect_complete_install.sh
This commit is contained in:
+22
-14
@@ -220,16 +220,10 @@ install_talkkonnect_with_config() {
|
|||||||
sudo apt install -y libopenal-dev libopus-dev libopus0 libopusfile-dev alsa-utils portaudio19-dev git build-essential pkg-config
|
sudo apt install -y libopenal-dev libopus-dev libopus0 libopusfile-dev alsa-utils portaudio19-dev git build-essential pkg-config
|
||||||
|
|
||||||
echo "[3/4] Cloning and building talkkonnect..."
|
echo "[3/4] Cloning and building talkkonnect..."
|
||||||
local tk_src="/tmp/talkkonnect-src"
|
|
||||||
rm -rf "$tk_src"
|
|
||||||
git clone https://github.com/talkkonnect/talkkonnect.git "$tk_src"
|
|
||||||
|
|
||||||
# Change ownership so kiosk user can write to vendor directory
|
|
||||||
sudo chown -R "$KIOSK_USER:$KIOSK_USER" "$tk_src"
|
|
||||||
|
|
||||||
echo "Building (this takes 5-10 minutes)..."
|
echo "Building (this takes 5-10 minutes)..."
|
||||||
|
|
||||||
# Build as kiosk user with proper environment
|
# Build as kiosk user with proper environment (using their home directory to avoid permission issues)
|
||||||
sudo -u "$KIOSK_USER" bash -c "
|
sudo -u "$KIOSK_USER" bash -c "
|
||||||
export PATH=/usr/local/go/bin:\$PATH
|
export PATH=/usr/local/go/bin:\$PATH
|
||||||
export HOME=/home/$KIOSK_USER
|
export HOME=/home/$KIOSK_USER
|
||||||
@@ -238,7 +232,16 @@ install_talkkonnect_with_config() {
|
|||||||
|
|
||||||
mkdir -p /home/$KIOSK_USER/go/bin
|
mkdir -p /home/$KIOSK_USER/go/bin
|
||||||
|
|
||||||
cd '$tk_src' || exit 1
|
# Clone to kiosk user's home directory (avoids /tmp permission issues)
|
||||||
|
cd /home/$KIOSK_USER || exit 1
|
||||||
|
|
||||||
|
if [[ -d talkkonnect ]]; then
|
||||||
|
echo 'Removing existing talkkonnect directory...'
|
||||||
|
rm -rf talkkonnect
|
||||||
|
fi
|
||||||
|
|
||||||
|
git clone https://github.com/talkkonnect/talkkonnect.git
|
||||||
|
cd talkkonnect || exit 1
|
||||||
|
|
||||||
echo 'Creating vendored dependencies...'
|
echo 'Creating vendored dependencies...'
|
||||||
go mod vendor
|
go mod vendor
|
||||||
@@ -506,10 +509,10 @@ EOFOPUS
|
|||||||
cd cmd/talkkonnect || exit 1
|
cd cmd/talkkonnect || exit 1
|
||||||
|
|
||||||
echo 'Compiling with vendored dependencies...'
|
echo 'Compiling with vendored dependencies...'
|
||||||
go build -mod=vendor -v -o /home/$KIOSK_USER/go/bin/talkkonnect . 2>&1 | tail -20
|
go build -mod=vendor -v -o /home/$KIOSK_USER/talkkonnect-binary . 2>&1 | tail -20
|
||||||
|
|
||||||
if [[ -f /home/$KIOSK_USER/go/bin/talkkonnect ]]; then
|
if [[ -f /home/$KIOSK_USER/talkkonnect-binary ]]; then
|
||||||
chmod +x /home/$KIOSK_USER/go/bin/talkkonnect
|
chmod +x /home/$KIOSK_USER/talkkonnect-binary
|
||||||
echo 'Build successful'
|
echo 'Build successful'
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
@@ -519,7 +522,6 @@ EOFOPUS
|
|||||||
"
|
"
|
||||||
|
|
||||||
local build_result=$?
|
local build_result=$?
|
||||||
rm -rf "$tk_src"
|
|
||||||
|
|
||||||
if [[ $build_result -ne 0 ]]; then
|
if [[ $build_result -ne 0 ]]; then
|
||||||
log_error "Build failed"
|
log_error "Build failed"
|
||||||
@@ -532,13 +534,19 @@ EOFOPUS
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verify binary
|
# Verify and install binary
|
||||||
if [[ ! -x "/home/$KIOSK_USER/go/bin/talkkonnect" ]]; then
|
if [[ ! -x "/home/$KIOSK_USER/talkkonnect-binary" ]]; then
|
||||||
log_error "Binary not executable after build"
|
log_error "Binary not executable after build"
|
||||||
pause
|
pause
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Installing binary..."
|
||||||
|
sudo cp /home/$KIOSK_USER/talkkonnect-binary /home/$KIOSK_USER/go/bin/talkkonnect
|
||||||
|
sudo chmod +x /home/$KIOSK_USER/go/bin/talkkonnect
|
||||||
|
sudo chown "$KIOSK_USER:$KIOSK_USER" /home/$KIOSK_USER/go/bin/talkkonnect
|
||||||
|
rm -f /home/$KIOSK_USER/talkkonnect-binary
|
||||||
|
|
||||||
log_success "talkkonnect built successfully"
|
log_success "talkkonnect built successfully"
|
||||||
|
|
||||||
echo "[4/4] Creating configuration..."
|
echo "[4/4] Creating configuration..."
|
||||||
|
|||||||
Reference in New Issue
Block a user