Initial commit

Signed-off-by: Jacob Hrbek <kreyren@member.fsf.org>
This commit is contained in:
Jacob Hrbek 2020-12-09 13:34:38 +01:00
commit 1b05764ccf
No known key found for this signature in database
GPG Key ID: A1F85905E877DEBB
12 changed files with 379 additions and 0 deletions

6
.drone.yml Normal file
View File

@ -0,0 +1,6 @@
pipeline:
ci-flow:
image: rust:latest
commands:
- cargo install --debug cargo-make
- cargo make build

7
.github/CODEOWNERS vendored Normal file
View File

@ -0,0 +1,7 @@
# Reference to configuration - https://github.blog/2017-07-06-introducing-code-owners/
# Relevant https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
# This file is used to set permission per team or user to allow auto-merging
# Rights for the creator
* @kreyren

5
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,5 @@
# Funding page for the original creator
github: kreyren
# Referer link on github.com/kreyren
custom: https://my.fsf.org/join?referrer=3706032

13
.github/README.md vendored Normal file
View File

@ -0,0 +1,13 @@
FIXME-GFX(Krey): Header here
<img src="img/header-image.png" width="100%"/>
[![Built with cargo-make](https://sagiegurari.github.io/cargo-make/assets/badges/cargo-make.svg)](https://sagiegurari.github.io/cargo-make)
Repository creating devuan templateVM package for various distributions providing domain-0 (dom0) on QubesOS with priority for the default fedora.
### Goal
Get devuan templateVM on QubesOS
### Abstract
1. Create the devuan userland with scripts to put it in TemplateVM of QubesOS
2. Package it

33
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,33 @@
# Template from https://github.com/sagiegurari/ci_info/blob/master/.github/workflows/ci.yml
name: CI
on: [push, pull_request]
env:
CLICOLOR_FORCE: 1
jobs:
ci:
name: CI
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
rust: stable
os: [ ubuntu-latest, windows-latest, macOS-latest ]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: --debug cargo-make
- name: Run CI
uses: actions-rs/cargo@v1
with:
command: make
args: build

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# Exclude the build target
build/

2
.gitpod.yml Normal file
View File

@ -0,0 +1,2 @@
# FIXME-GITPOD(Krey): Typefox kicked me from their org for bullshit reasons and gitpod by itself is limiting factor when it comes to development e.g. lack of root and access to /dev/kvm for virtualization. Provided as-is to comply with GNU phylosophy and patches accepted
image: gitpod/workspace-full:latest

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"editor.tabSize": 2,
"editor.renderWhitespace": "all",
"editor.insertSpaces": false
}

30
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,30 @@
FIXME-GFX(Krey): Add header image
# Code indexing (tags)
Source code in this project is adapted for rolling release with versioned releases and as such the code requires to be indexed for continous improvements that were captured during a quality assurance.
You are encouraged to search the source code and look for these tags to resolve them.
## Resolving FIXME tags
Source code in this project has comments above an imperfect code that needs resolving which is sorted in follwing categories:
- FIXME = General fixme
- FIXME-QA = Fixme concerning Code quality
- FIXME-AUTO = Fixme concerning automatization such as Continuous integrationg
- FIXME-TRANSLATE = Codeblocks that return an output and need translating in different spoken language
- FIXME-CROSS = Codeblocks that needs implementation for cross-platform
- FIXME-GFX = Tags for graphics-releted concerns
- FIXME-<EDITOR> = Tags concerning configuration of the development environment
Example of FIXME tag:
```sh
# FIXME-QA(Krey): Complaining about things
echo something
```
## Resolving DNM (DoNotMerge) tags
This repository is manage on rolling-release with versioned releases, the main branch might contain `DNM` tags in the source code for things that needs to be resolved prior to merging that should be resolved with priority. These tags share categories with FIXME tags.
These tags prevent versioned release.
# Peer-Review
Any relevant information concerning the implementation is appreciated.

187
LICENSE.md Normal file

File diff suppressed because one or more lines are too long

89
Makefile.toml Normal file
View File

@ -0,0 +1,89 @@
# This is a cargo-make file used to manage the repository
# FIXME-VSCODIUM(Krey): Add configuration to install 'Even Better TOML' for this repository only
[config]
default_task_name = "default"
[env]
# FIXME-QA(Krey): Set this to the '$PWD/build'
# FIXME-QA(Krey): Duplicate code
BUILD = { value = "/home/user/Repositories/qubes-template-devuan/build", condition = { env_not_set = ["/home/user/Repositories/qubes-template-devuan/build"] } }
# DNM(Krey): Deduce why HOME is not available in tasks
HOME = "/home/user"
# Codename handling
devuan-stable-codename = "beowulf"
devuan-testing-codename = "chimaera"
# Command overrides
DEBOOTSTRAP = "debootstrap"
[tasks.build]
description = "Build all targets"
# DNM(Krey): This doesn't work -> Figure out how to get it to execute tasks prefixed with `build`
dependencies = [
"build-devuan-stable-minimal",
"build-devuan-testing-minimal"
]
# FIXME-CROSS(Krey): How can we builds this on Windows?
# FIXME-CROSS(Krey): How can we builds this on Darwin?
# FIXME-CROSS(Krey): How can we builds this on Redox?
# FIXME-CROSS(Krey): How can we builds this on FreeBSD?
[tasks.build-devuan-stable-minimal]
description = "Creates a devuan stable userland in build directory"
category = "core"
# FIXME-QA(Krey): Implement handling for privileged execution (https://github.com/sagiegurari/cargo-make/issues/501)
command = "${DEBOOTSTRAP}"
args = [
"--arch=amd64",
"--variant=minbase",
"--no-merged-usr",
# FIXME-QA(Krey): Expecting double-quottes that are not interpreted
"--cache-dir=${HOME}/.cache",
# DNM(Krey): On non-devuan systems we need devuan's GPG set, using no-check for testing
"--no-check-gpg",
"${devuan-stable-codename }",
"${BUILD}/devuan/${devuan-stable-codename }",
# FIXME-PRIVACY(Krey): Use tor here
"http://deb.devuan.org/merged"
]
# FIXME-QA(Krey): Duplicate code
# FIXME-CROSS(Krey): How can we builds this on Windows?
# FIXME-CROSS(Krey): How can we builds this on Darwin?
# FIXME-CROSS(Krey): How can we builds this on Redox?
# FIXME-CROSS(Krey): How can we builds this on FreeBSD?
[tasks.build-devuan-testing-minimal]
description = "Creates a devuan stable userland in build directory"
category = "core"
# FIXME-QA(Krey): Implement handling for privileged execution (https://github.com/sagiegurari/cargo-make/issues/501)
command = "debootstrap"
args = [
"--arch=amd64",
"--variant=minbase",
"--no-merged-usr",
# FIXME-QA(Krey): Expecting double-quottes that are not interpreted
"--cache-dir=${HOME}/.cache",
# DNM(Krey): On non-devuan systems we need devuan's GPG set, using no-check for testing
"--no-check-gpg",
"${devuan-stable-release}",
"${BUILD}/devuan/${devuan-stable-release}",
# FIXME-PRIVACY(Krey): Use The Onion Routing here
"http://deb.devuan.org/merged"
]
# DNM(Krey): Package for fedora-32 GNU/Linux
# DNM(Krey): Package for devuan GNU/Linux
# DNM(Krey): Package for enoch-based e.g. Argent Linux GNU/Linux
# DNM(Krey): Package for Arch GNU/Linux
# FIXME-CROSS(Krey): Translate in duckscript (https://github.com/sagiegurari/duckscript/issues/147)
[tasks.clean]
description = "Remove temporary directories"
script = '''
#!/bin/sh
[ ! -d "${BUILD}" ] || rm -r "${BUILD}"
'''

BIN
img/header-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B