From b2e181db5a8ee376540eaffbc9dbb485d9ae6a9c Mon Sep 17 00:00:00 2001 From: TakeV Date: Tue, 19 Nov 2024 18:01:42 -0500 Subject: [PATCH] WIP: Initial package --- modules/guix-punk/packages/restic.scm | 481 ++++++++++++++++++++++++++ 1 file changed, 481 insertions(+) create mode 100644 modules/guix-punk/packages/restic.scm diff --git a/modules/guix-punk/packages/restic.scm b/modules/guix-punk/packages/restic.scm new file mode 100644 index 0000000..ce255af --- /dev/null +++ b/modules/guix-punk/packages/restic.scm @@ -0,0 +1,481 @@ +(define-module (guix-punk packages restic) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system go) + #:use-module (guix build-system copy) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages cmake) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gcc) + #:use-module (gnu packages golang) + #:use-module (gnu packages golang-build) + #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-compression) + #:use-module (gnu packages golang-crypto) + #:use-module (gnu packages golang-maths) + #:use-module (gnu packages golang-web) + #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages prometheus) + #:use-module (gnu packages linux) + #:use-module (gnu packages specifications)) + +(define-public go-github-com-go-ole-go-ole + (package + (name "go-github-com-go-ole-go-ole") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-ole/go-ole") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vr62wwjp206sxah2l79l007s7n187fjzkrnwb85ivqmazfjspxl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-ole/go-ole")) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/go-ole/go-ole") + (synopsis "Go OLE") + (description + "Go bindings for Windows COM using shared libraries instead of cgo.") + (license license:expat))) + +(define-public go-github-com-capnspacehook-taskmaster + (package + (name "go-github-com-capnspacehook-taskmaster") + (version "0.0.0-20210519235353-1629df7c85e9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/capnspacehook/taskmaster") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06lyxysg011s81qi0s1pza7cfp4b4nbv62gsbdgk1whb6p8njlvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/capnspacehook/taskmaster")) + (propagated-inputs (list go-github-com-rickb777-date + go-github-com-go-ole-go-ole)) + (home-page "https://github.com/capnspacehook/taskmaster") + (synopsis "taskmaster") + (description "Windows Task Scheduler Library for Go.") + (license license:expat))) + +(define-public go-github-com-creativeprojects-clog + (package + (name "go-github-com-creativeprojects-clog") + (version "0.14.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creativeprojects/clog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fq1g2f7dinpx1q234j72sj7pf34miaqc528ivdjp4k2y32jy90k")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/creativeprojects/clog")) + (propagated-inputs (list go-github-com-stretchr-testify + go-github-com-fatih-color)) + (home-page "https://github.com/creativeprojects/clog") + (synopsis "clog (console-log)") + (description + "All the fashionable loggers for Go tend to focus on structured logging, and +that's perfectly fine: until you simply need a logger for a console +application...") + (license license:expat))) + +(define-public go-github-com-davidmz-go-pageant + (package + (name "go-github-com-davidmz-go-pageant") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/davidmz/go-pageant") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0b333bnzi8wncakff7b890gg4md9pcbhs9fdv5bhh68r5pm2dz41")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/davidmz/go-pageant")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/davidmz/go-pageant") + (synopsis #f) + (description + "Package pageant provides an interface to @code{PyTTY} pageant.exe utility. This +package is windows-only.") + (license license:expat))) + +(define-public go-github-com-go-fed-httpsig + (package + (name "go-github-com-go-fed-httpsig") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-fed/httpsig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h2yk2ih8vrma8zrs1z8bd4r48hbqdwhgbqykrs4siyj9c80ykd2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-fed/httpsig")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/go-fed/httpsig") + (synopsis "httpsig") + (description + "This package implements HTTP request and response signing and verification. +Supports the major MAC and asymmetric key signature algorithms. It has several +safety restrictions: One, none of the widely known non-cryptographically safe +algorithms are permitted; Two, the RSA SHA256 algorithms must be available in +the binary (and it should, barring export restrictions); Finally, the library +assumes either the Authorizationn or Signature headers are to be set (but not +both).") + (license license:bsd-3))) + +(define-public go-code-gitea-io-sdk-gitea + (package + (name "go-code-gitea-io-sdk-gitea") + (version "0.19.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitea.com/gitea/go-sdk") + (commit (go-version->git-ref version + #:subdir "gitea")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ir1pprbj1ym8a1dxn6hi2x5w21qxh8w3n67f2s3xm8d07v40nrs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "code.gitea.io/sdk/gitea" + #:unpack-path "code.gitea.io/sdk")) + (propagated-inputs (list go-golang-org-x-crypto + go-github-com-stretchr-testify + go-github-com-hashicorp-go-version + go-github-com-go-fed-httpsig + go-github-com-davidmz-go-pageant)) + (home-page "https://code.gitea.io/sdk") + (synopsis #f) + (description + "Package gitea implements a client for the Gitea API. The version corresponds to +the highest supported version of the gitea API, but backwards-compatibility is +mostly given.") + (license license:expat))) + +(define-public go-google-golang-org-appengine + (package + (name "go-google-golang-org-appengine") + (version "1.6.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/appengine") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17pbiximrd340wdx3pm1jkpsgvss80pax7hif906xglh7mj9zqx2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "google.golang.org/appengine")) + (propagated-inputs (list go-google-golang-org-protobuf + go-golang-org-x-text + go-github-com-golang-protobuf)) + (home-page "https://google.golang.org/appengine") + (synopsis "Go App Engine packages") + (description + "Package appengine provides basic functionality for Google App Engine.") + (license license:asl2.0))) + +(define-public go-github-com-google-go-github + (package + (name "go-github-com-google-go-github") + (version "30.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-github") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k6ysddi3822rhj1qarahys3jm3zcjqwsbm8iggm6irhwfqr9gaf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/go-github/v30" + #:unpack-path "github.com/google/go-github")) + (propagated-inputs (list go-google-golang-org-appengine + go-golang-org-x-oauth2 go-golang-org-x-crypto + go-github-com-google-go-querystring)) + (home-page "https://github.com/google/go-github") + (synopsis "go-github") + (description + "go-github is a Go client library for accessing the +@@url{https://developer.github.com/v3/,@code{GitHub} API v3}.") + (license license:bsd-3))) + +(define-public go-github-com-xanzy-go-gitlab + (package + (name "go-github-com-xanzy-go-gitlab") + (version "0.114.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xanzy/go-gitlab") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "136iik1pqggdk2z3yz4wh5z05wp9sb6j1rpbf33bjn5djqxcxbbf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xanzy/go-gitlab")) + (propagated-inputs (list go-golang-org-x-time + go-golang-org-x-oauth2 + go-github-com-stretchr-testify + go-github-com-hashicorp-go-retryablehttp + go-github-com-hashicorp-go-cleanhttp + go-github-com-google-go-querystring)) + (home-page "https://github.com/xanzy/go-gitlab") + (synopsis "go-gitlab") + (description "Copyright 2022, Daniela Filipe Bento.") + (license license:asl2.0))) + +(define-public go-github-com-creativeprojects-go-selfupdate + (package + (name "go-github-com-creativeprojects-go-selfupdate") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creativeprojects/go-selfupdate") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1217ii9ndz87pzh13wmhqxm5vvpj57iwprm4d8h5jha12f1ds2dk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/creativeprojects/go-selfupdate")) + (propagated-inputs (list go-gopkg-in-yaml-v3 + go-golang-org-x-oauth2 + go-golang-org-x-crypto + go-github-com-xanzy-go-gitlab + go-github-com-ulikunitz-xz + go-github-com-stretchr-testify + go-github-com-google-go-github-v30 + go-github-com-masterminds-semver-v3 + go-code-gitea-io-sdk-gitea)) + (home-page "https://github.com/creativeprojects/go-selfupdate") + (synopsis + "Self-Update library for Github, Gitea and Gitlab hosted applications in Go") + (description + "go-selfupdate detects the information of the latest release via @code{GitHub} +Releases API and checks the current version. If newer version than itself is +detected, it downloads released binary from @code{GitHub} and replaces itself.") + (license license:expat))) + +(define-public go-github-com-distatus-battery + (package + (name "go-github-com-distatus-battery") + (version "0.11.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/distatus/battery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03kvd5h5fvmv384xb14c7h4cdh9m5drq3yfrjc9h9v8vniq5nq68")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/distatus/battery")) + (propagated-inputs (list go-howett-net-plist go-golang-org-x-sys)) + (home-page "https://github.com/distatus/battery") + (synopsis "battery") + (description + "Package battery provides cross-platform, normalized battery information.") + (license license:expat))) + +(define-public go-github-com-joho-godotenv + (package + (name "go-github-com-joho-godotenv") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/joho/godotenv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03vijs05k31jdf24pzj3vlk6b5jxf894v1kvzals4wzclyq2h3ch")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/joho/godotenv")) + (home-page "https://github.com/joho/godotenv") + (synopsis "GoDotEnv") + (description + "Package godotenv is a go port of the ruby dotenv library +(@@url{https://github.com/bkeepers/dotenv,https://github.com/bkeepers/dotenv}).") + (license license:expat))) + +(define-public go-github-com-mackerelio-go-osstat + (package + (name "go-github-com-mackerelio-go-osstat") + (version "0.2.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mackerelio/go-osstat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k2h8fdwnh3gifnkhf16rv5qh5vzcyk2lpjwwng7qvc2f35jan1a")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mackerelio/go-osstat")) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/mackerelio/go-osstat") + (synopsis "OS system statistics library for Go") + (description + "This is a library to get system metrics like cpu load and memory usage. The +library is created for +@@url{https://github.com/mackerelio/mackerel-agent,mackerel-agent}.") + (license license:asl2.0))) + +(define-public go-github-com-rickb777-plural + (package + (name "go-github-com-rickb777-plural") + (version "1.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rickb777/plural") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "069ag331f0y1mjjmxhkir1q99665q3ch86jqj2ljglmvh0vccrrp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rickb777/plural")) + (home-page "https://github.com/rickb777/plural") + (synopsis "plural - Simple Go API for Pluralisation.") + (description + "Package plural provides simple support for localising plurals in a flexible +range of different styles.") + (license license:bsd-3))) + +(define-public go-github-com-rickb777-date + (package + (name "go-github-com-rickb777-date") + (version "1.21.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rickb777/date") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s2afbf14cfvw38v6ckifv2y99qa83b5b7zp1w3kknw738sqijiy")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rickb777/date")) + (propagated-inputs (list go-golang-org-x-text + go-github-com-rickb777-plural + go-github-com-onsi-gomega)) + (home-page "https://github.com/rickb777/date") + (synopsis "date") + (description + "Package date provides functionality for working with dates. It implements a +light-weight Date type that is storage-efficient and convenient for calendrical +calculations and date parsing and formatting (including years outside the +[0,9999] interval).") + (license license:bsd-3))) + +(define-public go-github-com-creativeprojects-resticprofile + (package + (name "go-github-com-creativeprojects-resticprofile") + (version "0.29.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creativeprojects/resticprofile") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1p99frlavfaxh9q5hr13iczbp4b38ll8bgw1a9fjv7i2xbpkmb2s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/creativeprojects/resticprofile")) + (propagated-inputs (list go-howett-net-plist + go-gopkg-in-yaml-v3 + go-golang-org-x-text + go-golang-org-x-term + go-golang-org-x-sys + go-golang-org-x-exp + go-github-com-stretchr-testify + go-github-com-spf13-viper + go-github-com-spf13-pflag + go-github-com-spf13-cast + go-github-com-spf13-afero + go-github-com-shirou-gopsutil-v3 + go-github-com-rickb777-date + go-github-com-prometheus-common + go-github-com-prometheus-client-golang + go-github-com-mitchellh-mapstructure + go-github-com-mattn-go-colorable + go-github-com-mackerelio-go-osstat + go-github-com-joho-godotenv + go-github-com-fatih-color + go-github-com-distatus-battery + go-github-com-creativeprojects-go-selfupdate + go-github-com-creativeprojects-clog + go-github-com-coreos-go-systemd-v22 + go-github-com-capnspacehook-taskmaster + go-github-com-adrg-xdg + go-github-com-masterminds-semver-v3)) + (home-page "https://github.com/creativeprojects/resticprofile") + (synopsis "resticprofile") + (description + "Configuration profiles manager for @@url{https://restic.net/,restic backup}.") + (license license:gpl3))) + +go-github-com-creativeprojects-resticprofile