summaryrefslogtreecommitdiff
path: root/sys-auth
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:52:04 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:52:04 +0100
commit71bc00c87bba1ce31de0dac6c3b7fd1aee6917fc (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /sys-auth
parent6612a728ea11526a849618ec515ad57131d64416 (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'sys-auth')
-rw-r--r--sys-auth/Manifest.gzbin11074 -> 11068 bytes
-rw-r--r--sys-auth/docker_auth/Manifest2
-rw-r--r--sys-auth/docker_auth/files/docker_auth-ldap-cacert.patch67
-rw-r--r--sys-auth/docker_auth/files/docker_auth-ldap-group-support-1.patch394
-rw-r--r--sys-auth/libfprint/Manifest6
-rw-r--r--sys-auth/libfprint/libfprint-0.5.0-r2.ebuild4
-rw-r--r--sys-auth/libfprint/libfprint-0.5.1-r2.ebuild4
-rw-r--r--sys-auth/libfprint/libfprint-0.6.0-r2.ebuild2
-rw-r--r--sys-auth/nss-mdns/Manifest2
-rw-r--r--sys-auth/nss-mdns/nss-mdns-0.13.ebuild2
10 files changed, 10 insertions, 473 deletions
diff --git a/sys-auth/Manifest.gz b/sys-auth/Manifest.gz
index 1f08592d468b..c201ae299da4 100644
--- a/sys-auth/Manifest.gz
+++ b/sys-auth/Manifest.gz
Binary files differ
diff --git a/sys-auth/docker_auth/Manifest b/sys-auth/docker_auth/Manifest
index e6fc530834a2..46a9623f2354 100644
--- a/sys-auth/docker_auth/Manifest
+++ b/sys-auth/docker_auth/Manifest
@@ -1,5 +1,3 @@
-AUX docker_auth-ldap-cacert.patch 2806 BLAKE2B 3af756a2c0cd1dd41e0f17550885f0fd03520dbf8c0ae0b8e7747bd8b66f653c88c7aae366170528ff2345c0cfa4b42640882e5fecf1955f118b0bb2be91d7e8 SHA512 ae86f8d2adae073fae30753c054627a737ddbd05dd94107a65abe2935043a14a9eaf5987a83f06a5b7f827862a8df3510554f34f34693d5e97d77008d7da3b97
-AUX docker_auth-ldap-group-support-1.patch 13612 BLAKE2B 0f61d633858ca42b0f460b912f8b014fda1008359ab9ec4b7e097e4db119fec6c7676b1378413c3d4b5b03d08dacf29c05df32deb9c294eac6b5cdb63d327f7f SHA512 3479435540fd371ef2b294261e2d7196f4ee92e5621178e25c8ee240c066c49a2a846abae860b3baba5bac4e8787e0795b33a7bd1fb6689aa9961acdbd728a16
AUX docker_auth-ldap-group-support-2.patch 15137 BLAKE2B 0774a94db7825d1b103a812547de79aa75c324fd37426bf0f609d0e19d85add35ae1569afe96fa45fe3bc0ec547dc1983b11ce5973d9363d613ea12f258d7bdf SHA512 6897b1fa232290f3f26e3779fa4297089e1288904462c03ea9ffa2dbcb8141740dc07c6da181d4f4a8884e16fd2757b7b880611bec04bc7e497a71d0bce93eea
AUX docker_auth.confd 71 BLAKE2B 63190ce49fe26406107db51be1d0b87a0e3686287733ce2061e76fa14ed0811d0648049adaf448fbe8e4721cbe9eaf284c9d1f38c9c0aa7291cc78eaca1fd6db SHA512 b089b5ea299b701c3e0ed682e59e87e3f1fe1af4f097f21be80ed2e33c8dd021b9dca0c4310ab453518310306af3c7f2c084a4d17db1504cf1f392dcc993d337
AUX docker_auth.initd 596 BLAKE2B 42722f51138e8d32d991b37436dddfafa0e6e460fea6ee9e3be080e6373330366ddce1ce992046569929ee660f5c1cc4c43e0baaf57d4cb82257e6e743cc656b SHA512 11dd3d6c3a947571a719b3fcb76a4fe75af4ee1d1b8957f4b0b3b7ee14cefec7acca9fb52e438b185651c38519e820ab0016d439405652f419399c823e74579c
diff --git a/sys-auth/docker_auth/files/docker_auth-ldap-cacert.patch b/sys-auth/docker_auth/files/docker_auth-ldap-cacert.patch
deleted file mode 100644
index e43e9e6ca889..000000000000
--- a/sys-auth/docker_auth/files/docker_auth-ldap-cacert.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5505de31a91aea88e0cf623ec8edfd928b5432a7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Manuel=20R=C3=BCger?= <mrueg@gentoo.org>
-Date: Mon, 18 Sep 2017 14:02:38 +0200
-Subject: [PATCH] Set custom CA certificate for ldap cert verification
-
-Code taken from: https://github.com/hashicorp/go-rootcerts/blob/master/rootcerts.go
-Original author: Paul Hinze <phinze@phinze.com>
----
- auth_server/authn/ldap_auth.go | 17 ++++++++++++++++-
- examples/reference.yml | 2 ++
- 2 files changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/auth_server/authn/ldap_auth.go b/auth_server/authn/ldap_auth.go
-index 3bdf7c3..a3425ed 100644
---- a/auth_server/authn/ldap_auth.go
-+++ b/auth_server/authn/ldap_auth.go
-@@ -19,6 +19,7 @@ package authn
- import (
- "bytes"
- "crypto/tls"
-+ "crypto/x509"
- "fmt"
- "io/ioutil"
- "strings"
-@@ -31,6 +32,7 @@ type LDAPAuthConfig struct {
- Addr string `yaml:"addr,omitempty"`
- TLS string `yaml:"tls,omitempty"`
- InsecureTLSSkipVerify bool `yaml:"insecure_tls_skip_verify,omitempty"`
-+ CACertificate string `yaml:"ca_certificate,omitempty"`
- Base string `yaml:"base,omitempty"`
- Filter string `yaml:"filter,omitempty"`
- BindDN string `yaml:"bind_dn,omitempty"`
-@@ -140,7 +142,20 @@ func (la *LDAPAuth) ldapConnection() (*ldap.Conn, error) {
- tlsConfig := &tls.Config{InsecureSkipVerify: true}
- if !la.config.InsecureTLSSkipVerify {
- addr := strings.Split(la.config.Addr, ":")
-- tlsConfig = &tls.Config{InsecureSkipVerify: false, ServerName: addr[0]}
-+ if la.config.CACertificate != "" {
-+ pool := x509.NewCertPool()
-+ pem, err := ioutil.ReadFile(la.config.CACertificate)
-+ if err != nil {
-+ return nil, fmt.Errorf("Error loading CA File: %s", err)
-+ }
-+ ok := pool.AppendCertsFromPEM(pem)
-+ if !ok {
-+ return nil, fmt.Errorf("Error loading CA File: Couldn't parse PEM in: %s", la.config.CACertificate)
-+ }
-+ tlsConfig = &tls.Config{InsecureSkipVerify: false, ServerName: addr[0], RootCAs: pool}
-+ } else {
-+ tlsConfig = &tls.Config{InsecureSkipVerify: false, ServerName: addr[0]}
-+ }
- }
-
- if la.config.TLS == "" || la.config.TLS == "none" || la.config.TLS == "starttls" {
-diff --git a/examples/reference.yml b/examples/reference.yml
-index 3090978..769cc91 100644
---- a/examples/reference.yml
-+++ b/examples/reference.yml
-@@ -131,6 +131,8 @@ ldap_auth:
- tls: always
- # set to true to allow insecure tls
- insecure_tls_skip_verify: false
-+ # set this to specify the ca certificate path
-+ ca_cert:
- # In case bind DN and password is required for querying user information,
- # specify them here. Plain text password is read from the file.
- bind_dn:
diff --git a/sys-auth/docker_auth/files/docker_auth-ldap-group-support-1.patch b/sys-auth/docker_auth/files/docker_auth-ldap-group-support-1.patch
deleted file mode 100644
index f9e98f410c8a..000000000000
--- a/sys-auth/docker_auth/files/docker_auth-ldap-group-support-1.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From 4a33badac6b74617dfe3797a716a6907cf018b27 Mon Sep 17 00:00:00 2001
-From: Kevin <kcd83@users.noreply.github.com>
-Date: Mon, 27 Feb 2017 19:09:52 +1300
-Subject: [PATCH 1/4] Initial proof of concept mapping memberOf CN to the label
- groups #63
-
----
- auth_server/authn/ldap_auth.go | 73 ++++++++++++++++++++++++++++++++++--------
- 1 file changed, 60 insertions(+), 13 deletions(-)
-
-diff --git a/auth_server/authn/ldap_auth.go b/auth_server/authn/ldap_auth.go
-index f8fc08f..42f5ad0 100644
---- a/auth_server/authn/ldap_auth.go
-+++ b/auth_server/authn/ldap_auth.go
-@@ -17,7 +17,6 @@
- package authn
-
- import (
-- "bytes"
- "crypto/tls"
- "fmt"
- "io/ioutil"
-@@ -71,10 +70,20 @@ func (la *LDAPAuth) Authenticate(account string, password PasswordString) (bool,
- account = la.escapeAccountInput(account)
-
- filter := la.getFilter(account)
-- accountEntryDN, uSearchErr := la.ldapSearch(l, &la.config.Base, &filter, &[]string{})
-+
-+ // dnAndGroupAttr := []string{"DN"} // example of no groups mapping attribute
-+ groupAttribute := "memberOf"
-+ dnAndGroupAttr := []string{"DN", groupAttribute}
-+
-+ entryAttrMap, uSearchErr := la.ldapSearch(l, &la.config.Base, &filter, &dnAndGroupAttr)
- if uSearchErr != nil {
- return false, nil, uSearchErr
- }
-+ if len(entryAttrMap) < 1 || entryAttrMap["DN"] == nil || len(entryAttrMap["DN"]) != 1 {
-+ return false, nil, NoMatch // User does not exist
-+ }
-+
-+ accountEntryDN := entryAttrMap["DN"][0]
- if accountEntryDN == "" {
- return false, nil, NoMatch // User does not exist
- }
-@@ -93,6 +102,20 @@ func (la *LDAPAuth) Authenticate(account string, password PasswordString) (bool,
- return false, nil, bindErr
- }
-
-+ // Extract group names from the attribute values
-+ if entryAttrMap[groupAttribute] != nil {
-+ rawGroups := entryAttrMap[groupAttribute]
-+ labels := make(map[string][]string)
-+ var groups []string
-+ for _, value := range rawGroups {
-+ cn := la.getCNFromDN(value)
-+ groups = append(groups, cn)
-+ }
-+ labels["groups"] = groups
-+
-+ return true, labels, nil
-+ }
-+
- return true, nil, nil
- }
-
-@@ -170,9 +193,9 @@ func (la *LDAPAuth) getFilter(account string) string {
-
- //ldap search and return required attributes' value from searched entries
- //default return entry's DN value if you leave attrs array empty
--func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, attrs *[]string) (string, error) {
-+func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, attrs *[]string) (map[string][]string, error) {
- if l == nil {
-- return "", fmt.Errorf("No ldap connection!")
-+ return nil, fmt.Errorf("No ldap connection!")
- }
- glog.V(2).Infof("Searching...basedDN:%s, filter:%s", *baseDN, *filter)
- searchRequest := ldap.NewSearchRequest(
-@@ -183,30 +206,54 @@ func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, att
- nil)
- sr, err := l.Search(searchRequest)
- if err != nil {
-- return "", err
-+ return nil, err
- }
-
- if len(sr.Entries) == 0 {
-- return "", nil // User does not exist
-+ return nil, nil // User does not exist
- } else if len(sr.Entries) > 1 {
-- return "", fmt.Errorf("Too many entries returned.")
-+ return nil, fmt.Errorf("Too many entries returned.")
- }
-
-- var buffer bytes.Buffer
-+ result := make(map[string][]string)
- for _, entry := range sr.Entries {
-+
- if len(*attrs) == 0 {
- glog.V(2).Infof("Entry DN = %s", entry.DN)
-- buffer.WriteString(entry.DN)
-+ result["DN"] = []string{entry.DN}
- } else {
- for _, attr := range *attrs {
-- values := strings.Join(entry.GetAttributeValues(attr), " ")
-- glog.V(2).Infof("Entry %s = %s", attr, values)
-- buffer.WriteString(values)
-+ var values []string
-+ if attr == "DN" {
-+ // DN is excluded from attributes
-+ values = []string{entry.DN}
-+ } else {
-+ values = entry.GetAttributeValues(attr)
-+ }
-+ valuesString := strings.Join(values, "\n")
-+ glog.V(2).Infof("Entry %s = %s", attr, valuesString)
-+ result[attr] = values
-+ }
-+ }
-+ }
-+
-+ return result, nil
-+}
-+
-+func (la *LDAPAuth) getCNFromDN(dn string) string {
-+ parsedDN, err := ldap.ParseDN(dn)
-+ if err != nil || len(parsedDN.RDNs) > 0 {
-+ for _, rdn := range parsedDN.RDNs {
-+ for _, rdnAttr := range rdn.Attributes {
-+ if rdnAttr.Type == "CN" {
-+ return rdnAttr.Value
-+ }
- }
- }
- }
-
-- return buffer.String(), nil
-+ // else try using raw DN
-+ return dn
- }
-
- func (la *LDAPAuth) Stop() {
-
-From ddde2fa779e746d7e74cd972a4c6795c72f17ee6 Mon Sep 17 00:00:00 2001
-From: Kevin <kcd83@users.noreply.github.com>
-Date: Tue, 28 Feb 2017 18:09:55 +1300
-Subject: [PATCH 2/4] Apply attribute mapping from configuration
-
----
- auth_server/authn/ldap_auth.go | 125 ++++++++++++++++++++++++-----------------
- 1 file changed, 74 insertions(+), 51 deletions(-)
-
-diff --git a/auth_server/authn/ldap_auth.go b/auth_server/authn/ldap_auth.go
-index 42f5ad0..6f733a2 100644
---- a/auth_server/authn/ldap_auth.go
-+++ b/auth_server/authn/ldap_auth.go
-@@ -26,16 +26,22 @@ import (
- "github.com/golang/glog"
- )
-
-+type LabelMap struct {
-+ Attribute string `yaml:"attribute,omitempty"`
-+ ParseCN bool `yaml:"parse_cn,omitempty"`
-+}
-+
- type LDAPAuthConfig struct {
-- Addr string `yaml:"addr,omitempty"`
-- TLS string `yaml:"tls,omitempty"`
-- InsecureTLSSkipVerify bool `yaml:"insecure_tls_skip_verify,omitempty"`
-- Base string `yaml:"base,omitempty"`
-- Filter string `yaml:"filter,omitempty"`
-- BindDN string `yaml:"bind_dn,omitempty"`
-- BindPasswordFile string `yaml:"bind_password_file,omitempty"`
-- GroupBaseDN string `yaml:"group_base_dn,omitempty"`
-- GroupFilter string `yaml:"group_filter,omitempty"`
-+ Addr string `yaml:"addr,omitempty"`
-+ TLS string `yaml:"tls,omitempty"`
-+ InsecureTLSSkipVerify bool `yaml:"insecure_tls_skip_verify,omitempty"`
-+ Base string `yaml:"base,omitempty"`
-+ Filter string `yaml:"filter,omitempty"`
-+ BindDN string `yaml:"bind_dn,omitempty"`
-+ BindPasswordFile string `yaml:"bind_password_file,omitempty"`
-+ LabelMaps map[string]LabelMap `yaml:"labels,omitempty"`
-+ GroupBaseDN string `yaml:"group_base_dn,omitempty"`
-+ GroupFilter string `yaml:"group_filter,omitempty"`
- }
-
- type LDAPAuth struct {
-@@ -71,22 +77,19 @@ func (la *LDAPAuth) Authenticate(account string, password PasswordString) (bool,
-
- filter := la.getFilter(account)
-
-- // dnAndGroupAttr := []string{"DN"} // example of no groups mapping attribute
-- groupAttribute := "memberOf"
-- dnAndGroupAttr := []string{"DN", groupAttribute}
-+ labelAttributes, labelsConfigErr := la.getLabelAttributes()
-+ if labelsConfigErr != nil {
-+ return false, nil, labelsConfigErr
-+ }
-
-- entryAttrMap, uSearchErr := la.ldapSearch(l, &la.config.Base, &filter, &dnAndGroupAttr)
-+ accountEntryDN, entryAttrMap, uSearchErr := la.ldapSearch(l, &la.config.Base, &filter, &labelAttributes)
- if uSearchErr != nil {
- return false, nil, uSearchErr
- }
-- if len(entryAttrMap) < 1 || entryAttrMap["DN"] == nil || len(entryAttrMap["DN"]) != 1 {
-- return false, nil, NoMatch // User does not exist
-- }
--
-- accountEntryDN := entryAttrMap["DN"][0]
- if accountEntryDN == "" {
- return false, nil, NoMatch // User does not exist
- }
-+
- // Bind as the user to verify their password
- if len(accountEntryDN) > 0 {
- err := l.Bind(accountEntryDN, string(password))
-@@ -102,21 +105,13 @@ func (la *LDAPAuth) Authenticate(account string, password PasswordString) (bool,
- return false, nil, bindErr
- }
-
-- // Extract group names from the attribute values
-- if entryAttrMap[groupAttribute] != nil {
-- rawGroups := entryAttrMap[groupAttribute]
-- labels := make(map[string][]string)
-- var groups []string
-- for _, value := range rawGroups {
-- cn := la.getCNFromDN(value)
-- groups = append(groups, cn)
-- }
-- labels["groups"] = groups
--
-- return true, labels, nil
-+ // Extract labels from the attribute values
-+ labels, labelsExtractErr := la.getLabelsFromMap(entryAttrMap)
-+ if labelsExtractErr != nil {
-+ return false, nil, labelsExtractErr
- }
-
-- return true, nil, nil
-+ return true, labels, nil
- }
-
- func (la *LDAPAuth) bindReadOnlyUser(l *ldap.Conn) error {
-@@ -193,9 +188,9 @@ func (la *LDAPAuth) getFilter(account string) string {
-
- //ldap search and return required attributes' value from searched entries
- //default return entry's DN value if you leave attrs array empty
--func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, attrs *[]string) (map[string][]string, error) {
-+func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, attrs *[]string) (string, map[string][]string, error) {
- if l == nil {
-- return nil, fmt.Errorf("No ldap connection!")
-+ return "", nil, fmt.Errorf("No ldap connection!")
- }
- glog.V(2).Infof("Searching...basedDN:%s, filter:%s", *baseDN, *filter)
- searchRequest := ldap.NewSearchRequest(
-@@ -206,38 +201,66 @@ func (la *LDAPAuth) ldapSearch(l *ldap.Conn, baseDN *string, filter *string, att
- nil)
- sr, err := l.Search(searchRequest)
- if err != nil {
-- return nil, err
-+ return "", nil, err
- }
-
- if len(sr.Entries) == 0 {
-- return nil, nil // User does not exist
-+ return "", nil, nil // User does not exist
- } else if len(sr.Entries) > 1 {
-- return nil, fmt.Errorf("Too many entries returned.")
-+ return "", nil, fmt.Errorf("Too many entries returned.")
- }
-
-- result := make(map[string][]string)
-+ attributes := make(map[string][]string)
-+ var entryDn string
- for _, entry := range sr.Entries {
--
-+ entryDn = entry.DN
- if len(*attrs) == 0 {
-- glog.V(2).Infof("Entry DN = %s", entry.DN)
-- result["DN"] = []string{entry.DN}
-+ glog.V(2).Infof("Entry DN = %s", entryDn)
- } else {
- for _, attr := range *attrs {
-- var values []string
-- if attr == "DN" {
-- // DN is excluded from attributes
-- values = []string{entry.DN}
-- } else {
-- values = entry.GetAttributeValues(attr)
-- }
-- valuesString := strings.Join(values, "\n")
-- glog.V(2).Infof("Entry %s = %s", attr, valuesString)
-- result[attr] = values
-+ values := entry.GetAttributeValues(attr)
-+ glog.V(2).Infof("Entry %s = %s", attr, strings.Join(values, "\n"))
-+ attributes[attr] = values
- }
- }
- }
-
-- return result, nil
-+ return entryDn, attributes, nil
-+}
-+
-+func (la *LDAPAuth) getLabelAttributes() ([]string, error) {
-+ labelAttributes := make([]string, len(la.config.LabelMaps))
-+ i := 0
-+ for key, mapping := range la.config.LabelMaps {
-+ if mapping.Attribute == "" {
-+ return nil, fmt.Errorf("Label %s is missing 'attribute' to map from", key)
-+ }
-+ labelAttributes[i] = mapping.Attribute
-+ i++
-+ }
-+ return labelAttributes, nil
-+}
-+
-+func (la *LDAPAuth) getLabelsFromMap(attrMap map[string][]string) (map[string][]string, error) {
-+ labels := make(map[string][]string)
-+ for key, mapping := range la.config.LabelMaps {
-+ if mapping.Attribute == "" {
-+ return nil, fmt.Errorf("Label %s is missing 'attribute' to map from", key)
-+ }
-+
-+ mappingValues := attrMap[mapping.Attribute]
-+ if mappingValues != nil {
-+ if mapping.ParseCN {
-+ // shorten attribute to its common name
-+ for i, value := range mappingValues {
-+ cn := la.getCNFromDN(value)
-+ mappingValues[i] = cn
-+ }
-+ }
-+ labels[key] = mappingValues
-+ }
-+ }
-+ return labels, nil
- }
-
- func (la *LDAPAuth) getCNFromDN(dn string) string {
-
-From cd37001980267a99a9faa19f1927891af63acb90 Mon Sep 17 00:00:00 2001
-From: Kevin <kcd83@users.noreply.github.com>
-Date: Tue, 28 Feb 2017 18:27:16 +1300
-Subject: [PATCH 3/4] Remove unused configuration fields, never implemented?
-
----
- auth_server/authn/ldap_auth.go | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/auth_server/authn/ldap_auth.go b/auth_server/authn/ldap_auth.go
-index 6f733a2..9c8bcb8 100644
---- a/auth_server/authn/ldap_auth.go
-+++ b/auth_server/authn/ldap_auth.go
-@@ -40,8 +40,6 @@ type LDAPAuthConfig struct {
- BindDN string `yaml:"bind_dn,omitempty"`
- BindPasswordFile string `yaml:"bind_password_file,omitempty"`
- LabelMaps map[string]LabelMap `yaml:"labels,omitempty"`
-- GroupBaseDN string `yaml:"group_base_dn,omitempty"`
-- GroupFilter string `yaml:"group_filter,omitempty"`
- }
-
- type LDAPAuth struct {
-
-From 2fd43be4e5c2cfe177d9e1d36bcd1b29f4d6f262 Mon Sep 17 00:00:00 2001
-From: Kevin <kcd83@users.noreply.github.com>
-Date: Fri, 1 Sep 2017 22:50:19 +1200
-Subject: [PATCH 4/4] Add LDAP label map examples to the reference config
-
----
- examples/reference.yml | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/examples/reference.yml b/examples/reference.yml
-index b8bb08c..40c5762 100644
---- a/examples/reference.yml
-+++ b/examples/reference.yml
-@@ -134,6 +134,16 @@ ldap_auth:
- # User query settings. ${account} is expanded from auth request
- base: o=example.com
- filter: (&(uid=${account})(objectClass=person))
-+ # Labels can be mapped from LDAP attributes
-+ labels:
-+ # Add the user's title to a label called title
-+ title:
-+ attribute: title
-+ # Add the user's memberOf values to a label called groups
-+ groups:
-+ attribute: memberOf
-+ # Special handling to simplify the values to just the common name
-+ parse_cn: true
-
- mongo_auth:
- # Essentially all options are described here: https://godoc.org/gopkg.in/mgo.v2#DialInfo
diff --git a/sys-auth/libfprint/Manifest b/sys-auth/libfprint/Manifest
index 6d43364c0a2a..a5ad3e6d4848 100644
--- a/sys-auth/libfprint/Manifest
+++ b/sys-auth/libfprint/Manifest
@@ -8,7 +8,7 @@ DIST libfprint-0.5.1.tar.bz2 277342 BLAKE2B ebf653f147d3c75ab9885ffc4a30fb07235b
DIST libfprint-0.6.0.tar.bz2 323590 BLAKE2B 8a592241ded8826337db075dd26960a9712e1a01855c6fd2c461b73ea6e2fac5248bce16165144b48271b368d0b2a82963eab00a64a88c27539e19aee54b9ba4 SHA512 2ab9ceec0c357779c94d3b8e94c11a733825bd735bec0e5c762d215d69bf295da0c5db7fd365e2a7efdcf25747777371f793b5e99d5c98e1bf9dcb1170e10ef9
DIST libfprint-0.6.0_vfs0050.patch.gz 9944 BLAKE2B b53a74f64c9691cee7c4e7f2f54afcffe2b00b63914900ed107426a9e42721548caa1ec80e1e39251ee6a0daec6ecf7f80d6704d37bc984dd1ac76320d0b4256 SHA512 658f936c462cf50d4325d33da6c8298768dfbe4bf442933fc197c8f4bebd741ef6878bcfe123606790c3ddcc3e217fd5f97b3755d36b181c5837dc28e146d674
EBUILD libfprint-0.4.0-r1.ebuild 1068 BLAKE2B e80c359e0bd4afed41063b0bad4aa7144a342520fdffda10f2ebbea630fabcbba8422474005c82de28d065fe2f349f863d20cc664af1ff9550c8a1445f781f32 SHA512 8c94812ca690945c455dd71f34b50c323e966e2f7997326c003c33ff5403ffde3953efa9fbd8b8c75a50fd9cad805a6e9aa92d0fb6c0ab20da987ff3789a11f9
-EBUILD libfprint-0.5.0-r2.ebuild 1195 BLAKE2B 9e65af8f34ad801d84a98bf8458e854e5b7593e464523bcabed47fb6d2f569130a37d8be38ca0dcd86d9fab7cefd4604a092369a76879a3bcf50c34c9d0f8de9 SHA512 eb8e9519a21653bdef75a998a656ea82443952754c1a7c74d6d611e47b8ce3f1484d2c60f784f4312ce8e6946ff446ff4113a1631a85c28ebc836d1407b09665
-EBUILD libfprint-0.5.1-r2.ebuild 1252 BLAKE2B 5dfd0ad1bb18f6e56851b4b11cc5db57be44276f4bcbde131deaeddee1d1f5eb249b624ef3abcb240d8f48feaff02a3b3ee411f5bf4e983ea557af0f5851647f SHA512 18962e934fc0f562a2fa855134b10cad4b14708d81c5e2974c26ad460211d1d52a3c76f4077fa2fdf46b48c8ab64c8b4061b3e3fdd9ed4ee61bf140a433d1dcb
-EBUILD libfprint-0.6.0-r2.ebuild 1270 BLAKE2B ac3b5b56ff4983d543ae56d3f4e1bc57e01757e0f7d9cc8738644358d4a69dcd895efe040af0af9e7a6abce5b0a48eeb9a2840b58bacf6a4c98c01d4312c1563 SHA512 65b50c536f9a459138280e6d44c3c6dd5875ea8854856a26a5dc4bb293ff0bc5c4b6a0c83123a47e61b0172f6647f7357fa92845f42db894beb977192787f55f
+EBUILD libfprint-0.5.0-r2.ebuild 1200 BLAKE2B 3f26892b852549d6ce13c5808518afb791239cfa8242bb10ab0d8a3a05058f0fc458a421c6b6a6f5e6cd247092ddf4e07585ab9aada9e52983978a553daa6ca6 SHA512 ff419c47707d1a26835bcf25d412d92b1dab2ac15927d86107f09200f85a849f9f647799b472b3697f908cdc7d9fd2cd01b9d5b8da579158a274bb74ee2fbf6f
+EBUILD libfprint-0.5.1-r2.ebuild 1257 BLAKE2B d9cf70ff5315eb87402db4e63c268f3b835a2dfb34751c03cf6bfdbabf96d16e7599db754349ff802f9a4e2bba63b3005f6826b4f71ee39107ab23f35abe92d9 SHA512 e51fd3caabcd5e3a1db0ce22ac74cf7221428584fd3160232c4a430c4bb2fc378847b8ad8e1548a1f2ca535d892146f2eaa49d13d7fc48d0a095b252f15b7800
+EBUILD libfprint-0.6.0-r2.ebuild 1275 BLAKE2B 9c746c70cb2f036cd989c4f37de0fd35f3ac968aadcd3126b57bd605a0c1549715e84bc512172f694eb5c99bdbf3f7c1d2e14c78e4c1e11642f7976ebbc77ecb SHA512 eb2c3bad1f59ccd905f4d7113514da2c997fcde6aa6ad04e045d6c7b54b3bc1903dc8117907f82a24f4d61c268fe5b5033a5f900eed91a32751e7c77e627b289
MISC metadata.xml 348 BLAKE2B e32864052d6e6ce6c7f9acb93908a337c47811334e279d20d23bfc6939c993593caed200b9e403e0fb9b37fc0339224d14342c631949af8ce3ed5fcb6387d266 SHA512 2f678a8d401f6823cbcd351316428e571a0cc1026656dd249abda031f690feef55f2628b79bea4c0b44c6f70af099717d04bdb854f17a20ee41d46860fd28eff
diff --git a/sys-auth/libfprint/libfprint-0.5.0-r2.ebuild b/sys-auth/libfprint/libfprint-0.5.0-r2.ebuild
index 6a9a3d3d00a8..9e1a994e4533 100644
--- a/sys-auth/libfprint/libfprint-0.5.0-r2.ebuild
+++ b/sys-auth/libfprint/libfprint-0.5.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=4
@@ -12,7 +12,7 @@ SRC_URI="https://cgit.freedesktop.org/${PN}/${PN}/snapshot/${MY_PV}.tar.bz2 -> $
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="alpha amd64 ia64 ppc ppc64 x86"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 x86"
IUSE="debug static-libs"
RDEPEND="virtual/libusb:1
diff --git a/sys-auth/libfprint/libfprint-0.5.1-r2.ebuild b/sys-auth/libfprint/libfprint-0.5.1-r2.ebuild
index 88858c64dcfd..4aacb0111500 100644
--- a/sys-auth/libfprint/libfprint-0.5.1-r2.ebuild
+++ b/sys-auth/libfprint/libfprint-0.5.1-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -13,7 +13,7 @@ SRC_URI="https://cgit.freedesktop.org/${PN}/${PN}/snapshot/${MY_PV}.tar.bz2 -> $
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86"
IUSE="debug static-libs"
RDEPEND="virtual/libusb:1
diff --git a/sys-auth/libfprint/libfprint-0.6.0-r2.ebuild b/sys-auth/libfprint/libfprint-0.6.0-r2.ebuild
index a0d859e69bde..9511bd2036ed 100644
--- a/sys-auth/libfprint/libfprint-0.6.0-r2.ebuild
+++ b/sys-auth/libfprint/libfprint-0.6.0-r2.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://cgit.freedesktop.org/${PN}/${PN}/snapshot/${MY_PV}.tar.bz2 -> $
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="alpha amd64 ia64 ppc ppc64 ~sparc x86"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 ~sparc x86"
IUSE="debug static-libs vanilla"
RDEPEND="virtual/libusb:1
diff --git a/sys-auth/nss-mdns/Manifest b/sys-auth/nss-mdns/Manifest
index b0b3e3771f71..47e8c5119f34 100644
--- a/sys-auth/nss-mdns/Manifest
+++ b/sys-auth/nss-mdns/Manifest
@@ -6,6 +6,6 @@ DIST nss-mdns-0.11.tar.gz 382059 BLAKE2B 5523c76d6f7364efde54b9bf303dfdf34c11b96
DIST nss-mdns-0.13.tar.gz 380261 BLAKE2B 555b7b9df8ff15da423712fac04ccbc303395d38a07121906cf31871a8684c71e43809b80674a489d87397902a33f4d19b0ae49a4c384290bad227a24880476f SHA512 f1b379111fb758323179ea3e447d754e934308940b11a8402dfb6033264940d831266d15ae1ee0badfecd5cdc7f589b42e4363dfc058f5e62026017d97eb0a3b
EBUILD nss-mdns-0.10-r3.ebuild 1689 BLAKE2B 4050f59ac44f5a510f9a7beb3be44e609d8a40bb0e54fe43c2c48ec2f128fe5d1467a23343d7029953eff93a230175c20339005e879160b1147f8044bd41d413 SHA512 f10e8583fd7624dcddcd17c17bdd5c375f22903a21e4c595bb5f7a447a5e92abbafda9f549b3f3acb8c387451b10765f4f826340484003000f04762e3732eb5b
EBUILD nss-mdns-0.11.ebuild 1667 BLAKE2B 35aea7515b9117cacc47f8680886d5d60e63752515712ba654655e127f40e4fdf40fc8ac6967e85d01e8b32e6894b84358d344faf95b5eb199c9fb7dcd9b6fa7 SHA512 4b4f9c48ea0bb498061b98f3add9b06b148e524140b798f3ac0b3a60e830a084506231118cbf3cfd3f7d3795b7c43e9e3dfe036713a03f45b4d8dd694549eace
-EBUILD nss-mdns-0.13.ebuild 1645 BLAKE2B 32bdc61a16d02da36749e35e8ba3e568bcf69ef3505349998baf7e404f06a8673e2a27a6190e23259824e261f64060b7eb8393daab7a3c01ee7d55f2a22e3bbf SHA512 e2b28370094484fd898821cbeb06d14d4248b7c8e9aca17ff7afac7c06c0beb93dcbeb6f9ee594550f37008748141cfbd0bb05886802f469a21aa8680e3981ac
+EBUILD nss-mdns-0.13.ebuild 1644 BLAKE2B 4cdfeca5e34f7aae869defc2fe01098698626ffb487f78eb1eccc5275c7e63e42503914085b7dec3a899f42234bd80762dcc5fb601d350e3d69bce9d61e4389e SHA512 48c221b7575195fbfac29f05015717170e8820a4e0d17ebdbf69b2203b1356b775d65b86694a95c0333b4bacd272616ccb7ec1864886f835c8e832c3eee5985a
EBUILD nss-mdns-9999.ebuild 1681 BLAKE2B 1ae2e683def7ecd909d010611439201c6eb3827fcc7ead3c7b6229165413f725611061deec56e31cf19682a572afe2510c58591f4a6120043a4893ca4d50abd8 SHA512 edcc52347c4d4c1abd751be2b2f8965d7153ee087ca280acc2baa875e6f50f58460dd2c419e04f35d47bfca33cd8bfdc57be741193c5b2ce2125389a4246356a
MISC metadata.xml 795 BLAKE2B 9237e6e6cc772633d1e45db608880c8bf112a361a2914ccc8f413020d31905d10e5822c922659bd500072f47580c63c94a68f54171a259ae3dc28b0b17499387 SHA512 912e8a154a0672a58bd89ee1f52efd8d43cfbeff1f1c40def47d6bd7600fb9b74e1b11dd633ea1ad6f75ef9ae9979ac5b741cfd5df97ea6b0055b060df33c977
diff --git a/sys-auth/nss-mdns/nss-mdns-0.13.ebuild b/sys-auth/nss-mdns/nss-mdns-0.13.ebuild
index 1285c4be869a..dc8347e21d45 100644
--- a/sys-auth/nss-mdns/nss-mdns-0.13.ebuild
+++ b/sys-auth/nss-mdns/nss-mdns-0.13.ebuild
@@ -10,7 +10,7 @@ SRC_URI="https://github.com/lathiat/nss-mdns/releases/download/v${PV}/${P}.tar.g
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="amd64 ~arm ~hppa ~mips ~ppc x86"
+KEYWORDS="amd64 ~arm ~hppa ~mips ppc x86"
IUSE="test"
RDEPEND=">=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}]"