mirror of
https://github.com/marktext/marktext.git
synced 2025-05-02 01:01:19 +08:00
Update license and add third-party licenses (#835)
This commit is contained in:
parent
869d010fcb
commit
b4784e83c5
36
.electron-vue/thirdPartyChecker.js
Normal file
36
.electron-vue/thirdPartyChecker.js
Normal file
@ -0,0 +1,36 @@
|
||||
'use strict'
|
||||
|
||||
const checker = require('license-checker')
|
||||
|
||||
const getLicenses = (rootDir, callback) => {
|
||||
checker.init({
|
||||
start: rootDir,
|
||||
production: true,
|
||||
development: false,
|
||||
direct: true,
|
||||
json: true,
|
||||
onlyAllow: 'Unlicense;WTFPL;ISC;MIT;BSD;ISC;Apache-2.0;MIT*;Apache*;BSD*',
|
||||
customPath: {
|
||||
"licenses": "",
|
||||
"licenseText": "none"
|
||||
}
|
||||
}, function(err, packages) {
|
||||
callback(err, packages, checker)
|
||||
})
|
||||
}
|
||||
|
||||
// Check that all production dependencies are allowed.
|
||||
const validateLicenses = rootDir => {
|
||||
getLicenses(rootDir, (err, packages, checker) => {
|
||||
if (err) {
|
||||
console.log(`[ERROR] ${err}`)
|
||||
process.exit(1)
|
||||
}
|
||||
console.log(checker.asSummary(packages))
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getLicenses: getLicenses,
|
||||
validateLicenses: validateLicenses
|
||||
}
|
@ -50,6 +50,7 @@ install:
|
||||
|
||||
script:
|
||||
- yarn run lint
|
||||
- yarn run validate-licenses
|
||||
|
||||
# Unit and e2e tests
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then xvfb-run --server-args="-screen 0 1024x768x24" yarn run test ; fi
|
||||
|
3
LICENSE
3
LICENSE
@ -1,6 +1,7 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-Present Jocs
|
||||
Copyright (c) 2017-Present Luo Ran
|
||||
Copyright (c) 2018 Mark Text Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -38,6 +38,7 @@ cache:
|
||||
|
||||
build_script:
|
||||
- yarn run lint
|
||||
- yarn run validate-licenses
|
||||
- yarn run test
|
||||
|
||||
- yarn run release:win
|
||||
|
13
package.json
13
package.json
@ -14,7 +14,6 @@
|
||||
"build:dir": "node .electron-vue/build.js && electron-builder --dir",
|
||||
"build:clean": "cross-env BUILD_TARGET=clean node .electron-vue/build.js",
|
||||
"build:dev": "node .electron-vue/build.js",
|
||||
"build:web": "cross-env BUILD_TARGET=web node .electron-vue/build.js",
|
||||
"dev": "node .electron-vue/dev-runner.js",
|
||||
"e2e": "npm run pack && cross-env MARKTEXT_EXIT_ON_ERROR=1 mocha --timeout 10000 test/e2e",
|
||||
"lint": "eslint --ext .js,.vue -f ./node_modules/eslint-friendly-formatter src test",
|
||||
@ -28,7 +27,9 @@
|
||||
"postinstall": "npm run rebuild && npm run lint:fix",
|
||||
"build:muya": "cd src/muya && webpack --progress --colors --config webpack.config.js",
|
||||
"release:muya": "npm run build:muya && cd src/muya && npm publish",
|
||||
"rebuild": "electron-rebuild -f -w keyboard-layout -o keyboard-layout"
|
||||
"rebuild": "electron-rebuild -f -w keyboard-layout -o keyboard-layout",
|
||||
"gen-third-party": "node tools/generateThirdPartyLicense.js",
|
||||
"validate-licenses": "node tools/validateLicenses.js"
|
||||
},
|
||||
"build": {
|
||||
"productName": "Mark Text",
|
||||
@ -78,6 +79,13 @@
|
||||
"files": [
|
||||
"dist/electron/**/*"
|
||||
],
|
||||
"extraFiles": [
|
||||
"LICENSE",
|
||||
{
|
||||
"from": "resources/THIRD-PARTY-LICENSES.txt",
|
||||
"to": "THIRD-PARTY-LICENSES.txt"
|
||||
}
|
||||
],
|
||||
"dmg": {
|
||||
"contents": [
|
||||
{
|
||||
@ -228,6 +236,7 @@
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-spec-reporter": "0.0.32",
|
||||
"karma-webpack": "^3.0.5",
|
||||
"license-checker": "^25.0.1",
|
||||
"mini-css-extract-plugin": "^0.5.0",
|
||||
"mocha": "^6.0.2",
|
||||
"multispinner": "^0.2.1",
|
||||
|
14774
resources/THIRD-PARTY-LICENSES.txt
Normal file
14774
resources/THIRD-PARTY-LICENSES.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -16,7 +16,10 @@
|
||||
<div class="text">{{ appVersion }}</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="text">{{ copyright }}</div>
|
||||
<div class="text" style="min-height: auto">{{ copyright }}</div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="text">Copyright © 2018 Mark Text Contributors</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
@ -30,7 +33,7 @@
|
||||
export default {
|
||||
data () {
|
||||
this.name = 'Mark Text'
|
||||
this.copyright = `Copyright © 2017-${new Date().getFullYear()} Jocs`
|
||||
this.copyright = `Copyright © 2017-${new Date().getFullYear()} Luo Ran`
|
||||
return {
|
||||
showAboutDialog: false
|
||||
}
|
||||
|
52
tools/generateThirdPartyLicense.js
Normal file
52
tools/generateThirdPartyLicense.js
Normal file
@ -0,0 +1,52 @@
|
||||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const thirdPartyChecker = require('../.electron-vue/thirdPartyChecker.js')
|
||||
const rootDir = path.resolve(__dirname, '..')
|
||||
|
||||
thirdPartyChecker.getLicenses(rootDir, (err, packages, checker) => {
|
||||
if (err) {
|
||||
console.log(`[ERROR] ${err}`)
|
||||
return
|
||||
}
|
||||
|
||||
let summary = ''
|
||||
let licenseList = ''
|
||||
let index = 1
|
||||
Object.keys(packages).forEach(key => {
|
||||
if (/^babel-helper-vue-jsx-merge-props/.test(key)) {
|
||||
// MIT licensed used by element-ui
|
||||
return
|
||||
}
|
||||
|
||||
const { licenses, licenseText } = packages[key]
|
||||
summary += `${index++}. ${key} (${licenses})\n`
|
||||
licenseList += `# ${key} (${licenses})
|
||||
-------------------------------------------------\
|
||||
|
||||
${licenseText}
|
||||
\n\n
|
||||
`
|
||||
})
|
||||
|
||||
|
||||
const output = `# Third Party Notices
|
||||
-------------------------------------------------
|
||||
|
||||
This file contains all third-party packages which are bundled and shipped with Mark Text.
|
||||
|
||||
-------------------------------------------------
|
||||
# Summary
|
||||
-------------------------------------------------
|
||||
|
||||
${summary}
|
||||
|
||||
-------------------------------------------------
|
||||
# Licenses
|
||||
-------------------------------------------------
|
||||
|
||||
${licenseList}
|
||||
`
|
||||
fs.writeFileSync(path.resolve(rootDir, 'resources', 'THIRD-PARTY-LICENSES.txt'), output)
|
||||
})
|
7
tools/validateLicenses.js
Normal file
7
tools/validateLicenses.js
Normal file
@ -0,0 +1,7 @@
|
||||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
const thirdPartyChecker = require('../.electron-vue/thirdPartyChecker.js')
|
||||
const rootDir = path.resolve(__dirname, '..')
|
||||
|
||||
thirdPartyChecker.validateLicenses(rootDir)
|
112
yarn.lock
112
yarn.lock
@ -596,7 +596,7 @@ array-equal@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
|
||||
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
|
||||
|
||||
array-find-index@^1.0.1:
|
||||
array-find-index@^1.0.1, array-find-index@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
|
||||
integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
|
||||
@ -638,6 +638,11 @@ arrify@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
||||
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
|
||||
|
||||
asap@^2.0.0:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
|
||||
|
||||
asn1.js@^4.0.0:
|
||||
version "4.10.1"
|
||||
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
|
||||
@ -3241,6 +3246,11 @@ debug@~3.1.0:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debuglog@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
||||
integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
|
||||
|
||||
decamelize@^1.0.0, decamelize@^1.1.2, decamelize@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
@ -3432,6 +3442,14 @@ devtron@^1.4.0:
|
||||
highlight.js "^9.3.0"
|
||||
humanize-plus "^1.8.1"
|
||||
|
||||
dezalgo@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
|
||||
integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=
|
||||
dependencies:
|
||||
asap "^2.0.0"
|
||||
wrappy "1"
|
||||
|
||||
di@^0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
|
||||
@ -6383,6 +6401,22 @@ levn@^0.3.0, levn@~0.3.0:
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
|
||||
license-checker@^25.0.1:
|
||||
version "25.0.1"
|
||||
resolved "https://registry.yarnpkg.com/license-checker/-/license-checker-25.0.1.tgz#4d14504478a5240a857bb3c21cd0491a00d761fa"
|
||||
integrity sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==
|
||||
dependencies:
|
||||
chalk "^2.4.1"
|
||||
debug "^3.1.0"
|
||||
mkdirp "^0.5.1"
|
||||
nopt "^4.0.1"
|
||||
read-installed "~4.0.3"
|
||||
semver "^5.5.0"
|
||||
spdx-correct "^3.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
spdx-satisfies "^4.0.0"
|
||||
treeify "^1.1.0"
|
||||
|
||||
load-json-file@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
|
||||
@ -7347,7 +7381,7 @@ nopt@^4.0.1:
|
||||
abbrev "1"
|
||||
osenv "^0.1.4"
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
|
||||
normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
|
||||
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
|
||||
@ -8676,6 +8710,32 @@ read-config-file@3.2.2:
|
||||
json5 "^2.1.0"
|
||||
lazy-val "^1.0.4"
|
||||
|
||||
read-installed@~4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067"
|
||||
integrity sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=
|
||||
dependencies:
|
||||
debuglog "^1.0.1"
|
||||
read-package-json "^2.0.0"
|
||||
readdir-scoped-modules "^1.0.0"
|
||||
semver "2 || 3 || 4 || 5"
|
||||
slide "~1.1.3"
|
||||
util-extend "^1.0.1"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
|
||||
read-package-json@^2.0.0:
|
||||
version "2.0.13"
|
||||
resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a"
|
||||
integrity sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==
|
||||
dependencies:
|
||||
glob "^7.1.1"
|
||||
json-parse-better-errors "^1.0.1"
|
||||
normalize-package-data "^2.0.0"
|
||||
slash "^1.0.0"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
|
||||
read-pkg-up@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
|
||||
@ -8759,6 +8819,16 @@ readable-stream@~1.1.9:
|
||||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
readdir-scoped-modules@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
|
||||
integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c=
|
||||
dependencies:
|
||||
debuglog "^1.0.1"
|
||||
dezalgo "^1.0.0"
|
||||
graceful-fs "^4.1.2"
|
||||
once "^1.3.0"
|
||||
|
||||
readdirp@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
|
||||
@ -9319,6 +9389,11 @@ slice-ansi@^2.1.0:
|
||||
astral-regex "^1.0.0"
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
slide@~1.1.3:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
|
||||
integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
|
||||
|
||||
slugify@^1.3.1:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.3.4.tgz#78d2792d7222b55cd9fc81fa018df99af779efeb"
|
||||
@ -9521,6 +9596,15 @@ spawn-rx@^3.0.0:
|
||||
lodash.assign "^4.2.0"
|
||||
rxjs "^6.3.1"
|
||||
|
||||
spdx-compare@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7"
|
||||
integrity sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==
|
||||
dependencies:
|
||||
array-find-index "^1.0.2"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
spdx-ranges "^2.0.0"
|
||||
|
||||
spdx-correct@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
|
||||
@ -9547,6 +9631,20 @@ spdx-license-ids@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
|
||||
integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
|
||||
|
||||
spdx-ranges@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.1.0.tgz#033423eb837ec926463aaf5b8097bd6f2931e1b8"
|
||||
integrity sha512-OOWghvosfmECc9edy/A9j7GabERmn8bJWHc0J1knVytQtO5Rw7VfxK6CDqmivJhfMJqWhWWUfffNNMPYvyvyQA==
|
||||
|
||||
spdx-satisfies@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz#9a09a68d80f5f1a31cfaebb384b0c6009e4969fe"
|
||||
integrity sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==
|
||||
dependencies:
|
||||
spdx-compare "^1.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
spdx-ranges "^2.0.0"
|
||||
|
||||
spdy-transport@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
|
||||
@ -10223,6 +10321,11 @@ traverse@^0.6.6:
|
||||
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
|
||||
integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
|
||||
|
||||
treeify@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8"
|
||||
integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==
|
||||
|
||||
trim-newlines@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
|
||||
@ -10518,6 +10621,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
||||
|
||||
util-extend@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f"
|
||||
integrity sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=
|
||||
|
||||
util.promisify@1.0.0, util.promisify@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
|
||||
|
Loading…
Reference in New Issue
Block a user