aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu artwork)
  #:use-module (guix packages)
  #:use-module (guix git-download)
  #:export (%artwork-repository))

;;; Commentary:
;;;
;;; Common place for the definition of the Guix artwork repository.
;;;
;;; Code:

(define %artwork-repository
  (let ((commit "4c7f2ce6428a63e202cd2a9474a06f68a946934d"))
    (origin
      (method git-fetch)
      (uri (git-reference
             (url "https://git.savannah.gnu.org/git/guix/guix-artwork.git")
             (commit commit)))
      (file-name (string-append "guix-artwork-" (string-take commit 7)
                                "-checkout"))
      (sha256
       (base32
        "1rl569759q9wm1dxn7nkq3873d2k92giic7aa6jwzwr3n16prc7y")))))

;;; artwork.scm ends here
space:mode:
Diffstat (limited to 'package_source-2.schema.json')
-rw-r--r--package_source-2.schema.json171
1 files changed, 98 insertions, 73 deletions
diff --git a/package_source-2.schema.json b/package_source-2.schema.json
index 962a209..4d8249d 100644
--- a/package_source-2.schema.json
+++ b/package_source-2.schema.json
@@ -3,82 +3,58 @@
"$id": "https://hydrilla.koszko.org/schemas/package_source-2.schema.json",
"title": "Package source",
"description": "Definition of a Hydrilla source package",
- "allOf": [{
- "description": "Definition of a Hydrilla source package - validation rules common for all minor schema versions",
- "type": "object",
- "required": [
- "$schema",
- "source_name",
- "copyright",
- "upstream_url",
- "definitions"
- ],
- "properties": {
- "$schema": {
- "description": "Mark this instance as conforming to package source schema 1.x or 2.x",
- "type": "string",
- "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-[12]\\.(([1-9][0-9]*|0)\\.)*schema\\.json$"
- },
- "source_name": {
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/source_name"
- },
- "copyright": {
- "description": "Which files from the source package indicate its license terms and should be included in the distribution packages",
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list"
- },
- "upstream_url": {
- "description": "Where this software/work initially comes from",
- "type": "string"
- },
- "comment": {
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/comment"
- },
- "definitions": {
- "description": "Definitions of site resources and pattern->payload mappings",
- "type": "array",
- "items": {
- "anyOf": [{
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/resource_definition_base"
- }, {
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/mapping_definition_base"
- }]
- }
- },
- "additional_files": {
- "description": "Files which should be included in the source archive produced by Hydrilla builder in addition to script and copyright files",
- "$ref": "./common_definitions-1.0.1.schema.json#/definitions/file_ref_list",
- "default": []
- },
- "reuse_generate_spdx_report": {
- "description": "Should report.spdx be automatically generated for the package using REUSE tool",
- "type": "boolean",
- "default": false
- }
- }
- }, {
- "description": "Definition of a Hydrilla source package - validation rules common for versions 2 and higher",
- "if": {
- "type": "object",
- "properties": {
- "$schema": {
- "description": "Select instances that specify schema version 1.0.x",
- "type": "string",
- "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-2\\..*schema\\.json$"
- }
- }
+ "type": "object",
+ "required": [
+ "$schema",
+ "source_name",
+ "copyright",
+ "upstream_url",
+ "definitions"
+ ],
+ "properties": {
+ "$schema": {
+ "description": "Mark this instance as conforming to package source schema 2.x",
+ "type": "string",
+ "pattern": "^https://hydrilla\\.koszko\\.org/schemas/package_source-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$"
},
- "else": {
- "description": "Validate the piggybacking correctness",
- "type": "object",
- "properties": {
- "piggyback_on": {
- "anyOf": [{
- "$ref": "#/definitions/piggyback_apt"
- }]
- }
+ "source_name": {
+ "$ref": "./common_definitions-2.schema.json#/definitions/source_name"
+ },
+ "copyright": {
+ "description": "Which files from the source package indicate its license terms and should be included in the distribution packages",
+ "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list"
+ },
+ "upstream_url": {
+ "description": "Where this software/work initially comes from",
+ "type": "string"
+ },
+ "piggyback_on": {
+ "description": "Specify packages from other software system that should be used for constructing this package",
+ "anyOf": [{
+ "$ref": "#/definitions/piggyback_apt"
+ }]
+ },
+ "comment": {
+ "$ref": "./common_definitions-2.schema.json#/definitions/comment"
+ },
+ "definitions": {
+ "description": "Definitions of site resources and pattern->payload mappings (possibly combined together)",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/item_definition"
}
+ },
+ "additional_files": {
+ "description": "Files which should be included in the source archive produced by Hydrilla builder in addition to script and copyright files",
+ "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list",
+ "default": []
+ },
+ "reuse_generate_spdx_report": {
+ "description": "Should report.spdx be automatically generated for the package using REUSE tool",
+ "type": "boolean",
+ "default": false
}
- }],
+ },
"definitions": {
"piggyback_apt": {
"description": "Specify packages from APT software system that should be used for constructing this package",
@@ -136,6 +112,55 @@
"default": true
}
}
+ },
+ "item_definition": {
+ "description": "Definition of either a site resource, a pattern->payload mapping or both combined together",
+ "if": {
+ "type": "object",
+ "required": ["type"],
+ "properties": {
+ "type": {
+ "const": "resource"
+ }
+ }
+ },
+ "then": {
+ "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base"
+ },
+ "else": {
+ "if": {
+ "type": "object",
+ "required": ["type"],
+ "properties": {
+ "type": {
+ "const": "mapping"
+ }
+ }
+ },
+ "then": {
+ "$ref": "./common_definitions-2.schema.json#/definitions/mapping_definition_base"
+ },
+ "else": {
+ "allOf": [{
+ "type": "object",
+ "required": ["type"],
+ "properties": {
+ "type": {
+ "const": "mapping_and_resource"
+ }
+ }
+ }, {
+ "$ref": "#/definitions/combined_mapping_resource_definition"
+ }]
+ }
+ }
+ },
+ "combined_mapping_resource_definition": {
+ "allOf": [{
+ "$ref": "./common_definitions-2.schema.json#/definitions/mapping_definition_base"
+ }, {
+ "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base"
+ }]
}
}
}