uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
57
pkgs/applications/video/epgstation/client/package.json
Normal file
57
pkgs/applications/video/epgstation/client/package.json
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"name": "epgstation-client",
|
||||
"version": "2.6.20",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint",
|
||||
"watch": "vue-cli-service build --watch --mode development"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mdi/font": "6.5.95",
|
||||
"aribb24.js": "1.8.8",
|
||||
"axios": "0.24.0",
|
||||
"eventemitter2": "6.4.5",
|
||||
"hls.js": "1.1.2",
|
||||
"inversify": "6.0.1",
|
||||
"json-stable-stringify": "1.0.1",
|
||||
"lodash": "4.17.21",
|
||||
"material-design-icons-iconfont": "6.1.1",
|
||||
"mpegts.js": "1.6.10",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"resize-observer-polyfill": "1.5.1",
|
||||
"roboto-fontface": "*",
|
||||
"smoothscroll-polyfill": "0.4.4",
|
||||
"socket.io-client": "4.3.2",
|
||||
"typeface-roboto": "1.1.13",
|
||||
"vue": "2.6.14",
|
||||
"vue-class-component": "7.2.6",
|
||||
"vue-property-decorator": "9.1.2",
|
||||
"vue-router": "3.5.3",
|
||||
"vuetify": "2.5.10",
|
||||
"vuetify-datetime-picker": "2.1.1",
|
||||
"@types/hls.js": "0.13.3",
|
||||
"@types/json-stable-stringify": "1.0.33",
|
||||
"@types/lodash": "4.14.178",
|
||||
"@types/smoothscroll-polyfill": "0.3.1",
|
||||
"@types/socket.io-client": "1.4.36",
|
||||
"@typescript-eslint/eslint-plugin": "4.33.0",
|
||||
"@typescript-eslint/parser": "4.33.0",
|
||||
"@vue/cli-plugin-eslint": "4.5.12",
|
||||
"@vue/cli-plugin-typescript": "4.5.13",
|
||||
"@vue/cli-plugin-vuex": "4.5.13",
|
||||
"@vue/cli-service": "4.5.13",
|
||||
"@vue/eslint-config-prettier": "6.0.0",
|
||||
"@vue/eslint-config-typescript": "7.0.0",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-plugin-prettier": "3.4.1",
|
||||
"eslint-plugin-vue": "7.20.0",
|
||||
"prettier": "2.4.1",
|
||||
"sass": "1.32.12",
|
||||
"sass-loader": "10.2.0",
|
||||
"typescript": "4.4.4",
|
||||
"vue-cli-plugin-vuetify": "2.4.3",
|
||||
"vue-template-compiler": "2.6.14",
|
||||
"vuetify-loader": "1.7.3"
|
||||
}
|
||||
}
|
||||
139
pkgs/applications/video/epgstation/default.nix
Normal file
139
pkgs/applications/video/epgstation/default.nix
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, writers
|
||||
, makeWrapper
|
||||
, bash
|
||||
, nodejs
|
||||
, nodePackages
|
||||
, gzip
|
||||
, jq
|
||||
, yq
|
||||
}:
|
||||
|
||||
let
|
||||
# NOTE: use updateScript to bump the package version
|
||||
pname = "EPGStation";
|
||||
version = "2.6.20";
|
||||
src = fetchFromGitHub {
|
||||
owner = "l3tnun";
|
||||
repo = "EPGStation";
|
||||
rev = "v${version}";
|
||||
sha256 = "K1cAvmqWEfS6EY4MKAtjXb388XLYHtouxNM70PWgFig=";
|
||||
};
|
||||
|
||||
client = nodePackages.epgstation-client.override (drv: {
|
||||
# FIXME: remove this option if possible
|
||||
#
|
||||
# Unsetting this option resulted NPM attempting to re-download packages.
|
||||
dontNpmInstall = true;
|
||||
|
||||
meta = drv.meta // {
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
});
|
||||
|
||||
server = nodePackages.epgstation.override (drv: {
|
||||
inherit src;
|
||||
|
||||
# This is set to false to keep devDependencies at build time. Build time
|
||||
# dependencies are pruned afterwards.
|
||||
production = false;
|
||||
|
||||
buildInputs = (drv.buildInputs or [ ]) ++ [ bash ];
|
||||
nativeBuildInputs = (drv.nativeBuildInputs or [ ]) ++ [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
preRebuild = ''
|
||||
# Fix for not being able to connect to mysql using domain sockets.
|
||||
patch -p1 < ${./use-mysql-over-domain-socket.patch}
|
||||
|
||||
# Workaround for https://github.com/svanderburg/node2nix/issues/275
|
||||
sed -i -e "s|#!/usr/bin/env node|#! ${nodejs}/bin/node|" node_modules/node-gyp-build/bin.js
|
||||
|
||||
find . -name package-lock.json -delete
|
||||
'';
|
||||
|
||||
postInstall = let
|
||||
runtimeDeps = [ nodejs bash ];
|
||||
in
|
||||
''
|
||||
mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
|
||||
|
||||
pushd $out/lib/node_modules/epgstation
|
||||
|
||||
cp -r ${client}/lib/node_modules/epgstation-client/node_modules client/node_modules
|
||||
chmod -R u+w client/node_modules
|
||||
|
||||
npm run build
|
||||
|
||||
npm prune --production
|
||||
pushd client
|
||||
npm prune --production
|
||||
popd
|
||||
|
||||
mv config/enc.js.template $out/libexec/enc.js
|
||||
mv LICENSE Readme.md $out/share/doc/epgstation
|
||||
mv doc/* $out/share/doc/epgstation
|
||||
sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
|
||||
| ${gzip}/bin/gzip > $out/share/man/man1/epgstation.1.gz
|
||||
rm -rf doc
|
||||
|
||||
# just log to stdout and let journald do its job
|
||||
rm -rf logs
|
||||
|
||||
# Replace the existing configuration and runtime state directories with
|
||||
# symlinks. Without this, they would all be non-writable because they
|
||||
# reside in the Nix store. Note that the source path won't be accessible
|
||||
# at build time.
|
||||
rm -r config data recorded thumbnail
|
||||
ln -sfT /etc/epgstation config
|
||||
ln -sfT /var/lib/epgstation data
|
||||
ln -sfT /var/lib/epgstation/recorded recorded
|
||||
ln -sfT /var/lib/epgstation/thumbnail thumbnail
|
||||
|
||||
makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
|
||||
--chdir "$out/lib/node_modules/epgstation" \
|
||||
--prefix PATH : ${lib.makeBinPath runtimeDeps} \
|
||||
--set APP_ROOT_PATH "$out/lib/node_modules/epgstation"
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
# NOTE: this may take a while since it has to update all packages in
|
||||
# nixpkgs.nodePackages
|
||||
passthru.updateScript = import ./update.nix {
|
||||
inherit lib;
|
||||
inherit (src.meta) homepage;
|
||||
inherit
|
||||
pname
|
||||
version
|
||||
gitUpdater
|
||||
writers
|
||||
jq
|
||||
yq;
|
||||
};
|
||||
|
||||
# nodePackages.epgstation is a stub package to fetch npm dependencies and
|
||||
# its meta.platforms is made empty to prevent users from installing it
|
||||
# directly. This technique ensures epgstation can share npm packages with
|
||||
# the rest of nixpkgs while still allowing us to heavily customize the
|
||||
# build. It also allows us to provide devDependencies for the epgstation
|
||||
# build process without doing the same for all the other node packages.
|
||||
meta = drv.meta // {
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
});
|
||||
in
|
||||
server // {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
meta = with lib; server.meta // {
|
||||
maintainers = with maintainers; [ midchildan ];
|
||||
|
||||
# NOTE: updateScript relies on this being correct
|
||||
position = toString ./default.nix + ":1";
|
||||
};
|
||||
}
|
||||
56
pkgs/applications/video/epgstation/epgstation.1
Normal file
56
pkgs/applications/video/epgstation/epgstation.1
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
.Dd $Mdocdate$
|
||||
.Dt EPGSTATION 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm epgstation
|
||||
.Nd @DESCRIPTION@
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Bk -words
|
||||
.Op Ar command Op Ar args
|
||||
.Ek
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a wrapper command for EPGStation provided by Nix. It's actually a thin
|
||||
wrapper around the
|
||||
.Xr npm 1
|
||||
command line tool which you can use to invoke npm commands from the EPGStation
|
||||
project directory. The command line arguments are simply passed as-is to
|
||||
.Xr npm 1 .
|
||||
.Pp
|
||||
On NixOS, it is strongly recommended that you enable the epgstation module
|
||||
instead of invoking this command directly to launch EPGStation. On other
|
||||
platforms, run
|
||||
.Pp
|
||||
.Dl $ epgstation start
|
||||
.Pp
|
||||
to start EPGStation.
|
||||
.Sh FILES
|
||||
.Bl -tag -width Ds -compact
|
||||
.It Pa /etc/epgstation/config.yml
|
||||
.Nm
|
||||
configuration file.
|
||||
.El
|
||||
.Sh EXAMPLES
|
||||
Start EPGStation.
|
||||
.Pp
|
||||
.Dl $ epgstation start
|
||||
.Pp
|
||||
Start EPGStation in development mode.
|
||||
.Pp
|
||||
.Dl $ epgstation run dev-start
|
||||
.Pp
|
||||
Backup the EPGstation database.
|
||||
.Pp
|
||||
.Dl $ epgstation run backup /path/to/dst
|
||||
.Pp
|
||||
Restore the EPGstation database.
|
||||
.Pp
|
||||
.Dl $ epgstation run restore /path/to/src
|
||||
.Pp
|
||||
Restore the EPGstation database from the prior v1 release.
|
||||
.Pp
|
||||
.Dl $ epgstation run v1migrate /path/to/src
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Xr npm 1
|
||||
72
pkgs/applications/video/epgstation/package.json
Normal file
72
pkgs/applications/video/epgstation/package.json
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"name": "epgstation",
|
||||
"version": "2.6.20",
|
||||
"description": "DTV Software in Japan.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/l3tnun/EPGStation-V2.git"
|
||||
},
|
||||
"author": "l3tnun",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/l3tnun/EPGStation-V2/issues"
|
||||
},
|
||||
"homepage": "https://github.com/l3tnun/EPGStation-V2#readme",
|
||||
"dependencies": {
|
||||
"arib-subtitle-timedmetadater": "4.0.9",
|
||||
"aribts": "2.1.12",
|
||||
"axios": "0.24.0",
|
||||
"body-parser": "1.19.0",
|
||||
"cors": "2.8.5",
|
||||
"diskusage-ng": "1.0.2",
|
||||
"express": "4.17.1",
|
||||
"express-openapi": "9.3.0",
|
||||
"file-type": "16.5.3",
|
||||
"inversify": "5.1.1",
|
||||
"js-yaml": "4.1.0",
|
||||
"lodash": "4.17.21",
|
||||
"log4js": "6.3.0",
|
||||
"minimist": "1.2.5",
|
||||
"mirakurun": "3.9.0-beta.26",
|
||||
"mkdirp": "1.0.4",
|
||||
"multer": "1.4.3",
|
||||
"mysql": "2.18.1",
|
||||
"openapi-types": "9.3.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"socket.io": "4.3.1",
|
||||
"source-map-support": "0.5.20",
|
||||
"sqlite3": "5.0.2",
|
||||
"swagger-ui-dist": "3.52.5",
|
||||
"typeorm": "0.2.38",
|
||||
"url-join": "4.0.1",
|
||||
"@types/body-parser": "1.19.1",
|
||||
"@types/express": "4.17.13",
|
||||
"@types/file-type": "10.9.1",
|
||||
"@types/js-yaml": "4.0.4",
|
||||
"@types/lodash": "4.14.176",
|
||||
"@types/minimist": "1.2.2",
|
||||
"@types/mkdirp": "1.0.2",
|
||||
"@types/mongodb": "4.0.6",
|
||||
"@types/multer": "1.4.7",
|
||||
"@types/node": "16.11.6",
|
||||
"@types/socket.io": "3.0.1",
|
||||
"@types/source-map-support": "0.5.4",
|
||||
"@types/sqlite3": "3.1.7",
|
||||
"@types/url-join": "4.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "4.33.0",
|
||||
"@typescript-eslint/parser": "4.33.0",
|
||||
"del": "6.0.0",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-prettier": "8.3.0",
|
||||
"eslint-plugin-prettier": "3.4.1",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-eslint": "6.0.0",
|
||||
"gulp-plumber": "1.2.1",
|
||||
"gulp-sourcemaps": "3.0.0",
|
||||
"gulp-typescript": "5.0.1",
|
||||
"prettier": "2.4.1",
|
||||
"ts-loader": "9.2.6",
|
||||
"ts-node": "10.4.0",
|
||||
"typescript": "4.4.4"
|
||||
}
|
||||
}
|
||||
63
pkgs/applications/video/epgstation/update.nix
Normal file
63
pkgs/applications/video/epgstation/update.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ pname
|
||||
, version
|
||||
, homepage
|
||||
, lib
|
||||
, gitUpdater
|
||||
, writers
|
||||
, jq
|
||||
, yq
|
||||
}:
|
||||
|
||||
let
|
||||
updater = gitUpdater {
|
||||
inherit pname version;
|
||||
attrPath = lib.toLower pname;
|
||||
rev-prefix = "v";
|
||||
};
|
||||
updateScript = builtins.elemAt updater 0;
|
||||
updateArgs = map (lib.escapeShellArg) (builtins.tail updater);
|
||||
in writers.writeBash "update-epgstation" ''
|
||||
set -euxo pipefail
|
||||
|
||||
# bump the version
|
||||
${updateScript} ${lib.concatStringsSep " " updateArgs}
|
||||
|
||||
cd "${toString ./.}"
|
||||
|
||||
# Get the path to the latest source. Note that we can't just pass the value
|
||||
# of epgstation.src directly because it'd be evaluated before we can run
|
||||
# updateScript.
|
||||
SRC="$(nix-build ../../../.. --no-out-link -A epgstation.src)"
|
||||
if [[ "${version}" == "$(${jq}/bin/jq -r .version "$SRC/package.json")" ]]; then
|
||||
echo "[INFO] Already using the latest version of ${pname}" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
# Regenerate package.json from the latest source.
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/package.json" \
|
||||
> package.json
|
||||
${jq}/bin/jq '. + {
|
||||
dependencies: (.dependencies + .devDependencies),
|
||||
} | del(.devDependencies, .main, .scripts)' \
|
||||
"$SRC/client/package.json" \
|
||||
> client/package.json
|
||||
|
||||
# Regenerate node packages to update the pre-overriden epgstation derivation.
|
||||
# This must come *after* package.json has been regenerated.
|
||||
pushd ../../../development/node-packages
|
||||
./generate.sh
|
||||
popd
|
||||
|
||||
# Generate default streaming settings for the nixos module.
|
||||
pushd ../../../../nixos/modules/services/video/epgstation
|
||||
${yq}/bin/yq -j '{ urlscheme , stream }' \
|
||||
"$SRC/config/config.yml.template" \
|
||||
> streaming.json
|
||||
|
||||
# Fix generated output for EditorConfig compliance
|
||||
printf '\n' >> streaming.json # rule: insert_final_newline
|
||||
popd
|
||||
''
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
diff --git a/ormconfig.js b/ormconfig.js
|
||||
index 5591853b..838c06cb 100644
|
||||
--- a/ormconfig.js
|
||||
+++ b/ormconfig.js
|
||||
@@ -38,8 +38,6 @@ switch (config.dbtype) {
|
||||
|
||||
case 'mysql':
|
||||
ormConfig.type = 'mysql';
|
||||
- ormConfig.host = config.mysql.host;
|
||||
- ormConfig.port = config.mysql.port;
|
||||
ormConfig.username = config.mysql.user;
|
||||
ormConfig.password = config.mysql.password;
|
||||
ormConfig.database = config.mysql.database;
|
||||
@@ -49,6 +47,12 @@ switch (config.dbtype) {
|
||||
} else {
|
||||
ormConfig.charset = config.mysql.charset;
|
||||
}
|
||||
+ if (config.mysql.socketPath) {
|
||||
+ ormConfig.socketPath = config.mysql.socketPath;
|
||||
+ } else {
|
||||
+ ormConfig.host = config.mysql.host;
|
||||
+ ormConfig.port = config.mysql.port;
|
||||
+ }
|
||||
break;
|
||||
|
||||
case 'postgres':
|
||||
diff --git a/src/model/IConfigFile.ts b/src/model/IConfigFile.ts
|
||||
index 6a502e83..ba84a423 100644
|
||||
--- a/src/model/IConfigFile.ts
|
||||
+++ b/src/model/IConfigFile.ts
|
||||
@@ -61,12 +61,13 @@ export default interface IConfigFile {
|
||||
regexp?: boolean;
|
||||
};
|
||||
mysql?: {
|
||||
- host: string;
|
||||
+ host?: string;
|
||||
user: string;
|
||||
- port: number;
|
||||
+ port?: number;
|
||||
password: string;
|
||||
database: string;
|
||||
charset?: string;
|
||||
+ socketPath?: string;
|
||||
};
|
||||
postgres?: {
|
||||
host: string;
|
||||
Loading…
Add table
Add a link
Reference in a new issue