From 6e7e9e3a20a15ba4018a745574e124309b3d8fa0 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 30 Jul 2021 16:26:53 +0200 Subject: [PATCH] Upgrade to 0.11.2~ynh1 --- README.md | 2 +- README_fr.md | 2 +- conf/iframely.config.local.js | 72 +++++++++++------------------------ manifest.json | 2 +- scripts/_common.sh | 18 +++++---- scripts/install | 47 ++++++++++++----------- scripts/upgrade | 44 ++++++++++----------- 7 files changed, 83 insertions(+), 104 deletions(-) diff --git a/README.md b/README.md index 8dfea55..a9303cb 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in A link aggregator / Reddit clone for the fediverse. -**Shipped version:** 0.9.9~ynh1 +**Shipped version:** 0.11.2~ynh1 **Demo:** https://join.lemmy.ml/join/ diff --git a/README_fr.md b/README_fr.md index e3ab297..e960d11 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour -**Version incluse :** 0.9.9~ynh1 +**Version incluse :** 0.11.2~ynh1 **Démo :** https://join.lemmy.ml/join/ diff --git a/conf/iframely.config.local.js b/conf/iframely.config.local.js index 668043f..1381fb0 100644 --- a/conf/iframely.config.local.js +++ b/conf/iframely.config.local.js @@ -58,7 +58,7 @@ - memcached - https://github.com/3rd-Eden/node-memcached */ CACHE_ENGINE: 'node-cache', - CACHE_TTL: 0, // In seconds. + CACHE_TTL: 0, // In seconds. // 0 = 'never expire' for memcached & node-cache to let cache engine decide itself when to evict the record // 0 = 'no cache' for redis. Use high enough (e.g. 365*24*60*60*1000) ttl for similar 'never expire' approach instead @@ -104,31 +104,16 @@ // DISABLE_HTTP2: true, // Customize API calls to oembed endpoints. - // Must have: please add your `access_token` for Facebook and Instagram API calls ADD_OEMBED_PARAMS: [{ - - re: [ // Endpoint's URL regexp array. - /^https:\/\/graph\.facebook\.com\/v\d+\.\d+\/instagram_oembed/i - ], - params: { // Custom query-string params object. - - // TODO: get your access Insagtam token as described - // on https://developers.facebook.com/docs/instagram/oembed/ - access_token: '', // The simplest way is - // to use `{app-id}|{app secret}` as access token - - // Add any other optional params + // Endpoint url regexp array. + re: [/^http:\/\/api\.instagram\.com\/oembed/], + // Custom get params object. + params: { hidecaption: true } }, { - re: [/^https:\/\/graph\.facebook\.com\/v\d+\.\d+\/oembed_page/i], + re: [/^https:\/\/www\.facebook\.com\/plugins\/page\/oembed\.json/i], params: { - // TODO: get your access token as described - // on https://developers.facebook.com/docs/plugins/oembed - access_token: '', // The simplest way is - // to use `{app-id}|{app secret}` as access token - - // Add any other optional params show_posts: 0, show_facepile: 0, maxwidth: 600 @@ -141,24 +126,20 @@ limit: 1, maxwidth: 600 } + /* }, { - // Facebook https://developers.facebook.com/docs/plugins/oembed/ - re: [/^https:\/\/graph\.facebook\.com\/v\d+\.\d+\/oembed_/i], + // Facebook https://developers.facebook.com/docs/plugins/oembed-endpoints + re: [/^https:\/\/www\.facebook\.com\/plugins\/\w+\/oembed\.json/i], params: { - // TODO: get your access token as described - // on https://developers.facebook.com/docs/plugins/oembed - access_token: '', // The simplest way is - // to use `{app-id}|{app secret}` as access token - - // Add any other optional params, like skip script tag and fb-root div - // omitscript: true + // Skip script tag and fb-root div. + omitscript: true } + */ }], - /* Configure use of HTTP proxies as needed. - You don't have to specify all options per regex - just what you need to override - */ /* + // Configure use of HTTP proxies as needed. + // You don't have to specify all options per regex - just what you need to override PROXY: [{ re: [/^https?:\/\/www\.domain\.com/], proxy_server: 'http://1.2.3.4:8080', @@ -171,16 +152,14 @@ // Refer to: https://github.com/request/request // Overrides previous params if overlapped. }, - cache_ttl: 3600, // in seconds, cache response for 1 hour. disable_http2: true }], */ // Customize API calls to 3rd parties. At the very least - configure required keys. - // For available provider options - please see the code of its domain plugin. providerOptions: { - locale: "en_US", // ISO 639-1 two-letter language code, e.g. en_CA or fr_CH. - // Will be added as highest priotity in accept-language header with each request. + locale: "en_US", // ISO 639-1 two-letter language code, e.g. en_CA or fr_CH. + // Will be added as highest priotity in accept-language header with each request. // Plus is used in FB, YouTube and perhaps other plugins "twitter": { "max-width": 550, @@ -224,18 +203,21 @@ // It is probably the same API key you use for Google Maps. youtube: { // api_key: "INSERT YOUR VALUE", - // parts: [ "snippet", "player" ], // list of fields you want to use in the request, in most cases you only need those two get_params: "?rel=0&showinfo=1" // https://developers.google.com/youtube/player_parameters }, vimeo: { get_params: "?byline=0&badge=0" // https://developer.vimeo.com/player/embedding }, + + /* soundcloud: { old_player: true // enables classic player }, giphy: { media_only: true // disables branded player for gifs and returns just the image - }, + } + */ + /* bandcamp: { get_params: '/size=large/bgcol=333333/linkcol=ffffff/artwork=small/transparent=true/', media: { @@ -248,11 +230,7 @@ 'max-width': 700 } } - }, - // Docs: https://dev.twitch.tv/docs/embed/video-and-clips - twitch: { - parent: 'jsbin.com, null.jsbin.com, localhost' - }, + } */ }, @@ -298,11 +276,7 @@ // And this is AWS metadata service // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html /^https?:\/\/169\.254\.169\.254/ - ], - - // Endpoint for prerender service, if you need it. Used to parse React apps. Very slow. - // Tested with https://github.com/prerender/prerender - // PRERENDER_URL: "https://domain/render?url=" + ] }; module.exports = config; diff --git a/manifest.json b/manifest.json index cb58aa6..4a3cfbc 100644 --- a/manifest.json +++ b/manifest.json @@ -5,7 +5,7 @@ "description": { "en": "A link aggregator / Reddit clone for the fediverse." }, - "version": "0.9.9~ynh1", + "version": "0.11.2~ynh1", "url": "https://join.lemmy.ml/", "upstream": { "license": "GPL-3.0", diff --git a/scripts/_common.sh b/scripts/_common.sh index b1b4f5b..35c4880 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -7,20 +7,24 @@ # dependencies used by the app lemmy_dependencies="postgresql postgresql-contrib" lemmyui_dependencies="espeak" -iframely_dependencies="musl-dev" -pictrs_dependencies="bash-completion ffmpeg clang pkg-config libgexiv2-dev libgexiv2-2" +imagemagick_build_dependencies="libltdl-dev libjpeg-dev libpng-dev libwebp-dev liblzma-dev libxml2-dev" imagemagick_dependencies="" +pictrs_build_dependencies="pkg-config build-essential libgexiv2-dev libxml2 libltdl7 libavcodec-dev libavfilter-dev libavdevice-dev libavformat-dev libavresample-dev libavutil-dev libswscale-dev libswresample-dev llvm-dev libclang-dev clang" +pictrs_dependencies="libgexiv2-2 libpng16-16 libjpeg62-turbo libwebp6 libwebpdemux2 libwebpmux3 libltdl7 libgomp1 libxml2 libavcodec58 libavfilter7 libavdevice58 libavformat58 libavresample4 libavutil56 libswscale5 libswresample3 tini" +iframely_dependencies="musl-dev" -pkg_dependencies="$lemmy_dependencies $lemmyui_dependencies $iframely_dependencies $pictrs_dependencies $imagemagick_dependencies" -# libssl-dev libc6-dev libpq-dev libavutil-dev libavformat-dev libavfilter-dev libavdevice-dev libavresample-dev libjpeg-turbo-progs libpng-dev +pkg_dependencies="$lemmy_dependencies $lemmyui_dependencies $imagemagick_dependencies $pictrs_dependencies $iframely_dependencies" +pkg_build_dependencies="$imagemagick_build_dependencies $pictrs_build_dependencies" NODEJS_VERSION=12 -LEMMY_VERSION=0.11.0 +LEMMY_VERSION=0.11.2 -LEMMYUI_VERSION=0.11.0 +LEMMYUI_VERSION=0.11.2 -PICTRS_VERSION=v0.2.6-r1 +PICTRS_VERSION=v0.2.6-r2 + +IFRAMELY_VERSION=latest #================================================= # PERSONAL HELPERS diff --git a/scripts/install b/scripts/install index 950ed35..2a3eb6a 100755 --- a/scripts/install +++ b/scripts/install @@ -78,7 +78,7 @@ ynh_app_setting_set --app=$app --key=port_iframely --value=$port_iframely #================================================= ynh_script_progression --message="Installing dependencies..." -ynh_install_app_dependencies $pkg_dependencies +ynh_install_app_dependencies $pkg_dependencies $pkg_build_dependencies ynh_install_nodejs --nodejs_version=$NODEJS_VERSION ynh_use_nodejs ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1 @@ -112,11 +112,11 @@ ynh_script_progression --message="Setting up source files..." ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$final_path/build-lemmy/" --source_id="docker-image-extract" -ynh_setup_source --dest_dir="$final_path/build-pict-rs/" --source_id="pict-rs" ynh_setup_source --dest_dir="$final_path/build-lemmy-ui/" --source_id="docker-image-extract" ynh_setup_source --dest_dir="$final_path/lemmy-ui/lemmy-translations/" --source_id="lemmy-translations" -ynh_setup_source --dest_dir="$final_path/build-iframely/" --source_id="docker-image-extract" ynh_setup_source --dest_dir="$final_path/build-imagemagick/" --source_id="imagemagick" +ynh_setup_source --dest_dir="$final_path/build-pict-rs/" --source_id="pict-rs" +ynh_setup_source --dest_dir="$final_path/build-iframely/" --source_id="docker-image-extract" chmod 750 "$final_path" chmod -R o-rwx "$final_path" @@ -159,6 +159,23 @@ mkdir -p "$final_path/lemmy/" mv -f "$final_path/build-lemmy/output/app/lemmy" "$final_path/lemmy/lemmy" ynh_secure_remove --file="$final_path/build-lemmy" +# Install lemmy-ui +pushd $final_path/build-lemmy-ui + ./docker-image-extract dessalines/lemmy-ui:$LEMMYUI_VERSION +popd +mkdir -p "$final_path/lemmy-ui/" +rsync -a "$final_path/build-lemmy-ui/output/app/" "$final_path/lemmy-ui/" +ynh_secure_remove --file="$final_path/build-lemmy-ui" + +# Install ImageMagick +pushd "$final_path/build-imagemagick/" + ./configure --with-modules + make + make install + ldconfig /usr/local/lib +popd +ynh_secure_remove --file="$final_path/build-imagemagick" + # Install rustup with the toolchain needed by pict-rs pushd "$final_path" sudo -u "$app" RUSTUP_HOME="$final_path"/.rustup CARGO_HOME="$final_path"/.cargo bash -c 'curl -sSf -L https://static.rust-lang.org/rustup.sh | sh -s -- -y --default-toolchain nightly' @@ -176,31 +193,15 @@ ynh_secure_remove --file="$final_path/build-pict-rs" ynh_secure_remove --file="$final_path/.cargo" ynh_secure_remove --file="$final_path/.rustup" -# Install lemmy-ui -pushd $final_path/build-lemmy-ui - ./docker-image-extract dessalines/lemmy-ui:$LEMMYUI_VERSION -popd -mkdir -p "$final_path/lemmy-ui/" -rsync -a "$final_path/build-lemmy-ui/output/app/" "$final_path/lemmy-ui/" -ynh_secure_remove --file="$final_path/build-lemmy-ui" - # Install iframely pushd $final_path/build-iframely - ./docker-image-extract dogbin/iframely:latest + ./docker-image-extract dogbin/iframely:$IFRAMELY_VERSION popd mkdir -p "$final_path/iframely/" rsync -a "$final_path/build-iframely/output/iframely/" "$final_path/iframely/" ynh_secure_remove --file="$final_path/build-iframely" -# Install ImageMagick -pushd "$final_path/build-imagemagick/" - ./configure --with-modules - make - make install - ldconfig /usr/local/lib -popd -ynh_secure_remove --file="$final_path/build-imagemagick" - +ynh_install_app_dependencies $pkg_dependencies chmod 750 "$final_path" chmod -R o-rwx "$final_path" chown -R $app:$app "$final_path" @@ -254,8 +255,8 @@ ynh_script_progression --message="Integrating service in YunoHost..." yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" yunohost service add $app-ui --description="A short description of the app" --log="/var/log/$app/$app-ui.log" -yunohost service add $app-iframely --description="A short description of the app" --log="/var/log/$app/$app-iframely.log" yunohost service add $app-pict-rs --description="A short description of the app" --log="/var/log/$app/$app-pict-rs.log" +yunohost service add $app-iframely --description="A short description of the app" --log="/var/log/$app/$app-iframely.log" #================================================= # START SYSTEMD SERVICE @@ -265,8 +266,8 @@ ynh_script_progression --message="Starting a systemd service..." # Start a systemd service ynh_systemd_action --service_name=$app --action="start" --line_match="Started" --log_path=systemd ynh_systemd_action --service_name=$app-ui --action="start" --line_match="Started" --log_path=systemd -ynh_systemd_action --service_name=$app-iframely --action="start" --line_match="Started" --log_path=systemd ynh_systemd_action --service_name=$app-pict-rs --action="start" --line_match="Started" --log_path=systemd +ynh_systemd_action --service_name=$app-iframely --action="start" --line_match="Started" --log_path=systemd #================================================= # SETUP SSOWAT diff --git a/scripts/upgrade b/scripts/upgrade index f3a846e..3017d1e 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -64,8 +64,8 @@ ynh_script_progression --message="Stopping a systemd service..." ynh_systemd_action --service_name=$app --action="stop" --line_match="Stopped" --log_path=systemd ynh_systemd_action --service_name=$app-ui --action="stop" --line_match="Stopped" --log_path=systemd -ynh_systemd_action --service_name=$app-iframely --action="stop" --line_match="Stopped" --log_path=systemd ynh_systemd_action --service_name=$app-pict-rs --action="stop" --line_match="Stopped" --log_path=systemd +ynh_systemd_action --service_name=$app-iframely --action="stop" --line_match="Stopped" --log_path=systemd #================================================= # ENSURE DOWNWARD COMPATIBILITY @@ -107,11 +107,11 @@ then # Download, check integrity, uncompress the source of lemmy from app.src to his build directory ynh_setup_source --dest_dir="$final_path/build-lemmy/" --source_id="docker-image-extract" - ynh_setup_source --dest_dir="$final_path/build-pict-rs/" --source_id="pict-rs" ynh_setup_source --dest_dir="$final_path/build-lemmy-ui/" --source_id="docker-image-extract" ynh_setup_source --dest_dir="$final_path/lemmy-ui/lemmy-translations/" --source_id="lemmy-translations" - ynh_setup_source --dest_dir="$final_path/build-iframely/" --source_id="docker-image-extract" ynh_setup_source --dest_dir="$final_path/build-imagemagick/" --source_id="imagemagick" + ynh_setup_source --dest_dir="$final_path/build-pict-rs/" --source_id="pict-rs" + ynh_setup_source --dest_dir="$final_path/build-iframely/" --source_id="docker-image-extract" fi chmod 750 "$final_path" @@ -152,6 +152,23 @@ then mv -f "$final_path/build-lemmy/output/app/lemmy" "$final_path/lemmy/lemmy" ynh_secure_remove --file="$final_path/build-lemmy" + # Install lemmy-ui + pushd $final_path/build-lemmy-ui + ./docker-image-extract dessalines/lemmy-ui:$LEMMYUI_VERSION + popd + mkdir -p "$final_path/lemmy-ui/" + rsync -a "$final_path/build-lemmy-ui/output/app/" "$final_path/lemmy-ui/" + ynh_secure_remove --file="$final_path/build-lemmy-ui" + + # Install ImageMagick + pushd "$final_path/build-imagemagick/" + ./configure --with-modules + make + make install + ldconfig /usr/local/lib + popd + ynh_secure_remove --file="$final_path/build-imagemagick" + # Install rustup with the toolchain needed by pict-rs pushd "$final_path" sudo -u "$app" RUSTUP_HOME="$final_path"/.rustup CARGO_HOME="$final_path"/.cargo bash -c 'curl -sSf -L https://static.rust-lang.org/rustup.sh | sh -s -- -y --default-toolchain nightly' @@ -169,14 +186,6 @@ then ynh_secure_remove --file="$final_path/.cargo" ynh_secure_remove --file="$final_path/.rustup" - # Install lemmy-ui - pushd $final_path/build-lemmy-ui - ./docker-image-extract dessalines/lemmy-ui:$LEMMYUI_VERSION - popd - mkdir -p "$final_path/lemmy-ui/" - rsync -a "$final_path/build-lemmy-ui/output/app/" "$final_path/lemmy-ui/" - ynh_secure_remove --file="$final_path/build-lemmy-ui" - # Install iframely pushd $final_path/build-iframely ./docker-image-extract dogbin/iframely:latest @@ -184,15 +193,6 @@ then mkdir -p "$final_path/iframely/" rsync -a "$final_path/build-iframely/output/iframely/" "$final_path/iframely/" ynh_secure_remove --file="$final_path/build-iframely" - - # Install ImageMagick - pushd "$final_path/build-imagemagick/" - ./configure --with-modules - make - make install - ldconfig /usr/local/lib - popd - ynh_secure_remove --file="$final_path/build-imagemagick" fi chmod 750 "$final_path" @@ -253,8 +253,8 @@ ynh_script_progression --message="Integrating service in YunoHost..." yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" yunohost service add $app-ui --description="A short description of the app" --log="/var/log/$app/$app-ui.log" -yunohost service add $app-iframely --description="A short description of the app" --log="/var/log/$app/$app-iframely.log" yunohost service add $app-pict-rs --description="A short description of the app" --log="/var/log/$app/$app-pict-rs.log" +yunohost service add $app-iframely --description="A short description of the app" --log="/var/log/$app/$app-iframely.log" #================================================= # START SYSTEMD SERVICE @@ -263,8 +263,8 @@ ynh_script_progression --message="Starting a systemd service..." ynh_systemd_action --service_name=$app --action="start" --line_match="Started" --log_path=systemd ynh_systemd_action --service_name=$app-ui --action="start" --line_match="Started" --log_path=systemd -ynh_systemd_action --service_name=$app-iframely --action="start" --line_match="Started" --log_path=systemd ynh_systemd_action --service_name=$app-pict-rs --action="start" --line_match="Started" --log_path=systemd +ynh_systemd_action --service_name=$app-iframely --action="start" --line_match="Started" --log_path=systemd #================================================= # RELOAD NGINX