Add non-beta 1pw

This commit is contained in:
David Heinemeier Hansson
2026-05-19 19:10:14 +02:00
parent 465c1072a3
commit 315e60da7a
2 changed files with 113 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Do not add your user, or any others, to this group.
GROUP_NAME="onepassword"
app_group_exists() {
if [ $(getent group "${GROUP_NAME}") ]; then
true
else
false
fi
}
setup_browser_helper() {
# Setup the Core App Integration helper binary with the correct permissions and group
BROWSER_SUPPORT_PATH="/opt/1Password/1Password-BrowserSupport"
chgrp "${GROUP_NAME}" $BROWSER_SUPPORT_PATH
chmod g+s $BROWSER_SUPPORT_PATH
}
pre_install() {
if app_group_exists; then
: # Do nothing
else
groupadd "${GROUP_NAME}"
fi
}
pre_upgrade() {
if app_group_exists; then
: # Do nothing
else
groupadd "${GROUP_NAME}"
fi
}
post_install() {
setup_browser_helper
}
post_upgrade() {
setup_browser_helper
}
post_remove() {
if app_group_exists; then
groupdel "${GROUP_NAME}"
fi
}
+65
View File
@@ -0,0 +1,65 @@
pkgname=1password
_tarver=8.12.12
_tar="1password-${_tarver}.x64.tar.gz"
pkgver=${_tarver//-/_}
pkgrel=44
conflicts=('1password-beta' '1password-beta-bin')
pkgdesc="Password manager and secure wallet"
arch=('x86_64')
url='https://1password.com'
license=('LicenseRef-1Password-Proprietary')
options=(!strip)
install="1password.install"
source=(https://downloads.1password.com/linux/tar/stable/${CARCH}/${_tar}{,.sig})
sha256sums=('b5d86e0497825db7a90cde99f58aacea013994c521ef6b0e26e412bf84288f53'
'095cbc50cf6a6c47169d9353a12ac166d5a94c41ebbda4d671d7f7748b1250ad')
validpgpkeys=('3FEF9748469ADBE15DA7CA80AC2D62742012EA22')
package() {
depends=('hicolor-icon-theme' 'libgtk-3.so=0' 'nss' 'xdg-utils')
# Go to source directory
cd "1password-${_tarver}.x64"
# Install icons
resolutions=(32x32 64x64 256x256 512x512)
for resolution in "${resolutions[@]}"
do
install -Dm0644 "resources/icons/hicolor/${resolution}/apps/1password.png" \
"${pkgdir}/usr/share/icons/hicolor/${resolution}/apps/1password.png"
done
# Install desktop file
install -Dm0644 resources/1password.desktop -t "${pkgdir}"/usr/share/applications/
# Fill in policy kit file with a list of (the first 10) human users of the system.
export POLICY_OWNERS
POLICY_OWNERS="$(cut -d: -f1,3 /etc/passwd | grep -E ':[0-9]{4}$' | cut -d: -f1 | head -n 10 | sed 's/^/unix-user:/' | tr '\n' ' ')"
eval "cat <<EOF
$(cat ./com.1password.1Password.policy.tpl)
EOF" > ./com.1password.1Password.policy
# Install system unlock PolKit policy file
install -Dm0644 com.1password.1Password.policy -t "${pkgdir}"/usr/share/polkit-1/actions/
# Install examples
install -Dm0644 resources/custom_allowed_browsers -t "${pkgdir}"/usr/share/doc/1password/examples/
# Move package contents to /opt/1Password
cd "${srcdir}"
install -dm0755 "${pkgdir}"/opt
mv "1password-${_tarver}.x64" "${pkgdir}/opt/1Password"
# Cleanup un-needed files
rm "${pkgdir}"/opt/1Password/com.1password.1Password.policy "${pkgdir}"/opt/1Password/com.1password.1Password.policy.tpl "${pkgdir}"/opt/1Password/install_biometrics_policy.sh
rm -r "${pkgdir}"/opt/1Password/resources/icons/
rm "${pkgdir}"/opt/1Password/resources/1password.desktop "${pkgdir}"/opt/1Password/resources/custom_allowed_browsers
# Symlink /usr/bin executable to opt
install -dm0755 "${pkgdir}"/usr/bin
ln -s /opt/1Password/1password "${pkgdir}"/usr/bin/1password
# chrome-sandbox requires the setuid bit to be specifically set.
# See https://github.com/electron/electron/issues/17972
chmod 4755 "${pkgdir}"/opt/1Password/chrome-sandbox
}