From 4550e10fbeead146b5742820bd53b6846772c5f6 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Wed, 22 Apr 2020 22:43:20 +0300 Subject: Revert Snap MongoDB changes. Thanks to xet7 ! --- .future-snap/broken-snapcraft.yaml | 257 +++++++++++++++++++++++++++++++++++++ .future-snap/old-snapcraft.yaml | 256 ------------------------------------ CHANGELOG.md | 2 - snapcraft.yaml | 7 +- 4 files changed, 260 insertions(+), 262 deletions(-) create mode 100644 .future-snap/broken-snapcraft.yaml delete mode 100644 .future-snap/old-snapcraft.yaml diff --git a/.future-snap/broken-snapcraft.yaml b/.future-snap/broken-snapcraft.yaml new file mode 100644 index 00000000..6b9cb077 --- /dev/null +++ b/.future-snap/broken-snapcraft.yaml @@ -0,0 +1,257 @@ +name: wekan +version: 0 +version-script: git describe --tags | cut -c 2- +summary: The open-source kanban +description: | + Wekan is an open-source and collaborative kanban board application. + + Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most. + Depending on target environment, some configuration settings might need to be adjusted. + For full list of configuration options call: + $ wekan.help + +confinement: strict +grade: stable + +architectures: + - amd64 + +plugs: + mongodb-plug: + interface: content + target: $SNAP_DATA/shared + +hooks: + configure: + plugs: + - network + - network-bind + +slots: + mongodb-slot: + interface: content + write: + - $SNAP_DATA/share + +apps: + wekan: + command: wekan-control + daemon: simple + plugs: [network, network-bind] + + mongodb: + command: mongodb-control + daemon: simple + plugs: [network, network-bind] + + caddy: + command: caddy-control + daemon: simple + plugs: [network, network-bind] + + help: + command: wekan-help + + database-backup: + command: mongodb-backup + plugs: [network, network-bind] + + database-list-backups: + command: ls -al $SNAP_COMMON/db-backups/ + + database-restore: + command: mongodb-restore + plugs: [network, network-bind] + +parts: + mongodb: + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.6.tgz + plugin: dump + stage-packages: [libssl1.0.0, libcurl3] + filesets: + mongo: + - usr + - bin + - lib + stage: + - $mongo + prime: + - $mongo + + wekan: + source: . + plugin: nodejs + node-engine: 12.16.2 + node-packages: + - node-gyp + - node-pre-gyp + - fibers + build-packages: + - ca-certificates + - apt-utils + - python + - python3 + - g++ + - capnproto + - curl + - libcurl3 + - execstack + - nodejs + - npm + stage-packages: + - libfontconfig1 + override-build: | + echo "Cleaning environment first" + rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules + # Create the OpenAPI specification + rm -rf .build + ## Use Meteor 1.8.x on Snap + #rm -rf .meteor + #mv .snap-meteor-1.8/.meteor . + #mv .snap-meteor-1.8/package.json . + #mv .snap-meteor-1.8/package-lock.json . + ## Meteor 1.9.x has changes to Buffer() => Buffer.alloc(), so reverting those + #mv .snap-meteor-1.8/cfs_access-point.txt fix-download-unicode/ + #mv .snap-meteor-1.8/export.js models/ + #mv .snap-meteor-1.8/wekanCreator.js models/ + #mv .snap-meteor-1.8/ldap.js packages/wekan-ldap/server/ldap.js + #mv .snap-meteor-1.8/oidc_server.js packages/wekan-oidc/oidc_server.js + rm -rf .snap-meteor-1.8 + #mkdir -p .build/python + #cd .build/python + #git clone --depth 1 -b master https://github.com/Kronuz/esprima-python + #cd esprima-python + #python3 setup.py install + #cd ../../.. + #mkdir -p ./public/api + #python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml + # we temporary need api2html and mkdirp + #npm install -g api2html@0.3.0 + #npm install -g mkdirp + #api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml + #npm uninstall -g mkdirp + #npm uninstall -g api2html + # Node Fibers 100% CPU usage issue: + # https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161 + # https://github.com/meteor/meteor/issues/9796#issuecomment-381676326 + # https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129 + # Also see beginning of wekan/server/authentication.js + # import Fiber from "fibers"; + # Fiber.poolSize = 1e9; + # OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released + # Description at https://releases.wekan.team/node.txt + ##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc + ##curl https://releases.wekan.team/node -o node + # Verify Fibers patched node authenticity + ##echo "Fibers 100% CPU issue patched node authenticity:" + ##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c - + ##rm -f node-SHASUMS256.txt.asc + ##chmod +x node + ##mv node `which node` + # DOES NOT WORK: paxctl fix. + # Removed from build-packages: - paxctl + #echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303" + #paxctl -mC `which node` + #echo "Installing npm" + #curl -L https://www.npmjs.com/install.sh | sh + echo "Installing meteor" + curl https://install.meteor.com/ -o install_meteor.sh + #sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh + chmod +x install_meteor.sh + sh install_meteor.sh + rm install_meteor.sh + # REPOS BELOW ARE INCLUDED TO WEKAN REPO + #if [ ! -d "packages" ]; then + # mkdir packages + #fi + #if [ ! -d "packages/kadira-flow-router" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router + # cd .. + #fi + #if [ ! -d "packages/meteor-useraccounts-core" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core + # sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js + # cd .. + #fi + #if [ ! -d "packages/meteor-accounts-cas" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas + # cd .. + #fi + #if [ ! -d "packages/wekan-ldap" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git + # cd .. + #fi + #if [ ! -d "packages/wekan-scrollbar" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git + # cd .. + #fi + #if [ ! -d "packages/wekan_accounts-oidc" ]; then + # cd packages + # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git + # mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc + # mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc + # rm -rf meteor-accounts-oidc + # cd .. + #fi + #if [ ! -d "packages/markdown" ]; then + # cd packages + # git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git + # cd .. + #fi + rm -rf .build + meteor add standard-minifier-js --allow-superuser + meteor npm install --allow-superuser + meteor npm install --allow-superuser --save babel-runtime + meteor build .build --directory --allow-superuser + cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js + #Removed binary version of bcrypt because of security vulnerability that is not fixed yet. + #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac + #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c + #cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt + #rm -rf node_modules/bcrypt + #meteor npm install --save bcrypt + # Change from npm-bcrypt directory back to .build/bundle/programs/server directory. + #cd ../../../../ + # Change to directory .build/bundle/programs/server + cd .build/bundle/programs/server + npm install + npm install --allow-superuser --save babel-runtime + #meteor npm install --save bcrypt + # Change back to Wekan source directory + cd ../../../.. + cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ + cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/ + rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan + rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs + rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp + rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp + rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp + # Meteor 1.8.x additional .swp remove + rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp + + organize: + README: README.wekan + prime: + - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp + + helpers: + source: snap-src + plugin: dump + + caddy: + plugin: dump + source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off + source-type: tar + organize: + caddy: bin/caddy + CHANGES.txt: CADDY_CHANGES.txt + EULA.txt: CADDY_EULA.txt + LICENSES.txt: CADDY_LICENSES.txt + README.txt: CADDY_README.txt + stage: + - -init diff --git a/.future-snap/old-snapcraft.yaml b/.future-snap/old-snapcraft.yaml deleted file mode 100644 index 940bb378..00000000 --- a/.future-snap/old-snapcraft.yaml +++ /dev/null @@ -1,256 +0,0 @@ -name: wekan -version: 0 -version-script: git describe --tags | cut -c 2- -summary: The open-source kanban -description: | - Wekan is an open-source and collaborative kanban board application. - - Whether you’re maintaining a personal todo list, planning your holidays with some friends, or working in a team on your next revolutionary idea, Kanban boards are an unbeatable tool to keep your things organized. They give you a visual overview of the current state of your project, and make you productive by allowing you to focus on the few items that matter the most. - Depending on target environment, some configuration settings might need to be adjusted. - For full list of configuration options call: - $ wekan.help - -confinement: strict -grade: stable - -architectures: - - amd64 - -plugs: - mongodb-plug: - interface: content - target: $SNAP_DATA/shared - -hooks: - configure: - plugs: - - network - - network-bind - -slots: - mongodb-slot: - interface: content - write: - - $SNAP_DATA/share - -apps: - wekan: - command: wekan-control - daemon: simple - plugs: [network, network-bind] - - mongodb: - command: mongodb-control - daemon: simple - plugs: [network, network-bind] - - caddy: - command: caddy-control - daemon: simple - plugs: [network, network-bind] - - help: - command: wekan-help - - database-backup: - command: mongodb-backup - plugs: [network, network-bind] - - database-list-backups: - command: ls -al $SNAP_COMMON/db-backups/ - - database-restore: - command: mongodb-restore - plugs: [network, network-bind] - -parts: - mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz - plugin: dump - stage-packages: [libssl1.0.0] - filesets: - mongo: - - usr - - bin - - lib - stage: - - $mongo - prime: - - $mongo - - wekan: - source: . - plugin: nodejs - node-engine: 12.16.2 - node-packages: - - node-gyp - - node-pre-gyp - - fibers - build-packages: - - ca-certificates - - apt-utils - - python -# - python3 - - g++ - - capnproto - - curl - - execstack - - nodejs - - npm - stage-packages: - - libfontconfig1 - override-build: | - echo "Cleaning environment first" - rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules - # Create the OpenAPI specification - rm -rf .build - ## Use Meteor 1.8.x on Snap - #rm -rf .meteor - #mv .snap-meteor-1.8/.meteor . - #mv .snap-meteor-1.8/package.json . - #mv .snap-meteor-1.8/package-lock.json . - ## Meteor 1.9.x has changes to Buffer() => Buffer.alloc(), so reverting those - #mv .snap-meteor-1.8/cfs_access-point.txt fix-download-unicode/ - #mv .snap-meteor-1.8/export.js models/ - #mv .snap-meteor-1.8/wekanCreator.js models/ - #mv .snap-meteor-1.8/ldap.js packages/wekan-ldap/server/ldap.js - #mv .snap-meteor-1.8/oidc_server.js packages/wekan-oidc/oidc_server.js - rm -rf .snap-meteor-1.8 - #mkdir -p .build/python - #cd .build/python - #git clone --depth 1 -b master https://github.com/Kronuz/esprima-python - #cd esprima-python - #python3 setup.py install - #cd ../../.. - #mkdir -p ./public/api - #python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml - # we temporary need api2html and mkdirp - #npm install -g api2html@0.3.0 - #npm install -g mkdirp - #api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml - #npm uninstall -g mkdirp - #npm uninstall -g api2html - # Node Fibers 100% CPU usage issue: - # https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-381453161 - # https://github.com/meteor/meteor/issues/9796#issuecomment-381676326 - # https://github.com/sandstorm-io/sandstorm/blob/0f1fec013fe7208ed0fd97eb88b31b77e3c61f42/shell/server/00-startup.js#L99-L129 - # Also see beginning of wekan/server/authentication.js - # import Fiber from "fibers"; - # Fiber.poolSize = 1e9; - # OLD: Download node version 8.12.0 prerelease build => Official node 8.12.0 has been released - # Description at https://releases.wekan.team/node.txt - ##echo "375bd8db50b9c692c0bbba6e96d4114cd29bee3770f901c1ff2249d1038f1348 node" >> node-SHASUMS256.txt.asc - ##curl https://releases.wekan.team/node -o node - # Verify Fibers patched node authenticity - ##echo "Fibers 100% CPU issue patched node authenticity:" - ##grep node node-SHASUMS256.txt.asc | shasum -a 256 -c - - ##rm -f node-SHASUMS256.txt.asc - ##chmod +x node - ##mv node `which node` - # DOES NOT WORK: paxctl fix. - # Removed from build-packages: - paxctl - #echo "Applying paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303" - #paxctl -mC `which node` - #echo "Installing npm" - #curl -L https://www.npmjs.com/install.sh | sh - echo "Installing meteor" - curl https://install.meteor.com/ -o install_meteor.sh - #sed -i "s|RELEASE=.*|RELEASE=\"1.8.1-beta.0\"|g" install_meteor.sh - chmod +x install_meteor.sh - sh install_meteor.sh - rm install_meteor.sh - # REPOS BELOW ARE INCLUDED TO WEKAN REPO - #if [ ! -d "packages" ]; then - # mkdir packages - #fi - #if [ ! -d "packages/kadira-flow-router" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router - # cd .. - #fi - #if [ ! -d "packages/meteor-useraccounts-core" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core - # sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js - # cd .. - #fi - #if [ ! -d "packages/meteor-accounts-cas" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas - # cd .. - #fi - #if [ ! -d "packages/wekan-ldap" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git - # cd .. - #fi - #if [ ! -d "packages/wekan-scrollbar" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git - # cd .. - #fi - #if [ ! -d "packages/wekan_accounts-oidc" ]; then - # cd packages - # git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git - # mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan-accounts-oidc - # mv meteor-accounts-oidc/packages/switch_oidc wekan-oidc - # rm -rf meteor-accounts-oidc - # cd .. - #fi - #if [ ! -d "packages/markdown" ]; then - # cd packages - # git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git - # cd .. - #fi - rm -rf .build - meteor add standard-minifier-js --allow-superuser - meteor npm install --allow-superuser - meteor npm install --allow-superuser --save babel-runtime - meteor build .build --directory --allow-superuser - cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js - #Removed binary version of bcrypt because of security vulnerability that is not fixed yet. - #https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac - #https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c - #cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt - #rm -rf node_modules/bcrypt - #meteor npm install --save bcrypt - # Change from npm-bcrypt directory back to .build/bundle/programs/server directory. - #cd ../../../../ - # Change to directory .build/bundle/programs/server - cd .build/bundle/programs/server - npm install - npm install --allow-superuser --save babel-runtime - #meteor npm install --save bcrypt - # Change back to Wekan source directory - cd ../../../.. - cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ - cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/ - rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan - rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs - rm -f $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/tar/lib/.mkdir.js.swp - rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp - rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/node-gyp/node_modules/tar/lib/.mkdir.js.swp - # Meteor 1.8.x additional .swp remove - rm -f $SNAPCRAFT_PART_INSTALL/programs/server/node_modules/node-pre-gyp/node_modules/tar/lib/.mkdir.js.swp - - organize: - README: README.wekan - prime: - - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp - - helpers: - source: snap-src - plugin: dump - - caddy: - plugin: dump - source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off - source-type: tar - organize: - caddy: bin/caddy - CHANGES.txt: CADDY_CHANGES.txt - EULA.txt: CADDY_EULA.txt - LICENSES.txt: CADDY_LICENSES.txt - README.txt: CADDY_README.txt - stage: - - -init diff --git a/CHANGELOG.md b/CHANGELOG.md index 4113022e..8591c891 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,6 @@ and adds the following updates: - [Upgrade to Meteor 1.10.2](https://github.com/wekan/wekan/commit/d1f98d0c472fb41e25fb29a9a6f6dae7db003f6f). Thanks to Meteor developers and xet7. -- [Try to upgrade MongoDB version in Snap](https://github.com/wekan/wekan/commit/6b808dd74bf6d12d6a7ee7c23dfa3943b229a51d). - Thanks to xet7. and fixes the following bugs: diff --git a/snapcraft.yaml b/snapcraft.yaml index 6b9cb077..940bb378 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,9 +65,9 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.6.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz plugin: dump - stage-packages: [libssl1.0.0, libcurl3] + stage-packages: [libssl1.0.0] filesets: mongo: - usr @@ -90,11 +90,10 @@ parts: - ca-certificates - apt-utils - python - - python3 +# - python3 - g++ - capnproto - curl - - libcurl3 - execstack - nodejs - npm -- cgit v1.2.3-1-g7c22