mirror of
https://github.com/YunoHost-Apps/seafile_ynh.git
synced 2024-09-03 20:26:01 +02:00
Use venv instead of user for pip for bookworm compat
This commit is contained in:
parent
5608d53bce
commit
f8db1e5f91
3 changed files with 33 additions and 10 deletions
|
@ -112,7 +112,7 @@ ram.runtime = "500M"
|
||||||
|
|
||||||
[resources.apt]
|
[resources.apt]
|
||||||
packages = ["expect", "ffmpeg", "pkgconf", "mariadb-server",
|
packages = ["expect", "ffmpeg", "pkgconf", "mariadb-server",
|
||||||
"python3", "python3-setuptools", "python3-pip", "python3-requests", "python3-dev", "libmariadb-dev-compat", "libmariadb-dev",
|
"python3", "python3-venv", "python3-setuptools", "python3-pip", "python3-requests", "python3-dev", "libmariadb-dev-compat", "libmariadb-dev",
|
||||||
"memcached", "libmemcached-dev",
|
"memcached", "libmemcached-dev",
|
||||||
"python3-scipy", "python3-matplotlib",
|
"python3-scipy", "python3-matplotlib",
|
||||||
"libjpeg62-turbo-dev", "zlib1g-dev", "libffi-dev"]
|
"libjpeg62-turbo-dev", "zlib1g-dev", "libffi-dev"]
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
time_zone=$(cat /etc/timezone)
|
time_zone=$(cat /etc/timezone)
|
||||||
|
python_version="$(python3 -V | cut -d' ' -f2 | cut -d. -f1-2)"
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# DEFINE ALL COMMON FONCTIONS
|
# DEFINE ALL COMMON FONCTIONS
|
||||||
|
@ -10,13 +11,39 @@ time_zone=$(cat /etc/timezone)
|
||||||
|
|
||||||
install_dependance() {
|
install_dependance() {
|
||||||
ynh_add_swap --size=2000
|
ynh_add_swap --size=2000
|
||||||
# We need to do that because we can have some issue about the permission access to the pip cache without this
|
|
||||||
chown -R $YNH_APP_ID $install_dir
|
# Clean venv is it was on python3 with old version in case major upgrade of debian
|
||||||
chmod u+rwX -R $install_dir
|
if [ ! -e $install_dir/venv/bin/python3 ] || [ ! -e $install_dir/venv/lib/python$python_version ]; then
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/bin
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/lib
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/lib64
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/include
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/share
|
||||||
|
ynh_secure_remove --file=$install_dir/venv/pyvenv.cfg
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create venv if it don't exist
|
||||||
|
test -e $install_dir/venv/bin/python3 || python3 -m venv $install_dir/venv
|
||||||
|
|
||||||
|
u_arg='u'
|
||||||
|
set +$u_arg;
|
||||||
|
source $install_dir/venv/bin/activate
|
||||||
|
set -$u_arg;
|
||||||
|
|
||||||
# Note that we install imageio to force the dependance, without this imageio 2.8 is installed and it need python3.5
|
# Note that we install imageio to force the dependance, without this imageio 2.8 is installed and it need python3.5
|
||||||
sudo -u $YNH_APP_ID pip3 install --user --no-warn-script-location --upgrade future mysqlclient PyMySQL 'Pillow<10.0.0' pylibmc captcha Jinja2 'SQLAlchemy<2' psd-tools django-pylibmc django-simple-captcha python3-ldap pycryptodome==3.12.0 cffi==1.14.0 lxml
|
pip3 install --upgrade future mysqlclient PyMySQL 'Pillow<10.0.0' pylibmc captcha Jinja2 'SQLAlchemy<2' psd-tools django-pylibmc django-simple-captcha python3-ldap pycryptodome==3.12.0 cffi==1.14.0 lxml
|
||||||
|
|
||||||
|
set +$u_arg;
|
||||||
|
deactivate
|
||||||
|
set -$u_arg;
|
||||||
ynh_del_swap
|
ynh_del_swap
|
||||||
|
|
||||||
|
# Create symbolic link to venv package on seahub
|
||||||
|
ls $install_dir/venv/lib/python$python_version/site-packages | while read f; do
|
||||||
|
if [ ! -e "$install_dir/seafile-server-$seafile_version/seahub/thirdpart/$f" ]; then
|
||||||
|
ln -s ../../../venv/lib/python$python_version/site-packages/$f $install_dir/seafile-server-$seafile_version/seahub/thirdpart/$f
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
mv_expect_scripts() {
|
mv_expect_scripts() {
|
||||||
|
@ -28,7 +55,7 @@ mv_expect_scripts() {
|
||||||
|
|
||||||
set_permission() {
|
set_permission() {
|
||||||
chown -R $YNH_APP_ID:$YNH_APP_ID $install_dir
|
chown -R $YNH_APP_ID:$YNH_APP_ID $install_dir
|
||||||
chmod -R u+rw,g-wx,o= $install_dir
|
chmod -R u+rwX,g-wx,o= $install_dir
|
||||||
setfacl -m user:www-data:rX $install_dir
|
setfacl -m user:www-data:rX $install_dir
|
||||||
setfacl -m user:www-data:rX $install_dir/seafile-server-$seafile_version
|
setfacl -m user:www-data:rX $install_dir/seafile-server-$seafile_version
|
||||||
# At install time theses directory are not available
|
# At install time theses directory are not available
|
||||||
|
@ -36,7 +63,6 @@ set_permission() {
|
||||||
test -e $install_dir/seafile-server-latest/seahub/media && setfacl -R -m user:www-data:rX $install_dir/seafile-server-latest/seahub/media
|
test -e $install_dir/seafile-server-latest/seahub/media && setfacl -R -m user:www-data:rX $install_dir/seafile-server-latest/seahub/media
|
||||||
test -e $install_dir/seahub-data && setfacl -R -m user:www-data:rX $install_dir/seahub-data
|
test -e $install_dir/seahub-data && setfacl -R -m user:www-data:rX $install_dir/seahub-data
|
||||||
|
|
||||||
# check that this directory exist because in some really old install the data could still be in the main seafile directory
|
|
||||||
# We also check at the install time when data directory is not already initialised
|
# We also check at the install time when data directory is not already initialised
|
||||||
if [ -e /home/yunohost.app/seafile-data ]; then
|
if [ -e /home/yunohost.app/seafile-data ]; then
|
||||||
chown -R $YNH_APP_ID /home/yunohost.app/seafile-data
|
chown -R $YNH_APP_ID /home/yunohost.app/seafile-data
|
||||||
|
|
|
@ -24,9 +24,6 @@ seafile_version=$(ynh_app_upstream_version)
|
||||||
ynh_script_progression --message="Restoring files..." --weight=10
|
ynh_script_progression --message="Restoring files..." --weight=10
|
||||||
ynh_restore
|
ynh_restore
|
||||||
|
|
||||||
# Restore dependencies
|
|
||||||
install_dependance
|
|
||||||
|
|
||||||
# Restore mysql dump
|
# Restore mysql dump
|
||||||
ynh_script_progression --message="Restoring database..." --weight=3
|
ynh_script_progression --message="Restoring database..." --weight=3
|
||||||
db_helper=ynh_"mysql"_setup_db
|
db_helper=ynh_"mysql"_setup_db
|
||||||
|
|
Loading…
Reference in a new issue