From f0fc221fab0a283a68f98a48879f96d634428410 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Sat, 22 Feb 2025 23:34:27 +0100 Subject: [PATCH] Initial Commit --- .drone.yml | 97 ++++++++++++++++++++++++++++++ .editorconfig | 12 ++++ .gitignore | 6 ++ .markdownlint.yaml | 145 +++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 43 ++++++++++++++ README.md | 62 +++++++++++++++++++ renovate.json | 25 ++++++++ 7 files changed, 390 insertions(+) create mode 100644 .drone.yml create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .markdownlint.yaml create mode 100644 PKGBUILD create mode 100644 README.md create mode 100644 renovate.json diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..4d3f71b --- /dev/null +++ b/.drone.yml @@ -0,0 +1,97 @@ +--- +kind: pipeline +type: kubernetes +name: linter + +clone: + disable: true + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.4.0 + +- name: markdown lint + commands: + - markdownlint *.md + image: git.cryptic.systems/volker.raschek/markdownlint:0.43.0 + resources: + limits: + cpu: 150 + memory: 150M + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 + resources: + limits: + cpu: 150 + memory: 150M + when: + status: + - changed + - failure + +trigger: + event: + exclude: + - tag + +--- +kind: pipeline +type: kubernetes +name: sync-to-aur.archlinux.org + +clone: + disable: true + +steps: +- name: clone + image: git.cryptic.systems/volker.raschek/git:1.4.0 + +- name: git-push + image: docker.io/appleboy/drone-git-push:1.1.1 + settings: + branch: master + remote: ssh://aur@aur.archlinux.org/fritz-tls.git + force: false + commit: false + ssh_key: + from_secret: aur_ssh_key + +- name: email-notification + environment: + SMTP_FROM_ADDRESS: + from_secret: smtp_from_address + SMTP_FROM_NAME: + from_secret: smtp_from_name + SMTP_HOST: + from_secret: smtp_host + SMTP_USERNAME: + from_secret: smtp_username + SMTP_PASSWORD: + from_secret: smtp_password + image: git.cryptic.systems/volker.raschek/drone-email:0.1.5 + resources: + limits: + cpu: 150 + memory: 150M + when: + status: + - changed + - failure + +trigger: + event: + - tag + repo: + - volker.raschek/fritz-tls-pkg \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1166a4a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9c60cd8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +pkg +src +*tar.gz +*tar.zst +*tar.zst.sig +*zip \ No newline at end of file diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..54c8c83 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,145 @@ +# markdownlint YAML configuration +# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +# Default state for all rules +default: true + +# Path to configuration file to extend +extends: null + +# MD003/heading-style/header-style - Heading style +MD003: + # Heading style + style: "atx" + +# MD004/ul-style - Unordered list style +MD004: + style: "dash" + +# MD007/ul-indent - Unordered list indentation +MD007: + # Spaces for indent + indent: 2 + # Whether to indent the first level of the list + start_indented: false + +# MD009/no-trailing-spaces - Trailing spaces +MD009: + # Spaces for line break + br_spaces: 2 + # Allow spaces for empty lines in list items + list_item_empty_lines: false + # Include unnecessary breaks + strict: false + +# MD010/no-hard-tabs - Hard tabs +MD010: + # Include code blocks + code_blocks: true + +# MD012/no-multiple-blanks - Multiple consecutive blank lines +MD012: + # Consecutive blank lines + maximum: 1 + +# MD013/line-length - Line length +MD013: + # Number of characters + line_length: 120 + # Number of characters for headings + heading_line_length: 120 + # Number of characters for code blocks + code_block_line_length: 120 + # Include code blocks + code_blocks: false + # Include tables + tables: false + # Include headings + headings: true + # Include headings + headers: true + # Strict length checking + strict: false + # Stern length checking + stern: false + +# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines +MD022: + # Blank lines above heading + lines_above: 1 + # Blank lines below heading + lines_below: 1 + +# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content +MD024: + # Only check sibling headings + allow_different_nesting: true + +# MD025/single-title/single-h1 - Multiple top-level headings in the same document +MD025: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD026/no-trailing-punctuation - Trailing punctuation in heading +MD026: + # Punctuation characters + punctuation: ".,;:!。,;:!" + +# MD029/ol-prefix - Ordered list item prefix +MD029: + # List style + style: "one_or_ordered" + +# MD030/list-marker-space - Spaces after list markers +MD030: + # Spaces for single-line unordered list items + ul_single: 1 + # Spaces for single-line ordered list items + ol_single: 1 + # Spaces for multi-line unordered list items + ul_multi: 1 + # Spaces for multi-line ordered list items + ol_multi: 1 + +# MD033/no-inline-html - Inline HTML +MD033: + # Allowed elements + allowed_elements: [] + +# MD035/hr-style - Horizontal rule style +MD035: + # Horizontal rule style + style: "---" + +# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading +MD036: + # Punctuation characters + punctuation: ".,;:!?。,;:!?" + +# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading +MD041: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD044/proper-names - Proper names should have the correct capitalization +MD044: + # List of proper names + names: + - Arch Linux + - Linux Mint + # Include code blocks + code_blocks: false + +# MD046/code-block-style - Code block style +MD046: + # Block style + style: "fenced" + +# MD048/code-fence-style - Code fence style +MD048: + # Code fence syle + style: "backtick" \ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..0d6d2d7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Markus Pesch + +pkgname=fritz-tls +pkgver=0.20.0 # renovate: datasource=github-releases depName=tisba/fritz-tls +pkgrel=1 +pkgdesc="Automate TLS certificate installation for AVM FRITZ!Box " +arch=('armv7h' 'aarch64' 'x86_64') +url="https://github.com/tisba/$pkgname" +license=('MIT') +makedepends=('go') + +source=( + "$url/archive/refs/tags/v$pkgver.zip" +) +sha512sums=('bebdf41a615102410ef13a94ec310a271d3c034078a1b0b59316d94d576c2a7cce45503a53eb6cf1f040483e145beb12dcb8a142f833e625eabdec1df0b810c8') +b2sums=('4da5de9d766bcf07bb920364310ae65c069fc51bba63e84ad94fb48cdb623e69ccc0355c26ab1b037db7edb32619ff5ae7d123011b4ae6d466c5406f3d5c7743') + +build() { + cd "$pkgname-$pkgver" + + # https://wiki.archlinux.org/title/Go_package_guidelines + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + + go build -v \ + -trimpath \ + -buildmode=pie \ + -mod=readonly \ + -modcacherw \ + -ldflags "-linkmode external -extldflags \"${LDFLAGS}\"" \ + -o $pkgname \ + . +} + +package() { + # binary + install -D --mode 0755 --target-directory "$pkgdir/usr/bin" "$pkgname-$pkgver/$pkgname" + + # license + install -D --mode 0755 --target-directory "$pkgdir/usr/share/licenses/$pkgname" "$pkgname-$pkgver/LICENSE" +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..3cd8fcd --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# fritz-tls + +![AUR version](https://img.shields.io/aur/version/fritz-tls?label=AUR) +[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/fritz-tls-pkg/status.svg)](https://drone.cryptic.systems/volker.raschek/fritz-tls-pkg) +![AUR votes](https://img.shields.io/aur/votes/fritz-tls) + +This repository contains build files to build the Arch Linux package `fritz-tls`. Instead of +building the package yourself, it can also be obtained from the following private repository. More detailed are +described [here](#obtaining-pre-built-packages-from-a-repository). + +## Build + +Clone this repository and use `makepkg` to build the package by yourself. For example: + +```bash +git clone https://aur.archlinux.org/fritz-tls.git +cd fritz-tls +makepkg +``` + +## Yay + +The build files are also available via AUR and can be installed via an AUR helper like `yay`. + +```bash +yay --sync --aur fritz-tls +``` + +## Obtaining pre-built packages from a repository + +Instead of building the packages locally, it is also possible to configure an additional repository to install the +package directly via `pacman`. The following commands are used to create the repository, configure the GPG key to verify +the packages and install the package: + +```bash +# Create drop-in directory +sudo mkdir --parents /etc/pacman.d/repos + +# Create configuration of the repository 'volker.raschek' +sudo tee /etc/pacman.d/repos/volker.raschek.conf > /dev/null <<'EOF' +[volker.raschek] +SigLevel = PackageRequired TrustedOnly +Include = /etc/pacman.d/repos/volker.raschek.list +EOF + +# Create mirror list of the repository 'volker.raschek' +sudo tee /etc/pacman.d/repos/volker.raschek.list > /dev/null <<'EOF' +Server = https://aur.cryptic.systems/$repo/$arch +EOF + +# Import gpg key of the repository 'volker.raschek' +sudo pacman-key --keyserver hkps://keys.openpgp.org --recv-keys 9B146D11A9ED6CA7E279EB1A852BCC170D81A982 + +# Extend existing pacman configuration of the repository 'volker.raschek' +sudo echo "Include = /etc/pacman.d/repos/*.conf" >> /etc/pacman.conf + +# Update pacman cache +sudo pacman --sync --refresh + +# Install the package and receive updates directly via pacman :) +sudo pacman --sync fritz-tls +``` diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..865bbbf --- /dev/null +++ b/renovate.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "assignees": [ "volker.raschek" ], + "labels": [ "renovate" ], + "packageRules": [ + { + "addLabels": [ "renovate/droneci", "renovate/automerge" ], + "automerge": true, + "matchManagers": "droneci", + "matchUpdateTypes": [ "minor", "patch"] + } + ], + "rebaseLabel": "renovate/rebase", + "rebaseWhen": "behind-base-branch", + "regexManagers": [ + { + "description": "Update PKGBUILD version", + "fileMatch": [ "(^|/)PKGBUILD$" ], + "matchStrings": [ + "pkgver=(?.*) # renovate: datasource=(?.*) depName=(?.*)( lookupName=(?.*))?( versioning=(?.*))?" + ], + "extractVersionTemplate": "^v?(?.*)$" + } + ] +}