diff options
Diffstat (limited to 'snapcraft.yaml')
-rw-r--r-- | snapcraft.yaml | 117 |
1 files changed, 106 insertions, 11 deletions
diff --git a/snapcraft.yaml b/snapcraft.yaml index a84c5d1f..b17c714d 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,6 @@ name: wekan -version: git +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. @@ -11,7 +12,6 @@ description: | confinement: strict grade: stable -base: core18 architectures: - amd64 @@ -65,11 +65,9 @@ apps: parts: mongodb: - source: https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.2/multiverse/binary-amd64/mongodb-org-server_4.2.2_amd64.deb - #https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz - #https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.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 @@ -83,21 +81,19 @@ parts: wekan: source: . plugin: nodejs - node-engine: 12.14.1 + node-engine: 8.17.0 node-packages: - node-gyp - node-pre-gyp - - fibers + - fibers@2.0.0 build-packages: - ca-certificates - apt-utils - - build-essential - python - - python3 +# - python3 - g++ - capnproto - curl - - libcurl3 - execstack - nodejs - npm @@ -106,21 +102,119 @@ parts: 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 . + 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/ @@ -130,6 +224,7 @@ parts: 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: |