luci-app-attendedsysupgrade: request filesystem
It is possible to request a specific filesystem so no other filesystems are used. This speeds up the build process and may prevent failures in edge cases. A recent edge case is installing more packages than ext4 can handle while squashfs works fine due to compression. Backport `procd` detection of `rootfs_type` to JavaScript: https://git.openwrt.org/?p=project/procd.git;a=blob;f=system.c;h=93eac59c3b01ce3729dc27539ac483f5314759d3;hb=HEAD#l49 Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit is contained in:
parent
3856d504d2
commit
bb6ef9fcc6
1 changed files with 22 additions and 4 deletions
|
@ -79,13 +79,14 @@ return view.extend({
|
||||||
version: '',
|
version: '',
|
||||||
packages: [],
|
packages: [],
|
||||||
diff_packages: true,
|
diff_packages: true,
|
||||||
|
filesystem: '',
|
||||||
},
|
},
|
||||||
|
|
||||||
handle200: function (response) {
|
handle200: function (response) {
|
||||||
res = response.json();
|
res = response.json();
|
||||||
var image;
|
var image;
|
||||||
for (image of res.images) {
|
for (image of res.images) {
|
||||||
if (this.data.rootfs_type == image.filesystem) {
|
if (this.firmware.filesystem == image.filesystem) {
|
||||||
if (this.data.efi) {
|
if (this.data.efi) {
|
||||||
if (image.type == 'combined-efi') {
|
if (image.type == 'combined-efi') {
|
||||||
break;
|
break;
|
||||||
|
@ -402,7 +403,6 @@ return view.extend({
|
||||||
L.resolveDefault(callPackagelist(), {}),
|
L.resolveDefault(callPackagelist(), {}),
|
||||||
L.resolveDefault(callSystemBoard(), {}),
|
L.resolveDefault(callSystemBoard(), {}),
|
||||||
L.resolveDefault(fs.stat("/sys/firmware/efi"), null),
|
L.resolveDefault(fs.stat("/sys/firmware/efi"), null),
|
||||||
fs.read("/proc/mounts"),
|
|
||||||
uci.load('attendedsysupgrade'),
|
uci.load('attendedsysupgrade'),
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
|
@ -418,9 +418,27 @@ return view.extend({
|
||||||
this.data.revision = res[1].release.revision;
|
this.data.revision = res[1].release.revision;
|
||||||
this.data.efi = res[2];
|
this.data.efi = res[2];
|
||||||
if (res[1].rootfs_type) {
|
if (res[1].rootfs_type) {
|
||||||
this.data.rootfs_type = res[1].rootfs_type;
|
this.firmware.filesystem = res[1].rootfs_type;
|
||||||
} else {
|
} else {
|
||||||
this.data.rootfs_type = res[3].split(/\r?\n/)[0].split(' ')[2]
|
L.resolveDefault(fs.read("/proc/mounts"), '')
|
||||||
|
.then(mounts => {
|
||||||
|
mounts = mounts.split(/\r?\n/);
|
||||||
|
var mount_point = '/';
|
||||||
|
for (var i = 0; i < mounts.length; i++) {
|
||||||
|
// /dev/root /rom squashfs ro,relatime 0 0
|
||||||
|
var [ ,path,type,,, ] = mounts[i].split(' ')
|
||||||
|
if (path == mount_point) {
|
||||||
|
if (type != 'overlay') {
|
||||||
|
this.firmware.filesystem = type;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
// restart search for root mountpoint
|
||||||
|
i = -1;
|
||||||
|
mount_point = '/rom';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.data.url = uci.get_first('attendedsysupgrade', 'server', 'url');
|
this.data.url = uci.get_first('attendedsysupgrade', 'server', 'url');
|
||||||
|
|
Loading…
Reference in a new issue