summaryrefslogtreecommitdiffstats
path: root/snapcraft.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'snapcraft.yaml')
-rw-r--r--snapcraft.yaml122
1 files changed, 93 insertions, 29 deletions
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 088e1524..5a1c6b9f 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,7 +1,7 @@
name: wekan
version: 0
version-script: git describe --dirty --tags | cut -c 2-
-summary: The open-source Trello-like kanban
+summary: The open-source kanban
description: |
Wekan is an open-source and collaborative kanban board application.
@@ -57,7 +57,7 @@ apps:
plugs: [network, network-bind]
database-list-backups:
- command: ls -ald $SNAP_COMMON/db-backups/*
+ command: ls -al $SNAP_COMMON/db-backups/
database-restore:
command: mongodb-restore
@@ -65,7 +65,7 @@ apps:
parts:
mongodb:
- source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.19.tgz
+ source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz
plugin: dump
stage-packages: [libssl1.0.0]
filesets:
@@ -81,9 +81,8 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 8.11.1
+ node-engine: 8.16.0
node-packages:
- - npm@5.5.1
- node-gyp
- node-pre-gyp
- fibers@2.0.0
@@ -91,14 +90,34 @@ parts:
- ca-certificates
- apt-utils
- python
+ - python3
- g++
- capnproto
- - npm
- 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
+ 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
@@ -106,53 +125,98 @@ parts:
# Also see beginning of wekan/server/authentication.js
# import Fiber from "fibers";
# Fiber.poolSize = 1e9;
- # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm
+ # 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
- # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d
- echo "18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d node" >> node-SHASUMS256.txt.asc
- curl https://releases.wekan.team/node -o node
+ ##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`
+ ##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.6.0.1\"|g" 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
- mkdir packages
- cd packages
- git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
- 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 ..
+ # 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 package-lock.json .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser
meteor build .build --directory --allow-superuser
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
- cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
- rm -rf node_modules/bcrypt
- meteor npm install --save bcrypt
+ #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 ../../../../
+ cd .build/bundle/programs/server
npm install
- meteor npm install --save bcrypt
+ #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 $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
- execstack --clear-execstack $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
+ rm $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
organize:
README: README.wekan
+ prime:
+ - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp
helpers:
source: snap-src
@@ -160,7 +224,7 @@ parts:
caddy:
plugin: dump
- source: https://caddyserver.com/download/linux/amd64?license=personal
+ source: https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off
source-type: tar
organize:
caddy: bin/caddy