Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 25 additions & 90 deletions guix.scm
Original file line number Diff line number Diff line change
@@ -1,93 +1,28 @@
;; SPDX-License-Identifier: MPL-2.0
;; Guix package definition for FireFlag
;; Guix development environment.
;; Usage: guix shell -D -f guix.scm

(use-modules
(guix packages)
(guix download)
(guix git-download)
(guix build-system gnu)
(guix licenses)
((guix licenses) #:prefix license:)
(gnu packages)
(gnu packages base)
(gnu packages bash)
(gnu packages idris)
(gnu packages zig)
(gnu packages node)
(gnu packages gnupg)
(gnu packages image)
(gnu packages version-control))
(use-modules (guix packages)
(guix build-system gnu)
(guix licenses)
(gnu packages base)
(gnu packages bash)
(gnu packages base)
(gnu packages java)
(gnu packages rust)
(gnu packages cmake)
(gnu packages zig)
(gnu packages golang)
(gnu packages node)
(gnu packages python))

(define-public fireflag
(package
(name "fireflag")
(version "0.1.0")
(source (local-file "." "fireflag-checkout"
#:recursive? #t
#:select? (git-predicate (dirname (current-filename)))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure) ; No configure script
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((deno (assoc-ref inputs "deno"))
(idris2 (assoc-ref inputs "idris2"))
(zig (assoc-ref inputs "zig")))
;; Build ReScript code
(invoke "deno" "run" "-A" "npm:rescript" "build")

;; Check Idris2 proofs
(with-directory-excursion "extension/lib/idris"
(invoke "idris2" "--check" "FlagSafety.idr")
(invoke "idris2" "--check" "FlagTransaction.idr")
(invoke "idris2" "--check" "SafeUI.idr"))

;; Build extension
(with-directory-excursion "extension"
(invoke "deno" "run" "-A" "npm:web-ext" "build" "--overwrite-dest")))
#t))
(replace 'check
(lambda _
;; Lint extension
(with-directory-excursion "extension"
(invoke "deno" "run" "-A" "npm:web-ext" "lint"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/fireflag")))
;; Install built extension
(install-file "extension/web-ext-artifacts/*.xpi" share)
(install-file "LICENSE" share)
(install-file "README.adoc" share))
#t)))))
(native-inputs
`(("bash" ,bash)
("deno" ,deno)
("idris2" ,idris2)
("zig" ,zig)
("node" ,node)
("git" ,git)
("gnupg" ,gnupg)
("imagemagick" ,imagemagick)))
(synopsis "Safe Firefox/Gecko flag management extension")
(description
"FireFlag is a Firefox/Gecko browser extension that helps users and
developers safely manage browser flags (about:config, experimental features,
developer flags) with safety classification, tracking, and analytics.

Features:
@itemize
@item 105+ well-researched Firefox flags with safety levels
@item Automated weekly database updates from Mozilla source
@item Granular permission system with UI feedback
@item Developer tools integration (tracking, export, DevTools panel)
@item Type-safe ReScript + Idris2 safety proofs
@item Support for Firefox, Librewolf, Waterfox, Pale Moon
@end itemize")
(home-page "https://github.com/hyperpolymath/fireflag")
(license license:mpl2.0))) ; MPL-2.0 fallback for Mozilla Add-ons

fireflag
(package
(name "fireflag")
(version "0.1.0")
(source #f)
(build-system gnu-build-system)
(inputs (list coreutils bash make openjdk rust cmake zig go node python))
(synopsis "fireflag")
(description "fireflag — part of the hyperpolymath ecosystem.")
(home-page "https://github.com/hyperpolymath/fireflag")
(license ((@@ (guix licenses) license) "MPL-2.0" "https://github.com/hyperpolymath/palimpsest-license")))
Loading