diff --git a/Makefile2 b/Makefile2 deleted file mode 100644 index 88424859..00000000 --- a/Makefile2 +++ /dev/null @@ -1,68 +0,0 @@ -PACKER_VERSION := 1.10.0 -PWN_HOSTNAME := pwnagotchi -PWN_VERSION := ${PWN_VERSION} - -MACHINE_TYPE := $(shell uname -m) -ifneq (,$(filter x86_64,$(MACHINE_TYPE))) -GOARCH := amd64 -else ifneq (,$(filter i686,$(MACHINE_TYPE))) -GOARCH := 386 -else ifneq (,$(filter arm64% aarch64%,$(MACHINE_TYPE))) -GOARCH := arm64 -else ifneq (,$(filter arm%,$(MACHINE_TYPE))) -GOARCH := arm -else -GOARCH := amd64 -$(warning Unable to detect CPU arch from machine type $(MACHINE_TYPE), assuming $(GOARCH)) -endif - -# The Ansible part of the build can inadvertently change the active hostname of -# the build machine while updating the permanent hostname of the build image. -# If the unshare command is available, use it to create a separate namespace -# so hostname changes won't affect the build machine. -UNSHARE := $(shell command -v unshare) -ifneq (,$(UNSHARE)) -UNSHARE := $(UNSHARE) --uts -endif - -all: clean image clean - -update_langs: - @for lang in pwnagotchi/locale/*/; do\ - echo "updating language: $$lang ..."; \ - ./scripts/language.sh update $$(basename $$lang); \ - done - -compile_langs: - @for lang in pwnagotchi/locale/*/; do\ - echo "compiling language: $$lang ..."; \ - ./scripts/language.sh compile $$(basename $$lang); \ - done - -PACKER := ~/pwnagotchi/packer -PACKER_URL := https://releases.hashicorp.com/packer/$(PACKER_VERSION)/packer_$(PACKER_VERSION)_linux_$(GOARCH).zip -$(PACKER): - mkdir -p $(@D) - curl -L "$(PACKER_URL)" -o $(PACKER).zip - unzip $(PACKER).zip -d $(@D) - rm $(PACKER).zip - chmod +x $@ - -SDIST := dist/pwnagotchi-$(PWN_VERSION).tar.gz -$(SDIST): setup.py pwnagotchi - python3 setup.py sdist - -# Building the image requires packer, but don't rebuild the image just because packer updated. -pwnagotchi: | $(PACKER) - -# If the packer or ansible files are updated, rebuild the image. -pwnagotchi: $(SDIST) builder/pwnagotchi.json.pkr.hcl builder/raspberrypi32.yml builder/raspberrypi64.yml builder/orangepi.yml builder/extras/nexmon.yml $(shell find builder/data -type f) - - cd builder && $(PACKER) init pwnagotchi.json.pkr.hcl && sudo $(UNSHARE) $(PACKER) build -var "pwn_hostname=$(PWN_HOSTNAME)" -var "pwn_version=$(PWN_VERSION)" pwnagotchi.json.pkr.hcl - -.PHONY: image -image: pwnagotchi - -clean: - - rm -rf dist pwnagotchi.egg-info - - rm -f $(PACKER) diff --git a/builder/config.kcl b/builder/config.kcl deleted file mode 100644 index 2ce17d68..00000000 --- a/builder/config.kcl +++ /dev/null @@ -1,241 +0,0 @@ -# This is not working quite yet -# https://github.com/mkaczanowski/packer-builder-arm/pull/172 -packer { - required_plugins { - arm = { - version = "1.0.0" - source = "github.com/cdecoux/builder-arm" - } - ansible = { - source = "github.com/hashicorp/ansible" - version = "~> 1" - } - } -} - -variable "pwn_hostname" { - type = string -} - -variable "pwn_version" { - type = string -} - -source "arm" "rpi64-pwnagotchi" { - file_checksum_url = "https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2023-12-11/2023-12-11-raspios-bookworm-arm64-lite.img.xz.sha256" - file_urls = ["https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2023-12-11/2023-12-11-raspios-bookworm-arm64-lite.img.xz"] - file_checksum_type = "sha256" - file_target_extension = "xz" - file_unarchive_cmd = ["unxz", "$ARCHIVE_PATH"] - image_path = "../../../pwnagotchi-rpi-bookworm-${var.pwn_version}-arm64.img" - qemu_binary_source_path = "/usr/bin/qemu-aarch64-static" - qemu_binary_destination_path = "/usr/bin/qemu-aarch64-static" - image_build_method = "resize" - image_size = "9G" - image_type = "dos" - image_partitions { - name = "boot" - type = "c" - start_sector = "8192" - filesystem = "fat" - size = "256M" - mountpoint = "/boot/firmware" - } - image_partitions { - name = "root" - type = "83" - start_sector = "532480" - filesystem = "ext4" - size = "0" - mountpoint = "/" - } -} - -source "arm" "rpi32-pwnagotchi" { - file_checksum_url = "https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz.sha256" - file_urls = ["https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz"] - file_checksum_type = "sha256" - file_target_extension = "xz" - file_unarchive_cmd = ["unxz", "$ARCHIVE_PATH"] - image_path = "../../pwnagotchi-rpi-bullseye-${var.pwn_version}-armhf.img" - qemu_binary_source_path = "/usr/libexec/qemu-binfmt/arm-binfmt-P" - qemu_binary_destination_path = "/usr/libexec/qemu-binfmt/arm-binfmt-P" - image_build_method = "resize" - image_size = "9G" - image_type = "dos" - image_partitions { - name = "boot" - type = "c" - start_sector = "8192" - filesystem = "fat" - size = "256M" - mountpoint = "/boot" - } - image_partitions { - name = "root" - type = "83" - start_sector = "532480" - filesystem = "ext4" - size = "0" - mountpoint = "/" - } -} -source "arm" "opi-pwnagotchi" { - file_checksum_url = "https://github.com/jayofelony/orangepi/releases/download/v1.0/orangepi-raspios.img.xz.sha256" - file_urls = ["https://github.com/jayofelony/orangepi/releases/download/v1.0/orangepi-raspios.img.xz"] - file_checksum_type = "sha256" - file_target_extension = "xz" - file_unarchive_cmd = ["unxz", "$ARCHIVE_PATH"] - image_path = "../../pwnagotchi-opi-bullseye-${var.pwn_version}-arm64.img" - qemu_binary_source_path = "/usr/libexec/qemu-binfmt/aarch64-binfmt-P" - qemu_binary_destination_path = "/usr/libexec/qemu-binfmt/aarch64-binfmt-P" - image_build_method = "resize" - image_size = "9G" - image_type = "dos" - image_partitions { - name = "root" - type = "83" - start_sector = "8192" - filesystem = "ext4" - size = "0" - mountpoint = "/" - } -} - -# a build block invokes sources and runs provisioning steps on them. The -# documentation for build blocks can be found here: -# https://www.packer.io/docs/from-1.5/blocks/build -build { - name = "Raspberry Pi 64 Pwnagotchi" - sources = ["source.arm.rpi64-pwnagotchi"] - - provisioner "file" { - destination = "/usr/bin/" - sources = [ - "data/usr/bin/bettercap-launcher", - "data/usr/bin/hdmioff", - "data/usr/bin/hdmion", - "data/usr/bin/monstart", - "data/usr/bin/monstop", - "data/usr/bin/pwnagotchi-launcher", - "data/usr/bin/pwnlib", - ] - } - provisioner "shell" { - inline = ["chmod +x /usr/bin/*"] - } - - provisioner "file" { - destination = "/etc/systemd/system/" - sources = [ - "data/etc/systemd/system/bettercap.service", - "data/etc/systemd/system/pwnagotchi.service", - "data/etc/systemd/system/pwngrid-peer.service", - ] - } - provisioner "file" { - destination = "/etc/update-motd.d/01-motd" - source = "data/etc/update-motd.d/01-motd" - } - provisioner "shell" { - inline = ["chmod +x /etc/update-motd.d/*"] - } - provisioner "shell" { - inline = ["apt-get -y --allow-releaseinfo-change update", "apt-get -y dist-upgrade", "apt-get install -y --no-install-recommends ansible"] - } - provisioner "ansible-local" { - command = "ANSIBLE_FORCE_COLOR=1 PYTHONUNBUFFERED=1 PWN_VERSION=${var.pwn_version} PWN_HOSTNAME=${var.pwn_hostname} ansible-playbook" - extra_arguments = ["--extra-vars \"ansible_python_interpreter=/usr/bin/python3\""] - playbook_file = "raspberrypi64.yml" - } -} - -build { - name = "Raspberry Pi 32 Pwnagotchi" - sources = ["source.arm.rpi32-pwnagotchi"] - provisioner "file" { - destination = "/usr/bin/" - sources = [ - "data/usr/bin/bettercap-launcher", - "data/usr/bin/hdmioff", - "data/usr/bin/hdmion", - "data/usr/bin/monstart", - "data/usr/bin/monstop", - "data/usr/bin/pwnagotchi-launcher", - "data/usr/bin/pwnlib", - ] - } - provisioner "shell" { - inline = ["chmod +x /usr/bin/*"] - } - - provisioner "file" { - destination = "/etc/systemd/system/" - sources = [ - "data/etc/systemd/system/bettercap.service", - "data/etc/systemd/system/pwnagotchi.service", - "data/etc/systemd/system/pwngrid-peer.service", - ] - } - provisioner "file" { - destination = "/etc/update-motd.d/01-motd" - source = "data/etc/update-motd.d/01-motd" - } - provisioner "shell" { - inline = ["chmod +x /etc/update-motd.d/*"] - } - provisioner "shell" { - inline = ["apt-get -y --allow-releaseinfo-change update", "apt-get -y dist-upgrade", "apt-get install -y --no-install-recommends ansible"] - } - provisioner "ansible-local" { - command = "ANSIBLE_FORCE_COLOR=1 PYTHONUNBUFFERED=1 PWN_VERSION=${var.pwn_version} PWN_HOSTNAME=${var.pwn_hostname} ansible-playbook" - extra_arguments = ["--extra-vars \"ansible_python_interpreter=/usr/bin/python3\""] - playbook_dir = "extras/" - playbook_file = "raspberrypi32.yml" - } -} - -#build { -# name = "Orange Pi Pwnagotchi" -# sources = ["source.arm.opi-pwnagotchi"] - -# provisioner "file" { -# destination = "/usr/bin/" -# sources = [ -# "data/usr/bin/bettercap-launcher", -# "data/usr/bin/hdmioff", -# "data/usr/bin/hdmion", -# "data/usr/bin/monstart", -# "data/usr/bin/monstop", -# "data/usr/bin/pwnagotchi-launcher", -# "data/usr/bin/pwnlib", -# ] -# } -# provisioner "shell" { -# inline = ["chmod +x /usr/bin/*"] -# } - -# provisioner "file" { -# destination = "/etc/systemd/system/" -# sources = [ -# "data/etc/systemd/system/bettercap.service", -# "data/etc/systemd/system/pwnagotchi.service", -# "data/etc/systemd/system/pwngrid-peer.service", -# ] -# } -# provisioner "file" { -# destination = "/etc/update-motd.d/01-motd" -# source = "data/etc/update-motd.d/01-motd" -# } -# provisioner "shell" { -# inline = ["chmod +x /etc/update-motd.d/*"] -# } -# provisioner "shell" { -# inline = ["apt-get -y --allow-releaseinfo-change update", "apt-get -y dist-upgrade", "apt-get install -y --no-install-recommends ansible"] -# } -# provisioner "ansible-local" { -# command = "ANSIBLE_FORCE_COLOR=1 PYTHONUNBUFFERED=1 PWN_VERSION=${var.pwn_version} PWN_HOSTNAME=${var.pwn_hostname} ansible-playbook" -# extra_arguments = ["--extra-vars \"ansible_python_interpreter=/usr/bin/python3\""] -# playbook_file = "orangepi.yml" -# } -#} \ No newline at end of file