pinokiod 7.5.1 → 7.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/kernel/bin/ffmpeg.js +1 -1
- package/kernel/bin/index.js +2 -0
- package/kernel/bin/setup.js +3 -0
- package/package.json +1 -1
- package/server/index.js +2 -0
- package/test/ffmpeg-bin.test.js +12 -2
package/kernel/bin/ffmpeg.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const RELEASE_VERSION = "8.1.2"
|
|
2
2
|
const CONDA_SPEC = `ffmpeg=${RELEASE_VERSION}`
|
|
3
|
-
const CONDA_CHANNEL_FLAGS = "
|
|
3
|
+
const CONDA_CHANNEL_FLAGS = "-c conda-forge"
|
|
4
4
|
|
|
5
5
|
class Ffmpeg {
|
|
6
6
|
description = "Installs FFmpeg for audio and video processing."
|
package/kernel/bin/index.js
CHANGED
|
@@ -452,6 +452,8 @@ class Bin {
|
|
|
452
452
|
let res
|
|
453
453
|
let lines
|
|
454
454
|
this.installed.conda = new Set()
|
|
455
|
+
this.installed.conda_versions = {}
|
|
456
|
+
this.installed.conda_builds = {}
|
|
455
457
|
if (conda_exists) {
|
|
456
458
|
// Try 3 times, because sometimes conda just silently quits with no error message
|
|
457
459
|
for(let i=0; i<5; i++) {
|
package/kernel/bin/setup.js
CHANGED
|
@@ -14,6 +14,7 @@ module.exports = {
|
|
|
14
14
|
"node",
|
|
15
15
|
"huggingface",
|
|
16
16
|
"git",
|
|
17
|
+
"ffmpeg",
|
|
17
18
|
// "caddy"
|
|
18
19
|
]
|
|
19
20
|
if (platform !== "win32") {
|
|
@@ -183,6 +184,7 @@ module.exports = {
|
|
|
183
184
|
"node",
|
|
184
185
|
"huggingface",
|
|
185
186
|
"git",
|
|
187
|
+
"ffmpeg",
|
|
186
188
|
]
|
|
187
189
|
if (platform !== "win32") {
|
|
188
190
|
conda_requirements.push("tmux")
|
|
@@ -222,6 +224,7 @@ module.exports = {
|
|
|
222
224
|
"huggingface",
|
|
223
225
|
"git",
|
|
224
226
|
"caddy",
|
|
227
|
+
"ffmpeg",
|
|
225
228
|
]
|
|
226
229
|
if (platform === "win32") {
|
|
227
230
|
requirements.push({ name: "registry" })
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -5990,6 +5990,8 @@ class Server {
|
|
|
5990
5990
|
if (home) {
|
|
5991
5991
|
if (version === this.version.pinokiod) {
|
|
5992
5992
|
console.log("version up to date")
|
|
5993
|
+
} else if (!(await this.kernel.exists("bin/miniforge/conda-meta"))) {
|
|
5994
|
+
console.warn("[WARN] Managed home refresh deferred until Miniforge is installed")
|
|
5993
5995
|
} else {
|
|
5994
5996
|
// For every update, this gets triggered exactly once.
|
|
5995
5997
|
// 1. first mkdir if it doesn't exist (this step is irrelevant since at this point the home dir will exist)
|
package/test/ffmpeg-bin.test.js
CHANGED
|
@@ -2,6 +2,7 @@ const assert = require('node:assert/strict')
|
|
|
2
2
|
const test = require('node:test')
|
|
3
3
|
|
|
4
4
|
const Ffmpeg = require('../kernel/bin/ffmpeg')
|
|
5
|
+
const Setup = require('../kernel/bin/setup')
|
|
5
6
|
|
|
6
7
|
function createKernel(platform = 'win32') {
|
|
7
8
|
return {
|
|
@@ -34,7 +35,7 @@ test('FFmpeg bin installs pinned ffmpeg into base Conda on Windows', async () =>
|
|
|
34
35
|
assert.equal(calls.length, 1)
|
|
35
36
|
assert.deepEqual(calls[0].message, [
|
|
36
37
|
'conda clean -y --all',
|
|
37
|
-
'conda install -y
|
|
38
|
+
'conda install -y -c conda-forge ffmpeg=8.1.2',
|
|
38
39
|
])
|
|
39
40
|
assert.equal(calls[0].env, undefined)
|
|
40
41
|
assert.equal(calls[0].message.some((command) => /ffmpeg-env|conda create|-p /.test(command)), false)
|
|
@@ -51,7 +52,7 @@ test('FFmpeg bin installs pinned ffmpeg into base Conda consistently across plat
|
|
|
51
52
|
|
|
52
53
|
assert.deepEqual(calls[0].message, [
|
|
53
54
|
'conda clean -y --all',
|
|
54
|
-
'conda install -y
|
|
55
|
+
'conda install -y -c conda-forge ffmpeg=8.1.2',
|
|
55
56
|
])
|
|
56
57
|
})
|
|
57
58
|
|
|
@@ -70,3 +71,12 @@ test('FFmpeg installed check requires the base Conda package at the pinned versi
|
|
|
70
71
|
kernel.bin.installed.conda_versions = {}
|
|
71
72
|
assert.equal(await ffmpeg.installed(), false)
|
|
72
73
|
})
|
|
74
|
+
|
|
75
|
+
test('setup presets bundle FFmpeg into Conda bootstrap and keep the module check', () => {
|
|
76
|
+
const kernel = { gpu: null }
|
|
77
|
+
for (const preset of ['ai', 'dev', 'advanced_dev']) {
|
|
78
|
+
const config = Setup[preset](kernel)
|
|
79
|
+
assert.equal(config.conda_requirements.includes('ffmpeg'), true)
|
|
80
|
+
assert.equal(config.requirements.some((requirement) => requirement.name === 'ffmpeg'), true)
|
|
81
|
+
}
|
|
82
|
+
})
|