Compare commits

5 Commits

3 changed files with 20 additions and 6 deletions

View File

@ -3,3 +3,10 @@
Ce paquet vise à faciliter lemploi du dépôt communautaire postgresql pour linstallation de pgadmin et de la version 11 de postgresql.
Il permet dassocier une priorité différente pour les dépôts tiers et installe des scripts issus du paquet supervision-psin qui ne peut pas être installé dans nimporte quel contexte.
## Configuration
Déclaration du dépôt tiers : deb https://apt.postgresql.org/pub/repos/apt bionic-pgdg main
URL de la clé : https://www.postgresql.org/media/keys/ACCC4CF8.asc
Priorité global du dépôt : 400
Paquets exemptés du changement de priorité : python3-flask-security python3-werkzeug

View File

@ -7,6 +7,9 @@
<variables>
<family name='dépôt tiers'>
<variable name='additional_repository_set_priority' type='oui/non' description='Configurer des priorités personnalisées pour les dépôts tiers'>
<value>non</value>
</variable>
<variable name='additional_repository_priority_target' type='string' description='Dépôt avec une priorité personnalisée' mandatory='True' multi='True'/>
<variable name='additional_repository_global_priority' type='number' description='Priorité globale du dépôt' mandatory='True'>
<value>1500</value>
@ -20,10 +23,16 @@
<slave>additional_repository_global_priority</slave>
<slave>additional_repository_exempted_packages</slave>
</group>
<condition name='disabled_if_in' source='additional_repository_set_priority'>
<param>non</param>
<target>additional_repository_priority_target</target>
<target>additional_repository_global_priority</target>
<target>additional_repository_exempted_packages</target>
</condition>
</constraints>
<help>
<variable name='additional_repository_global_priority'>Une valeur supérieure à 500 (valeur par défaut) rend moins prioritaire les paquets du dépôt, une valeur inférieure, plus prioritaire</variable>
<variable name='additional_repository_global_priority'>Une valeur supérieure à 500 (valeur par défaut) rend plus prioritaire les paquets du dépôt, une valeur inférieure, moins prioritaire</variable>
<variable name='additional_repository_exempted_packages'>Liste des paquets séparés par des espaces dont la priorité sera celle par défaut plutôt que celle définie globalement pour le dépôt</variable>
</help>

View File

@ -1,17 +1,15 @@
%import re
%def repository_identification(%%repository)
%set %%repository_re = re.compile(r'^((deb)|(deb-src)) (\[ .* \] )?(((http)|(https)|(ftp)|(ftps))://(?P<url>\S+)) (?P<suite>(\S+))(?P<components>(( \S+)+)?)')
%set %%elements = %%repository_re.match(%%repository).groupdict()
%return 'o={},a={},c={}'.format(%%elements['url'].split('/')[0], %%elements['suite'], %%elements['components'].strip())
%return %%repository
%end def
%set %%repositories_detail = {}
%for %%additional_repository in %%getVar('additional_repository_name')
%silent %%repositories_detail[%%str(%%additional_repository)] = {'source': %%additional_repository.additional_repository_source, 'priority': 500, 'exceptions': []}
%end for
%for %%priority_settings in %%getVar('additional_repository_priority_target')
%for %%priority_settings in %%getVar('additional_repository_priority_target', [])
%if %%str(%%priority_settings) in %%repositories_detail
%silent %%repositories_detail[%%str(%%priority_settings)]['priority'] = %%priority_settings.additional_repository_global_priority
%if %%priority_settings.additional_repository_exempted_packages
@ -19,15 +17,15 @@
%end if
%end if
%end for
%for %%repository in %%repositories_detail
Package: *
Pin: release %%repository_identification(%%repositories_detail[%%repository]['source'])
Pin-Priority: %%repositories_detail[%%repository]['priority']
%for %%exception in %%repositories_detail[%%repository]['exceptions']
Package: %%exception
Pin: release %%repository_identification(%%repositories_detail[%%repository]['source'])
Pin-Priority: 500
%end for
%end for
%end for