mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-06 23:43:20 +02:00
Compare commits
9
Commits
upload-image
...
v25.03.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e3fe203005 | ||
|
|
18f7c779c9 | ||
|
|
454207c185 | ||
|
|
d877806e2b | ||
|
|
5ed7182361 | ||
|
|
3f695b6c62 | ||
|
|
4f3605a5f7 | ||
|
|
e89dde0d25 | ||
|
|
e1ecf6b71d |
@@ -90,7 +90,7 @@ if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then
|
|||||||
rel=$(ver)
|
rel=$(ver)
|
||||||
ln -sf rootfs.squashfs "$BINARIES_DIR/${NAME}${rel}.img"
|
ln -sf rootfs.squashfs "$BINARIES_DIR/${NAME}${rel}.img"
|
||||||
if [ -n "$rel" ]; then
|
if [ -n "$rel" ]; then
|
||||||
ln -sf "$BINARIES_DIR/${NAME}${rel}.img" "$BINARIES_DIR/${NAME}.img"
|
ln -sf "${NAME}${rel}.img" "$BINARIES_DIR/${NAME}.img"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,14 @@
|
|||||||
# the migrate tool inserts old version in name before .cfg extension.
|
# the migrate tool inserts old version in name before .cfg extension.
|
||||||
CONFIG_FILE="/cfg/startup-config.cfg"
|
CONFIG_FILE="/cfg/startup-config.cfg"
|
||||||
BACKUP_FILE="/cfg/backup/startup-config.cfg"
|
BACKUP_FILE="/cfg/backup/startup-config.cfg"
|
||||||
mkdir -p "$(dirname "$BACKUP_FILE")"
|
BACKUP_DIR="$(dirname "$BACKUP_FILE")"
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
chown root:wheel "$BACKUP_DIR"
|
||||||
|
chmod 0770 "$BACKUP_DIR"
|
||||||
|
|
||||||
if [ ! -f "$CONFIG_FILE" ]; then
|
if [ ! -f "$CONFIG_FILE" ]; then
|
||||||
note "No $(basename "$CONFIG_FILE" .cfg) yet, likely factory reset."
|
logger -I $$ -k -p user.notice -t $(basename "$0") "No $(basename "$CONFIG_FILE" .cfg) yet, likely factory reset."
|
||||||
exit 0
|
exit 0
|
||||||
elif migrate -cq "$CONFIG_FILE"; then
|
elif migrate -cq "$CONFIG_FILE"; then
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -3,6 +3,12 @@ Change Log
|
|||||||
|
|
||||||
All notable changes to the project are documented in this file.
|
All notable changes to the project are documented in this file.
|
||||||
|
|
||||||
|
[v25.03.1][] - 2025-04-11
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
- Fix configuration migration issues when upgrading
|
||||||
|
|
||||||
|
|
||||||
[v25.03.0][] - 2025-03-31
|
[v25.03.0][] - 2025-03-31
|
||||||
-------------------------
|
-------------------------
|
||||||
@@ -1530,6 +1536,7 @@ Supported YANG models in addition to those used by sysrepo and netopeer:
|
|||||||
|
|
||||||
[buildroot]: https://buildroot.org/
|
[buildroot]: https://buildroot.org/
|
||||||
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v25.03.0...HEAD
|
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v25.03.0...HEAD
|
||||||
|
[v25.03.1]: https://github.com/kernelkit/infix/compare/v25.03.0...v25.03.1
|
||||||
[v25.03.0]: https://github.com/kernelkit/infix/compare/v25.02.0...v25.03.0
|
[v25.03.0]: https://github.com/kernelkit/infix/compare/v25.02.0...v25.03.0
|
||||||
[v25.02.0]: https://github.com/kernelkit/infix/compare/v25.01.0...v25.02.0
|
[v25.02.0]: https://github.com/kernelkit/infix/compare/v25.01.0...v25.02.0
|
||||||
[v25.01.0]: https://github.com/kernelkit/infix/compare/v24.11.0...v25.01.0
|
[v25.01.0]: https://github.com/kernelkit/infix/compare/v24.11.0...v25.01.0
|
||||||
|
|||||||
+70
-70
@@ -27,7 +27,7 @@ cleanup()
|
|||||||
note()
|
note()
|
||||||
{
|
{
|
||||||
if [ -n "$quiet" ]; then
|
if [ -n "$quiet" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
logger -I $$ -k -p user.notice -t "$ident" "$1"
|
logger -I $$ -k -p user.notice -t "$ident" "$1"
|
||||||
}
|
}
|
||||||
@@ -46,11 +46,11 @@ atoi()
|
|||||||
file_version()
|
file_version()
|
||||||
{
|
{
|
||||||
jq -r '
|
jq -r '
|
||||||
if .["infix-meta:meta"] | has("infix-meta:version") then
|
if .["infix-meta:meta"] | has("version") then
|
||||||
.["infix-meta:meta"]["infix-meta:version"]
|
.["infix-meta:meta"]["version"]
|
||||||
else
|
else
|
||||||
"0.0"
|
"0.0"
|
||||||
end
|
end
|
||||||
' "$1"
|
' "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,16 +58,16 @@ file_version()
|
|||||||
confd_version()
|
confd_version()
|
||||||
{
|
{
|
||||||
find "$scripts" -mindepth 1 -maxdepth 1 -type d \
|
find "$scripts" -mindepth 1 -maxdepth 1 -type d \
|
||||||
| sort -V | tail -n1 | xargs -n1 basename
|
| sort -V | tail -n1 | xargs -n1 basename
|
||||||
}
|
}
|
||||||
|
|
||||||
# Update meta data with the latest version
|
# Update meta data with the latest version
|
||||||
meta_version()
|
meta_version()
|
||||||
{
|
{
|
||||||
if jq --arg version "$sys_version" '.["infix-meta:meta"] = {"infix-meta:version": $version}' "$2" \
|
if jq --arg version "$sys_version" '.["infix-meta:meta"] = {"version": $version}' "$2" \
|
||||||
> "${2}.tmp" && mv "${2}.tmp" "$2"; then
|
> "${2}.tmp" && mv "${2}.tmp" "$2"; then
|
||||||
note "$1: configuration updated to version $sys_version."
|
note "$1: configuration updated to version $sys_version."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
err "$1: failed updating configuration to version $sys_version!"
|
err "$1: failed updating configuration to version $sys_version!"
|
||||||
@@ -80,23 +80,23 @@ migrate()
|
|||||||
note "$1: migrating from version $cfg_version"
|
note "$1: migrating from version $cfg_version"
|
||||||
|
|
||||||
for version_dir in $(find "$scripts" -mindepth 1 -maxdepth 1 -type d | sort -V); do
|
for version_dir in $(find "$scripts" -mindepth 1 -maxdepth 1 -type d | sort -V); do
|
||||||
dir=$(basename "$version_dir")
|
dir=$(basename "$version_dir")
|
||||||
version=$(atoi "$dir")
|
version=$(atoi "$dir")
|
||||||
|
|
||||||
# Step by step upgrade file to latest version
|
# Step by step upgrade file to latest version
|
||||||
if [ "$cfg_level" -lt "$version" ]; then
|
if [ "$cfg_level" -lt "$version" ]; then
|
||||||
note "Applying migrations for version $dir ..."
|
note "Applying migrations for version $dir ..."
|
||||||
|
|
||||||
# Apply all scripts in the version directory in order
|
# Apply all scripts in the version directory in order
|
||||||
for script in $(find "$version_dir" -type f -name '*.sh' | sort -V); do
|
for script in $(find "$version_dir" -type f -name '*.sh' | sort -V); do
|
||||||
note "$1: calling $script ..."
|
note "$1: calling $script ..."
|
||||||
sh "$script" "$2"
|
sh "$script" "$2"
|
||||||
done
|
done
|
||||||
|
|
||||||
# File now at $version ...
|
# File now at $version ...
|
||||||
cfg_level="$version"
|
cfg_level="$version"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try migrating a copy, then diff the files, for factory-config check
|
# Try migrating a copy, then diff the files, for factory-config check
|
||||||
@@ -126,31 +126,31 @@ eval set -- "$OPTS"
|
|||||||
|
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-b)
|
-b)
|
||||||
bak=$2
|
bak=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-c)
|
-c)
|
||||||
check=1
|
check=1
|
||||||
;;
|
;;
|
||||||
-h)
|
-h)
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
-i)
|
-i)
|
||||||
inplace=1
|
inplace=1
|
||||||
;;
|
;;
|
||||||
-q)
|
-q)
|
||||||
quiet=1
|
quiet=1
|
||||||
;;
|
;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# Likely file argument
|
# Likely file argument
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
@@ -190,22 +190,22 @@ if [ "$cfg_level" -eq "$sys_level" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
if [ -n "$check" ]; then
|
if [ -n "$check" ]; then
|
||||||
# We may be called to check a file without meta:version (factory)
|
# We may be called to check a file without meta:version (factory)
|
||||||
if [ "$cfg_version" = "0.0" ]; then
|
if [ "$cfg_version" = "0.0" ]; then
|
||||||
if diff "$tmp"; then
|
if diff "$tmp"; then
|
||||||
# File is OK, despite lacking meta:version
|
# File is OK, despite lacking meta:version
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
msg="$orig: has syntax error, requires migrating."
|
msg="$orig: has syntax error, requires migrating."
|
||||||
else
|
else
|
||||||
msg="$orig: version $cfg_version, requires migrating."
|
msg="$orig: version $cfg_version, requires migrating."
|
||||||
fi
|
fi
|
||||||
if [ -t 0 ]; then
|
if [ -t 0 ]; then
|
||||||
echo "$msg"
|
echo "$msg"
|
||||||
else
|
else
|
||||||
note "$msg"
|
note "$msg"
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -214,10 +214,10 @@ if [ -n "$bak" ]; then
|
|||||||
ext="${bak##*.}"
|
ext="${bak##*.}"
|
||||||
bak="${fil}-${cfg_version}.${ext}"
|
bak="${fil}-${cfg_version}.${ext}"
|
||||||
if cp -p "$tmp" "$bak" 2>/dev/null; then
|
if cp -p "$tmp" "$bak" 2>/dev/null; then
|
||||||
note "$orig: backup created: $bak"
|
note "$orig: backup created: $bak"
|
||||||
else
|
else
|
||||||
err "$orig: failed creating backup: $bak"
|
err "$orig: failed creating backup: $bak"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,17 @@
|
|||||||
|
|
||||||
file=$1
|
file=$1
|
||||||
temp=${file}.tmp
|
temp=${file}.tmp
|
||||||
|
jq '
|
||||||
jq '.["infix-services:ssh"] = {
|
if has("infix-services:ssh") then
|
||||||
"enabled": true,
|
.
|
||||||
"hostkey": ["genkey"],
|
else
|
||||||
"listen": [
|
.["infix-services:ssh"] = {
|
||||||
{"name": "ipv4", "address": "0.0.0.0", "port": 22},
|
"enabled": true,
|
||||||
{"name": "ipv6", "address": "::", "port": 22}
|
"hostkey": ["genkey"],
|
||||||
]
|
"listen": [
|
||||||
}' "$file" > "$temp"
|
{"name": "ipv4", "address": "0.0.0.0", "port": 22},
|
||||||
|
{"name": "ipv6", "address": "::", "port": 22}
|
||||||
mv "$temp" "$file"
|
]
|
||||||
|
}
|
||||||
|
end' $file > temp.json
|
||||||
|
mv temp.json $file
|
||||||
|
|||||||
Reference in New Issue
Block a user