update 22.03.4
This commit is contained in:
25
.devcontainer/devcontainer.json
Normal file
25
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||||
|
// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
|
||||||
|
{
|
||||||
|
"name": "Alpine",
|
||||||
|
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||||
|
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.17",
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/nix:1": {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Features to add to the dev container. More info: https://containers.dev/features.
|
||||||
|
// "features": {},
|
||||||
|
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
// "forwardPorts": [],
|
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
// "postCreateCommand": "uname -a",
|
||||||
|
|
||||||
|
// Configure tool-specific properties.
|
||||||
|
// "customizations": {},
|
||||||
|
|
||||||
|
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||||
|
// "remoteUser": "root"
|
||||||
|
}
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
_*
|
_*
|
||||||
|
result
|
||||||
12
README.md
12
README.md
@@ -1,4 +1,4 @@
|
|||||||
# NOIBW - Nix-Openwrt-ImageBuilder-Wrapper
|
# NOIBW - Nix-Openwrt-ImageBuilder-Wrapper
|
||||||
|
|
||||||
provide a nix shell, for creating openwrt images by the image builder in declarative way.
|
provide a nix shell, for creating openwrt images by the image builder in declarative way.
|
||||||
|
|
||||||
@@ -24,32 +24,37 @@ This file setup the nix shell with all necessary dependencies and shell environm
|
|||||||
### Commands
|
### Commands
|
||||||
|
|
||||||
loadBuilder -> load device specific image builder and manifest ("default") packages list:
|
loadBuilder -> load device specific image builder and manifest ("default") packages list:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run loadBuilder
|
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run loadBuilder
|
||||||
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run loadBuilder
|
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run loadBuilder
|
||||||
```
|
```
|
||||||
|
|
||||||
makeImage -> create image by image builder
|
makeImage -> create image by image builder
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run makeCmakeImageleanImage
|
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run makeCmakeImageleanImage
|
||||||
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeImage
|
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeImage
|
||||||
```
|
```
|
||||||
|
|
||||||
removeBuilder -> remove image builder
|
removeBuilder -> remove image builder
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run removeBuilder
|
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run removeBuilder
|
||||||
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run removeBuilder
|
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run removeBuilder
|
||||||
```
|
```
|
||||||
|
|
||||||
makeCleanImage -> remove old image builder, load new image builder and create image
|
makeCleanImage -> remove old image builder, load new image builder and create image
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run makeCleanImage
|
# nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="<target_name>"; arch="<arch_name"; version="<openwrt_release_version>"; profile="<profile_name>"; packages=[<list_of_user_packages>];}' --pure --run makeCleanImage
|
||||||
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeCleanImage
|
nix-shell --expr 'with import <nixpkgs> {}; callPackage ./buildOpenwrt.nix {target="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeCleanImage
|
||||||
```
|
```
|
||||||
|
|
||||||
created image can be found:
|
created image can be found:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
${workingFolder}/openwrt-imagebuilder-${version}-${target}-$arch}.Linux-x86_64/bin/targets/${target}/${arch}
|
${workingFolder}/openwrt-imagebuilder-${version}-${target}-${arch}.Linux-x86_64/bin/targets/${target}/${arch}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Device File
|
## Device File
|
||||||
@@ -68,6 +73,7 @@ pkgs.callPackage <path_to_repo>/buildOpenwrt.nix {
|
|||||||
```
|
```
|
||||||
|
|
||||||
pi example
|
pi example
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{ pkgs ? import <nixpkgs> {}}:
|
{ pkgs ? import <nixpkgs> {}}:
|
||||||
pkgs.callPackage ../buildOpenwrt.nix {
|
pkgs.callPackage ../buildOpenwrt.nix {
|
||||||
@@ -90,4 +96,4 @@ build an image with:
|
|||||||
nix-shell devices/pi-img.nix --run makeCleanImage
|
nix-shell devices/pi-img.nix --run makeCleanImage
|
||||||
```
|
```
|
||||||
|
|
||||||
For more example see `devices` folder.
|
For more example see `devices` folder.
|
||||||
|
|||||||
4
alias.sh
Normal file
4
alias.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/env sh
|
||||||
|
|
||||||
|
alias nixe='nix --experimental-features "nix-command flakes"'
|
||||||
|
export NIXPKGS_ALLOW_INSECURE=1
|
||||||
@@ -20,7 +20,6 @@ pkgs.mkShell {
|
|||||||
gengetopt
|
gengetopt
|
||||||
subversion
|
subversion
|
||||||
git
|
git
|
||||||
python2Full
|
|
||||||
python3Full
|
python3Full
|
||||||
rsync
|
rsync
|
||||||
man-db
|
man-db
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
pkgs.callPackage ../buildOpenwrt.nix {
|
pkgs.callPackage ../buildOpenwrt.nix {
|
||||||
target = "mvebu";
|
target = "mvebu";
|
||||||
arch = "cortexa9";
|
arch = "cortexa9";
|
||||||
version= "22.03.2";
|
version= "22.03.4";
|
||||||
profile = "linksys_wrt1200ac";
|
profile = "linksys_wrt1200ac";
|
||||||
packages = [
|
packages = [
|
||||||
"adblock"
|
"adblock"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
pkgs.callPackage ../buildOpenwrt.nix {
|
pkgs.callPackage ../buildOpenwrt.nix {
|
||||||
target = "bcm27xx";
|
target = "bcm27xx";
|
||||||
arch = "bcm2708";
|
arch = "bcm2708";
|
||||||
version= "22.03.2";
|
version= "22.03.4";
|
||||||
profile = "rpi";
|
profile = "rpi";
|
||||||
packages = ["luci-ssl"];
|
packages = ["luci-ssl"];
|
||||||
}
|
}
|
||||||
|
|||||||
26
flake.lock
generated
Normal file
26
flake.lock
generated
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1682173319,
|
||||||
|
"narHash": "sha256-tPhOpJJ+wrWIusvGgIB2+x6ILfDkEgQMX0BTtM5vd/4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ee7ec1c71adc47d2e3c2d5eb0d6b8fbbd42a8d1c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-22.11-small",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
85
flake.nix
Normal file
85
flake.nix
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
description = "NOIBW - Nix-Openwrt-ImageBuilder-Wrapper";
|
||||||
|
inputs.nixpkgs.url = "nixpkgs/nixos-22.11-small";
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs }:
|
||||||
|
let
|
||||||
|
name = "NOIBW";
|
||||||
|
version = "1.7.0";
|
||||||
|
supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||||
|
nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
|
||||||
|
devTaskScripts = forAllSystems (system:
|
||||||
|
{
|
||||||
|
autoTag = nixpkgsFor.${system}.writeScript "auto_tag.sh" ''
|
||||||
|
git tag --force v${version}
|
||||||
|
git push origin v${version}
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
appScripts = forAllSystems (system:
|
||||||
|
{
|
||||||
|
makeCleanImageScript = nixpkgsFor.${system}.writeScript "makeCleanImage.sh" ''
|
||||||
|
nix-shell "$1" --run makeCleanImage
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
packages = forAllSystems (system:
|
||||||
|
{
|
||||||
|
default = appScripts.${system}.makeCleanImageScript;
|
||||||
|
});
|
||||||
|
|
||||||
|
apps = forAllSystems (system:
|
||||||
|
let
|
||||||
|
updateLockScript = nixpkgsFor.${system}.writeShellScriptBin "update_flake_lock.sh" ''
|
||||||
|
nix --experimental-features 'nix-command flakes' flake lock --update-input nixpkgs
|
||||||
|
nix --experimental-features 'nix-command flakes' build
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
default = { type = "app"; program = "${packages.${system}.default}"; };
|
||||||
|
devTasks = {
|
||||||
|
updateFlakeLock = { type = "app"; program = "${updateLockScript}/bin/update_flake_lock.sh"; };
|
||||||
|
autoTag = { type = "app"; program = "${devTaskScripts.${system}.autoTag}"; };
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
devShells = forAllSystems (system:
|
||||||
|
{
|
||||||
|
default = nixpkgsFor.${system}.mkShell {
|
||||||
|
name = "dev-shell";
|
||||||
|
packages = with nixpkgsFor.${system}; [
|
||||||
|
perl
|
||||||
|
quilt
|
||||||
|
ccache
|
||||||
|
libxslt
|
||||||
|
gcc
|
||||||
|
gengetopt
|
||||||
|
subversion
|
||||||
|
git
|
||||||
|
python3Full
|
||||||
|
rsync
|
||||||
|
man-db
|
||||||
|
gawk
|
||||||
|
gettext
|
||||||
|
unzip
|
||||||
|
file
|
||||||
|
wget
|
||||||
|
ncurses5.dev
|
||||||
|
zlib.static
|
||||||
|
gnumake
|
||||||
|
which
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
wget
|
||||||
|
gnutar
|
||||||
|
curl
|
||||||
|
cacert
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
alias nixe="nix --experimental-features 'nix-command flakes'"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user