forked from ungleich-public/cdist
		
	Merge branch 'master' of code.ungleich.ch:ungleich-public/cdist
This commit is contained in:
		
				commit
				
					
						a10d43bc69
					
				
			
		
					 11 changed files with 204 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -70,6 +70,11 @@ case "$("$__explorer/os")" in
 | 
			
		|||
   macosx)
 | 
			
		||||
      sw_vers -productVersion
 | 
			
		||||
   ;;
 | 
			
		||||
   freebsd)
 | 
			
		||||
      # Apparently uname -r is not a reliable way to get the patch level.
 | 
			
		||||
      # See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251743
 | 
			
		||||
      freebsd-version
 | 
			
		||||
   ;;
 | 
			
		||||
   *bsd|solaris)
 | 
			
		||||
      uname -r
 | 
			
		||||
   ;;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										104
									
								
								cdist/conf/type/__apt_backports/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								cdist/conf/type/__apt_backports/man.rst
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,104 @@
 | 
			
		|||
cdist-type__debian_backports(7)
 | 
			
		||||
===============================
 | 
			
		||||
 | 
			
		||||
NAME
 | 
			
		||||
----
 | 
			
		||||
cdist-type__apt_backports - Install backports
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DESCRIPTION
 | 
			
		||||
-----------
 | 
			
		||||
This singleton type installs backports for the current OS release.
 | 
			
		||||
It aborts if backports are not supported for the specified OS or
 | 
			
		||||
no version codename could be fetched (like Debian unstable).
 | 
			
		||||
 | 
			
		||||
The package index will be automatically updated if required.
 | 
			
		||||
 | 
			
		||||
It supports backports from following OSes:
 | 
			
		||||
 | 
			
		||||
- Debian
 | 
			
		||||
- Devuan
 | 
			
		||||
- Ubuntu
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REQUIRED PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
None.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
OPTIONAL PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
state
 | 
			
		||||
    Represents the state of the backports repository. ``present`` or
 | 
			
		||||
    ``absent``, defaults to ``present``.
 | 
			
		||||
 | 
			
		||||
    Will be directly passed to :strong:`cdist-type__apt_source`\ (7).
 | 
			
		||||
 | 
			
		||||
mirror
 | 
			
		||||
    The mirror to fetch the backports from. Will defaults to the generic
 | 
			
		||||
    mirror of the current OS.
 | 
			
		||||
 | 
			
		||||
    Will be directly passed to :strong:`cdist-type__apt_source`\ (7).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BOOLEAN PARAMETERS
 | 
			
		||||
------------------
 | 
			
		||||
None.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
MESSAGES
 | 
			
		||||
--------
 | 
			
		||||
None.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
EXAMPLES
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
.. code-block:: sh
 | 
			
		||||
 | 
			
		||||
   # setup the backports
 | 
			
		||||
   __apt_backports
 | 
			
		||||
   __apt_backports --state absent
 | 
			
		||||
   __apt_backports --state present --mirror "http://ftp.de.debian.org/debian/"
 | 
			
		||||
 | 
			
		||||
   # install a backports package
 | 
			
		||||
   # currently for the buster release backports
 | 
			
		||||
   require="__apt_backports" __package_apt wireguard \
 | 
			
		||||
        --target-release buster-backports
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ABORTS
 | 
			
		||||
------
 | 
			
		||||
Aborts if the detected os is not Debian.
 | 
			
		||||
 | 
			
		||||
Aborts if no distribuition codename could be detected. This is common for the
 | 
			
		||||
unstable distribution, but there is no backports repository for it already.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CAVEATS
 | 
			
		||||
-------
 | 
			
		||||
For Ubuntu, it setup all componenents for the backports repository: ``main``,
 | 
			
		||||
``restricted``, ``universe`` and ``multiverse``. The user may not want to
 | 
			
		||||
install proprietary packages, which will only be installed if the user
 | 
			
		||||
explicitly uses the backports target-release. The user may change this behavior
 | 
			
		||||
to install backports packages without the need of explicitly select it.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SEE ALSO
 | 
			
		||||
--------
 | 
			
		||||
`Official Debian Backports site <https://backports.debian.org/>`_
 | 
			
		||||
 | 
			
		||||
:strong:`cdist-type__apt_source`\ (7)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AUTHORS
 | 
			
		||||
-------
 | 
			
		||||
Matthias Stecher <matthiasstecher at gmx.de>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COPYING
 | 
			
		||||
-------
 | 
			
		||||
Copyright \(C) 2020 Matthias Stecher. 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.
 | 
			
		||||
							
								
								
									
										81
									
								
								cdist/conf/type/__apt_backports/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										81
									
								
								cdist/conf/type/__apt_backports/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
#!/bin/sh -e
 | 
			
		||||
# __apt_backports/manifest
 | 
			
		||||
#
 | 
			
		||||
# 2020 Matthias Stecher (matthiasstecher at gmx.de)
 | 
			
		||||
#
 | 
			
		||||
# This file is part of cdist.
 | 
			
		||||
#
 | 
			
		||||
# cdist 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.
 | 
			
		||||
#
 | 
			
		||||
# cdist 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 cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
# Enables/disables backports repository. Utilises __apt_source for it.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Get the distribution codename by /etc/os-release.
 | 
			
		||||
#  is already executed in a subshell by string substitution
 | 
			
		||||
#  lsb_release may not be given in all installations
 | 
			
		||||
codename_os_release() {
 | 
			
		||||
    # shellcheck disable=SC1090
 | 
			
		||||
    . "$__global/explorer/os_release"
 | 
			
		||||
    printf "%s" "$VERSION_CODENAME"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# detect backport distribution
 | 
			
		||||
os="$(cat "$__global/explorer/os")"
 | 
			
		||||
case "$os" in
 | 
			
		||||
    debian)
 | 
			
		||||
        dist="$( codename_os_release )"
 | 
			
		||||
        components="main"
 | 
			
		||||
        mirror="http://deb.debian.org/debian/"
 | 
			
		||||
        ;;
 | 
			
		||||
    devuan)
 | 
			
		||||
        dist="$( codename_os_release )"
 | 
			
		||||
        components="main"
 | 
			
		||||
        mirror="http://deb.devuan.org/merged"
 | 
			
		||||
        ;;
 | 
			
		||||
    ubuntu)
 | 
			
		||||
        dist="$( codename_os_release )"
 | 
			
		||||
        components="main restricted universe multiverse"
 | 
			
		||||
        mirror="http://archive.ubuntu.com/ubuntu"
 | 
			
		||||
        ;;
 | 
			
		||||
 | 
			
		||||
    *)
 | 
			
		||||
        printf "Backports for %s are not supported!\n" "$os" >&2
 | 
			
		||||
        exit 1
 | 
			
		||||
        ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# error if no codename given (e.g. on Debian unstable)
 | 
			
		||||
if [ -z "$dist" ]; then
 | 
			
		||||
    printf "No backports for unkown version of distribution %s!\n" "$os" >&2
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# parameters
 | 
			
		||||
state="$(cat "$__object/parameter/state")"
 | 
			
		||||
 | 
			
		||||
# mirror already set for the os, only override user-values
 | 
			
		||||
if [ -f "$__object/parameter/mirror" ]; then
 | 
			
		||||
    mirror="$(cat "$__object/parameter/mirror")"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# install the given backports repository
 | 
			
		||||
__apt_source "${dist}-backports" \
 | 
			
		||||
    --state "$state" \
 | 
			
		||||
    --distribution "${dist}-backports" \
 | 
			
		||||
    --component "$components" \
 | 
			
		||||
    --uri "$mirror"
 | 
			
		||||
							
								
								
									
										1
									
								
								cdist/conf/type/__apt_backports/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__apt_backports/parameter/default/state
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
present
 | 
			
		||||
							
								
								
									
										2
									
								
								cdist/conf/type/__apt_backports/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__apt_backports/parameter/optional
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
state
 | 
			
		||||
mirror
 | 
			
		||||
							
								
								
									
										0
									
								
								cdist/conf/type/__apt_backports/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__apt_backports/singleton
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -25,6 +25,9 @@ user
 | 
			
		|||
OPTIONAL PARAMETERS
 | 
			
		||||
-------------------
 | 
			
		||||
 | 
			
		||||
dirmode
 | 
			
		||||
    forwarded to :strong:`__directory` type as mode
 | 
			
		||||
 | 
			
		||||
mode
 | 
			
		||||
    forwarded to :strong:`__file` type
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@ set -eu
 | 
			
		|||
user="$(cat "${__object}/parameter/user")"
 | 
			
		||||
home="$(cat "${__object}/explorer/home")"
 | 
			
		||||
primary_group="$(cat "${__object}/explorer/primary_group")"
 | 
			
		||||
dirmode="$(cat "${__object}/parameter/dirmode")"
 | 
			
		||||
 | 
			
		||||
# Create parent directory. Type __directory has flag 'parents', but it
 | 
			
		||||
# will leave us with root-owned directory in user home, which is not
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +37,7 @@ export CDIST_ORDER_DEPENDENCY
 | 
			
		|||
for dir ; do
 | 
			
		||||
	__directory "${home}/${dir}"   \
 | 
			
		||||
	    --group "${primary_group}" \
 | 
			
		||||
            --mode "${dirmode}" \
 | 
			
		||||
	    --owner "${user}"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								cdist/conf/type/__dot_file/parameter/default/dirmode
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__dot_file/parameter/default/dirmode
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
0700
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
state
 | 
			
		||||
mode
 | 
			
		||||
source
 | 
			
		||||
dirmode
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,10 +2,13 @@ Changelog
 | 
			
		|||
---------
 | 
			
		||||
 | 
			
		||||
next:
 | 
			
		||||
	* __package_pkgng_freebsd: Fix bootstrapping pkg (Dennis Camera)
 | 
			
		||||
	* Type __package_pkgng_freebsd: Fix bootstrapping pkg (Dennis Camera)
 | 
			
		||||
	* Core: Deal with deprecated imp in unit tests (Evil Ham)
 | 
			
		||||
	* Type __iptables: Add IPv6 support (Matthias Stecher)
 | 
			
		||||
	* Type __block: Fix escaping in here-doc (Matthias Stecher)
 | 
			
		||||
	* Explorer os_version: Improve FreeBSD support (Evil Ham)
 | 
			
		||||
	* New type: __apt_backports (Matthias Stecher)
 | 
			
		||||
	* Type __dot_file: Add dirmode parameter (Mark Verboom)
 | 
			
		||||
 | 
			
		||||
6.9.3: 2020-12-04
 | 
			
		||||
	* pip install: Add cdist.scan to packages in setup.py (Dennis Camera)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue