update 22.03.4

This commit is contained in:
2023-04-23 11:20:38 +00:00
parent 12dc7b849c
commit 2d062dee87
9 changed files with 153 additions and 7 deletions

View 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"
}

1
.gitignore vendored
View File

@@ -1 +1,2 @@
_*
result

View File

@@ -24,32 +24,37 @@ This file setup the nix shell with all necessary dependencies and shell environm
### Commands
loadBuilder -> load device specific image builder and manifest ("default") packages list:
```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="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run loadBuilder
```
makeImage -> create image by image builder
```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="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeImage
```
removeBuilder -> remove image builder
```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="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
```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="brcm2708"; arch="bcm2708"; version="19.07.4"; profile="rpi"; packages=["luci-ssl"];}' --pure --run makeCleanImage
```
created image can be found:
```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
@@ -68,6 +73,7 @@ pkgs.callPackage <path_to_repo>/buildOpenwrt.nix {
```
pi example
```nix
{ pkgs ? import <nixpkgs> {}}:
pkgs.callPackage ../buildOpenwrt.nix {

4
alias.sh Normal file
View File

@@ -0,0 +1,4 @@
#!/bin/env sh
alias nixe='nix --experimental-features "nix-command flakes"'
export NIXPKGS_ALLOW_INSECURE=1

View File

@@ -20,7 +20,6 @@ pkgs.mkShell {
gengetopt
subversion
git
python2Full
python3Full
rsync
man-db

View File

@@ -2,7 +2,7 @@
pkgs.callPackage ../buildOpenwrt.nix {
target = "mvebu";
arch = "cortexa9";
version= "22.03.2";
version= "22.03.4";
profile = "linksys_wrt1200ac";
packages = [
"adblock"

View File

@@ -2,7 +2,7 @@
pkgs.callPackage ../buildOpenwrt.nix {
target = "bcm27xx";
arch = "bcm2708";
version= "22.03.2";
version= "22.03.4";
profile = "rpi";
packages = ["luci-ssl"];
}

26
flake.lock generated Normal file
View 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
View 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'"
'';
};
});
};
}