/hg/release/icedtea6-1.7: 2 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Tue Mar 30 17:49:53 PDT 2010
changeset 786e03271cb9 in /hg/release/icedtea6-1.7
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7?cmd=changeset;node=786e03271cb9
author: Andrew John Hughes <ahughes at redhat.com>
date: Wed Mar 31 01:49:06 2010 +0100
Add security updates.
2009-03-30 Andrew John Hughes <ahughes at redhat.com>
* Makefile.am: Add new security patches.
* NEWS: List new security patches.
* patches/security/20100330/6633872.patch,
* patches/security/20100330/6639665.patch,
* patches/security/20100330/6736390.patch,
* patches/security/20100330/6745393.patch,
* patches/security/20100330/6887703.patch,
* patches/security/20100330/6888149.patch,
* patches/security/20100330/6892265.patch,
* patches/security/20100330/6893947.patch,
* patches/security/20100330/6893954.patch,
* patches/security/20100330/6894807.patch,
* patches/security/20100330/6898622.patch,
* patches/security/20100330/6898739.patch,
* patches/security/20100330/6899653.patch,
* patches/security/20100330/6902299.patch,
* patches/security/20100330/6904691.patch,
* patches/security/20100330/6909597.patch,
* patches/security/20100330/6910590.patch,
* patches/security/20100330/6914823.patch,
* patches/security/20100330/6914866.patch,
* patches/security/20100330/6932480.patch,
* patches/security/20100330/hotspot/hs16/6626217.patch,
* patches/security/20100330/hotspot/original/6626217.patch:
New security and hardening patches
http://www.oracle.com/technology/deploy/security/critical-patch-
updates/javacpumar2010.html
changeset 8571317a9879 in /hg/release/icedtea6-1.7
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7?cmd=changeset;node=8571317a9879
author: Andrew John Hughes <ahughes at redhat.com>
date: Wed Mar 31 01:49:46 2010 +0100
Merge
diffstat:
26 files changed, 3703 insertions(+), 2 deletions(-)
ChangeLog | 33
Makefile.am | 23
NEWS | 27
acinclude.m4 | 1
patches/security/20100330/6633872.patch | 443 +++++
patches/security/20100330/6639665.patch | 51
patches/security/20100330/6736390.patch | 18
patches/security/20100330/6745393.patch | 1233 ++++++++++++++
patches/security/20100330/6887703.patch | 28
patches/security/20100330/6888149.patch | 33
patches/security/20100330/6892265.patch | 35
patches/security/20100330/6893947.patch | 86
patches/security/20100330/6893954.patch | 248 ++
patches/security/20100330/6894807.patch | 27
patches/security/20100330/6898622.patch | 20
patches/security/20100330/6898739.patch | 437 ++++
patches/security/20100330/6899653.patch | 27
patches/security/20100330/6902299.patch | 104 +
patches/security/20100330/6904691.patch | 166 +
patches/security/20100330/6909597.patch | 74
patches/security/20100330/6910590.patch | 10
patches/security/20100330/6914823.patch | 80
patches/security/20100330/6914866.patch | 118 +
patches/security/20100330/6932480.patch | 43
patches/security/20100330/hotspot/hs16/6626217.patch | 160 +
patches/security/20100330/hotspot/original/6626217.patch | 180 ++
diffs (truncated from 3827 to 500 lines):
diff -r 6bd87ceec77a -r 8571317a9879 ChangeLog
--- a/ChangeLog Thu Mar 18 18:43:01 2010 +0000
+++ b/ChangeLog Wed Mar 31 01:49:46 2010 +0100
@@ -1,3 +1,36 @@ 2010-03-18 Pavel Tisnovsky <ptisnovs at re
+2010-03-31 Matthias Klose <doko at ubuntu.com>
+
+ * acinclude.m4 (ENABLE_ZERO_BUILD): Depend on SET_ARCH_DIRS.
+
+2010-03-30 Andrew John Hughes <ahughes at redhat.com>
+
+ * Makefile.am: Add new security patches.
+ * NEWS: List new security patches.
+ * patches/security/20100330/6633872.patch,
+ * patches/security/20100330/6639665.patch,
+ * patches/security/20100330/6736390.patch,
+ * patches/security/20100330/6745393.patch,
+ * patches/security/20100330/6887703.patch,
+ * patches/security/20100330/6888149.patch,
+ * patches/security/20100330/6892265.patch,
+ * patches/security/20100330/6893947.patch,
+ * patches/security/20100330/6893954.patch,
+ * patches/security/20100330/6894807.patch,
+ * patches/security/20100330/6898622.patch,
+ * patches/security/20100330/6898739.patch,
+ * patches/security/20100330/6899653.patch,
+ * patches/security/20100330/6902299.patch,
+ * patches/security/20100330/6904691.patch,
+ * patches/security/20100330/6909597.patch,
+ * patches/security/20100330/6910590.patch,
+ * patches/security/20100330/6914823.patch,
+ * patches/security/20100330/6914866.patch,
+ * patches/security/20100330/6932480.patch,
+ * patches/security/20100330/hotspot/hs16/6626217.patch,
+ * patches/security/20100330/hotspot/original/6626217.patch:
+ New security and hardening patches
+ http://www.oracle.com/technology/deploy/security/critical-patch-updates/javacpumar2010.html
+
2010-03-18 Pavel Tisnovsky <ptisnovs at redhat.com>
* patches/icedtea-jtreg-httpTest.patch: new regression test
diff -r 6bd87ceec77a -r 8571317a9879 Makefile.am
--- a/Makefile.am Thu Mar 18 18:43:01 2010 +0000
+++ b/Makefile.am Wed Mar 31 01:49:46 2010 +0100
@@ -310,7 +310,28 @@ ICEDTEA_PATCHES = \
patches/icedtea-parisc.patch \
patches/icedtea-sh4-support.patch \
patches/libpng.patch \
- patches/icedtea-jtreg-httpTest.patch
+ patches/icedtea-jtreg-httpTest.patch \
+ patches/security/20100330/hotspot/$(HSBUILD)/6626217.patch \
+ patches/security/20100330/6633872.patch \
+ patches/security/20100330/6639665.patch \
+ patches/security/20100330/6736390.patch \
+ patches/security/20100330/6745393.patch \
+ patches/security/20100330/6887703.patch \
+ patches/security/20100330/6888149.patch \
+ patches/security/20100330/6892265.patch \
+ patches/security/20100330/6893947.patch \
+ patches/security/20100330/6893954.patch \
+ patches/security/20100330/6894807.patch \
+ patches/security/20100330/6898622.patch \
+ patches/security/20100330/6898739.patch \
+ patches/security/20100330/6899653.patch \
+ patches/security/20100330/6902299.patch \
+ patches/security/20100330/6904691.patch \
+ patches/security/20100330/6909597.patch \
+ patches/security/20100330/6910590.patch \
+ patches/security/20100330/6914823.patch \
+ patches/security/20100330/6914866.patch \
+ patches/security/20100330/6932480.patch
if WITH_RHINO
ICEDTEA_PATCHES += \
diff -r 6bd87ceec77a -r 8571317a9879 NEWS
--- a/NEWS Thu Mar 18 18:43:01 2010 +0000
+++ b/NEWS Wed Mar 31 01:49:46 2010 +0100
@@ -1,4 +1,29 @@ New in release 1.7 (2010-02-26):
-New in release 1.7 (2010-02-26):
+New in release 1.7.2 (2010-03-30):
+
+- Latest security updates and hardening patches:
+ - (CVE-2010-0837): JAR "unpack200" must verify input parameters (6902299)
+ - (CVE-2010-0845): No ClassCastException for HashAttributeSet constructors if run with -Xcomp (6894807)
+ - (CVE-2010-0838): CMM readMabCurveData Buffer Overflow Vulnerability (6899653)
+ - (CVE-2010-0082): Loader-constraint table allows arrays instead of only the base-classes (6626217)
+ - (CVE-2010-0095): Subclasses of InetAddress may incorrectly interpret network addresses (6893954)
+ - (CVE-2010-0085): File TOCTOU deserialization vulnerability (6736390)
+ - (CVE-2010-0091): Unsigned applet can retrieve the dragged information before drop action occurs (6887703)
+ - (CVE-2010-0088): Inflater/Deflater clone issues (6745393)
+ - (CVE-2010-0084): Policy/PolicyFile leak dynamic ProtectionDomains. (6633872)
+ - (CVE-2010-0092): AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR error (6888149)
+ - (CVE-2010-0094): Deserialization of RMIConnectionImpl objects should enforce stricter checks (6893947)
+ - (CVE-2010-0093): System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes (6892265)
+ - (CVE-2010-0840): Applet Trusted Methods Chaining Privilege Escalation Vulnerability (6904691)
+ - (CVE-2010-0848): AWT Library Invalid Index Vulnerability (6914823)
+ - (CVE-2010-0847): ImagingLib arbitrary code execution vulnerability (6914866)
+ - (CVE-2009-3555): TLS: MITM attacks via session renegotiation
+ - 6639665: ThreadGroup finalizer allows creation of false root ThreadGroups
+ - 6898622: ObjectIdentifer.equals is not capable of detecting incorrectly encoded CommonName OIDs
+ - 6910590: Application can modify command array in ProcessBuilder
+ - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability
+ - 6932480: Crash in CompilerThread/Parser. Unloaded array klass?
+
+New in release 1.7.1 (2010-02-26):
Bug fixes
- PR179: Rhino bootclasspath issue
diff -r 6bd87ceec77a -r 8571317a9879 acinclude.m4
--- a/acinclude.m4 Thu Mar 18 18:43:01 2010 +0000
+++ b/acinclude.m4 Wed Mar 31 01:49:46 2010 +0100
@@ -698,6 +698,7 @@ AC_DEFUN([FIND_TOOL],
AC_DEFUN([ENABLE_ZERO_BUILD],
[
+ AC_REQUIRE([SET_ARCH_DIRS])
AC_MSG_CHECKING([whether to use the zero-assembler port])
use_zero=no
AC_ARG_ENABLE([zero],
diff -r 6bd87ceec77a -r 8571317a9879 patches/security/20100330/6633872.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/security/20100330/6633872.patch Wed Mar 31 01:49:46 2010 +0100
@@ -0,0 +1,443 @@
+--- openjdk.orig/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Mar 15 10:28:30 2010
++++ openjdk/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Mar 15 10:28:30 2010
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
++ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -25,9 +25,15 @@
+
+ package java.security;
+
++import java.util.ArrayList;
++import java.util.Collections;
+ import java.util.Enumeration;
+ import java.util.List;
+-import java.util.ArrayList;
++import java.util.Map;
++import java.util.WeakHashMap;
++import sun.misc.JavaSecurityProtectionDomainAccess;
++import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
++import sun.misc.SharedSecrets;
+ import sun.security.util.Debug;
+ import sun.security.util.SecurityConstants;
+
+@@ -72,6 +78,11 @@
+ or dynamic (via a policy refresh) */
+ private boolean staticPermissions;
+
++ /*
++ * An object used as a key when the ProtectionDomain is stored in a Map.
++ */
++ final Key key = new Key();
++
+ private static final Debug debug = Debug.getInstance("domain");
+
+ /**
+@@ -238,7 +249,7 @@
+ /**
+ * Convert a ProtectionDomain to a String.
+ */
+- public String toString() {
++ @Override public String toString() {
+ String pals = "<no principals>";
+ if (principals != null && principals.length > 0) {
+ StringBuilder palBuf = new StringBuilder("(principals ");
+@@ -396,4 +407,29 @@
+
+ return mergedPerms;
+ }
++
++ /**
++ * Used for storing ProtectionDomains as keys in a Map.
++ */
++ final class Key {}
++
++ static {
++ SharedSecrets.setJavaSecurityProtectionDomainAccess(
++ new JavaSecurityProtectionDomainAccess() {
++ public ProtectionDomainCache getProtectionDomainCache() {
++ return new ProtectionDomainCache() {
++ private final Map<Key, PermissionCollection> map =
++ Collections.synchronizedMap
++ (new WeakHashMap<Key, PermissionCollection>());
++ public void put(ProtectionDomain pd,
++ PermissionCollection pc) {
++ map.put((pd == null ? null : pd.key), pc);
++ }
++ public PermissionCollection get(ProtectionDomain pd) {
++ return pd == null ? map.get(null) : map.get(pd.key);
++ }
++ };
++ }
++ });
++ }
+ }
+--- openjdk.orig/jdk/src/share/classes/java/security/Policy.java Mon Mar 15 10:28:30 2010
++++ openjdk/jdk/src/share/classes/java/security/Policy.java Mon Mar 15 10:28:30 2010
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
++ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -28,22 +28,19 @@
+
+ import java.io.*;
+ import java.lang.RuntimePermission;
++import java.lang.reflect.*;
+ import java.net.MalformedURLException;
+ import java.net.URL;
+ import java.util.Enumeration;
+ import java.util.Hashtable;
+-import java.util.Vector;
+-import java.util.StringTokenizer;
+ import java.util.PropertyPermission;
+-
+-import java.lang.reflect.*;
+-
++import java.util.StringTokenizer;
++import java.util.Vector;
+ import java.util.WeakHashMap;
+-import sun.security.util.Debug;
+ import sun.security.jca.GetInstance;
++import sun.security.util.Debug;
+ import sun.security.util.SecurityConstants;
+
+-
+ /**
+ * A Policy object is responsible for determining whether code executing
+ * in the Java runtime environment has permission to perform a
+@@ -113,8 +110,8 @@
+
+ private static final Debug debug = Debug.getInstance("policy");
+
+- // Cache mapping ProtectionDomain to PermissionCollection
+- private WeakHashMap<ProtectionDomain, PermissionCollection> pdMapping;
++ // Cache mapping ProtectionDomain.Key to PermissionCollection
++ private WeakHashMap<ProtectionDomain.Key, PermissionCollection> pdMapping;
+
+ /** package private for AccessControlContext */
+ static boolean isSet()
+@@ -307,7 +304,7 @@
+ synchronized (p) {
+ if (p.pdMapping == null) {
+ p.pdMapping =
+- new WeakHashMap<ProtectionDomain, PermissionCollection>();
++ new WeakHashMap<ProtectionDomain.Key, PermissionCollection>();
+ }
+ }
+
+@@ -323,7 +320,7 @@
+
+ synchronized (p.pdMapping) {
+ // cache of pd to permissions
+- p.pdMapping.put(policyDomain, policyPerms);
++ p.pdMapping.put(policyDomain.key, policyPerms);
+ }
+ }
+ return;
+@@ -638,7 +635,7 @@
+ }
+
+ synchronized (pdMapping) {
+- pc = pdMapping.get(domain);
++ pc = pdMapping.get(domain.key);
+ }
+
+ if (pc != null) {
+@@ -697,7 +694,7 @@
+ }
+
+ synchronized (pdMapping) {
+- pc = pdMapping.get(domain);
++ pc = pdMapping.get(domain.key);
+ }
+
+ if (pc != null) {
+@@ -711,7 +708,7 @@
+
+ synchronized (pdMapping) {
+ // cache it
+- pdMapping.put(domain, pc);
++ pdMapping.put(domain.key, pc);
+ }
+
+ return pc.implies(permission);
+@@ -747,21 +744,25 @@
+ this.params = params;
+ }
+
+- public String getType() { return type; }
++ @Override public String getType() { return type; }
+
+- public Policy.Parameters getParameters() { return params; }
++ @Override public Policy.Parameters getParameters() { return params; }
+
+- public Provider getProvider() { return p; }
++ @Override public Provider getProvider() { return p; }
+
++ @Override
+ public PermissionCollection getPermissions(CodeSource codesource) {
+ return spi.engineGetPermissions(codesource);
+ }
++ @Override
+ public PermissionCollection getPermissions(ProtectionDomain domain) {
+ return spi.engineGetPermissions(domain);
+ }
++ @Override
+ public boolean implies(ProtectionDomain domain, Permission perm) {
+ return spi.engineImplies(domain, perm);
+ }
++ @Override
+ public void refresh() {
+ spi.engineRefresh();
+ }
+@@ -803,7 +804,7 @@
+ * @exception SecurityException - if this PermissionCollection object
+ * has been marked readonly
+ */
+- public void add(Permission permission) {
++ @Override public void add(Permission permission) {
+ perms.add(permission);
+ }
+
+@@ -816,7 +817,7 @@
+ * @return true if "permission" is implied by the permissions in
+ * the collection, false if not.
+ */
+- public boolean implies(Permission permission) {
++ @Override public boolean implies(Permission permission) {
+ return perms.implies(permission);
+ }
+
+@@ -826,7 +827,7 @@
+ *
+ * @return an enumeration of all the Permissions.
+ */
+- public Enumeration<Permission> elements() {
++ @Override public Enumeration<Permission> elements() {
+ return perms.elements();
+ }
+ }
+--- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Mar 15 10:28:31 2010
++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Mar 15 10:28:30 2010
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
++ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -47,6 +47,7 @@
+ private static JavaIODeleteOnExitAccess javaIODeleteOnExitAccess;
+ private static JavaNetAccess javaNetAccess;
+ private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess;
++ private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess;
+
+ public static JavaUtilJarAccess javaUtilJarAccess() {
+ if (javaUtilJarAccess == null) {
+@@ -110,4 +111,16 @@
+ return javaIOFileDescriptorAccess;
+ }
+
++ public static void setJavaSecurityProtectionDomainAccess
++ (JavaSecurityProtectionDomainAccess jspda) {
++ javaSecurityProtectionDomainAccess = jspda;
++ }
++
++ public static JavaSecurityProtectionDomainAccess
++ getJavaSecurityProtectionDomainAccess() {
++ if (javaSecurityProtectionDomainAccess == null)
++ unsafe.ensureClassInitialized(java.security.ProtectionDomain.class);
++
++ return javaSecurityProtectionDomainAccess;
++ }
+ }
+--- /dev/null Mon Mar 15 10:28:31 2010
++++ openjdk/jdk/src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java Mon Mar 15 10:28:31 2010
+@@ -0,0 +1,40 @@
++/*
++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++ *
++ * This code is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 only, as
++ * published by the Free Software Foundation. Sun designates this
++ * particular file as subject to the "Classpath" exception as provided
++ * by Sun in the LICENSE file that accompanied this code.
++ *
++ * This code 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
++ * version 2 for more details (a copy is included in the LICENSE file that
++ * accompanied this code).
++ *
++ * You should have received a copy of the GNU General Public License version
++ * 2 along with this work; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
++ * CA 95054 USA or visit www.sun.com if you need additional information or
++ * have any questions.
++ */
++
++package sun.misc;
++
++import java.security.PermissionCollection;
++import java.security.ProtectionDomain;
++
++public interface JavaSecurityProtectionDomainAccess {
++ interface ProtectionDomainCache {
++ void put(ProtectionDomain pd, PermissionCollection pc);
++ PermissionCollection get(ProtectionDomain pd);
++ }
++ /**
++ * Returns the ProtectionDomainCache.
++ */
++ ProtectionDomainCache getProtectionDomainCache();
++}
+--- openjdk.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Mar 15 10:28:31 2010
++++ openjdk/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Mar 15 10:28:31 2010
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
++ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -66,6 +66,9 @@
+ import javax.sound.sampled.AudioPermission;
+ import javax.net.ssl.SSLPermission;
+ */
++import sun.misc.JavaSecurityProtectionDomainAccess;
++import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
++import sun.misc.SharedSecrets;
+ import sun.security.util.Password;
+ import sun.security.util.PolicyUtil;
+ import sun.security.util.PropertyExpander;
+@@ -1108,7 +1111,7 @@
+ /**
+ * Refreshes the policy object by re-reading all the policy files.
+ */
+- public void refresh() {
++ @Override public void refresh() {
+ init(url);
+ }
+
+@@ -1125,9 +1128,10 @@
+ *
+ * @see java.security.ProtectionDomain
+ */
++ @Override
+ public boolean implies(ProtectionDomain pd, Permission p) {
+ PolicyInfo pi = policyInfo.get();
+- Map<ProtectionDomain, PermissionCollection> pdMap = pi.getPdMapping();
++ ProtectionDomainCache pdMap = pi.getPdMapping();
+
+ PermissionCollection pc = pdMap.get(pd);
+
+@@ -1173,6 +1177,7 @@
+ * @return the Permissions granted to the provided
+ * <code>ProtectionDomain</code>.
+ */
++ @Override
+ public PermissionCollection getPermissions(ProtectionDomain domain) {
+ Permissions perms = new Permissions();
+
+@@ -1208,6 +1213,7 @@
+ *
+ * @return the set of permissions according to the policy.
+ */
++ @Override
+ public PermissionCollection getPermissions(CodeSource codesource) {
+ return getPermissions(new Permissions(), codesource);
+ }
+@@ -2200,7 +2206,7 @@
+ return codesource;
+ }
+
+- public String toString(){
++ @Override public String toString(){
+ StringBuilder sb = new StringBuilder();
+ sb.append(ResourcesMgr.getString("("));
+ sb.append(getCodeSource());
+@@ -2336,7 +2342,7 @@
+ *
+ * @return false.
+ */
+- public boolean implies(Permission p) {
++ @Override public boolean implies(Permission p) {
+ return false;
+ }
+
+@@ -2353,7 +2359,7 @@
+ * type (class) name, permission name, actions, and
More information about the distro-pkg-dev
mailing list