Browse code

Merge branch 'master' of https://github.com/vmware/photon

archive authored on 2018/01/05 23:30:19
Showing 59 changed files
... ...
@@ -528,7 +528,7 @@ check-docker-service:
528 528
 	@docker ps >/dev/null 2>&1 || { echo "Docker service is not running. Aborting." >&2; exit 1; }
529 529
 
530 530
 check-docker-py:
531
-	@python -c "import docker; assert docker.__version__ == '$(PHOTON_DOCKER_PY_VER)'" >/dev/null 2>&1 || { echo "Error: Python package docker-py 2.3.0 not installed.\nPlease use: pip install docker==2.3.0" >&2; exit 1; }
531
+	@python3 -c "import docker; assert docker.__version__ == '$(PHOTON_DOCKER_PY_VER)'" >/dev/null 2>&1 || { echo "Error: Python3 package docker-py3 2.3.0 not installed.\nPlease use: pip3 install docker==2.3.0" >&2; exit 1; }
532 532
 
533 533
 check-bison:
534 534
 	@command -v bison >/dev/null 2>&1 || { echo "Package bison not installed. Aborting." >&2; exit 1; }
... ...
@@ -1,14 +1,14 @@
1 1
 Summary:	Programs for generating Makefiles
2 2
 Name:		automake
3
-Version:	1.15
4
-Release:	4%{?dist}
3
+Version:	1.15.1
4
+Release:	1%{?dist}
5 5
 License:	GPLv2+
6 6
 URL:		http://www.gnu.org/software/automake/
7 7
 Group:		System Environment/Base
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: 	Photon
10
-Source0:	http://ftp.gnu.org/gnu/automake/%{name}-%{version}.tar.gz
11
-%define sha1 automake=b5a840c7ec4321e78fdc9472e476263fa6614ca1
10
+Source0:	http://ftp.gnu.org/gnu/automake/%{name}-%{version}.tar.xz
11
+%define sha1 automake=45632d466c16ecf18d9c18dc4be883cde59acb59
12 12
 BuildRequires:	autoconf
13 13
 BuildArch:      noarch
14 14
 
... ...
@@ -42,6 +42,8 @@ make %{?_smp_mflags} check
42 42
 %{_defaultdocdir}/%{name}-%{version}/*
43 43
 %{_mandir}/*/*
44 44
 %changelog
45
+*	Tue Jan 02 2018 Alexey Makhalov <amakhalov@vmware.com> 1.15.1-1
46
+-	Version update
45 47
 *	Fri Aug 04 2017 Danut Moraru <dmoraru@vmware.com> 1.15-4
46 48
 -	Disable check that fails test case
47 49
 *	Tue Apr 25 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.15-3
... ...
@@ -1,14 +1,14 @@
1 1
 Summary:	Apache Commons Daemon
2 2
 Name:		commons-daemon
3
-Version:	1.0.15
4
-Release:	12%{?dist}
3
+Version:	1.1.0
4
+Release:	1%{?dist}
5 5
 License:	Apache
6 6
 URL:		http://commons.apache.org/proper/commons-daemon
7 7
 Group:		Applications/System
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: 	Photon
10
-Source0:	http://apache.mesi.com.ar//commons/daemon/source/commons-daemon-1.0.15-src.tar.gz
11
-%define sha1 commons-daemon=ca6a448d1d214f714e214b35809a2117568970e3
10
+Source0:	http://apache.mesi.com.ar//commons/daemon/source/commons-daemon-1.1.0-src.tar.gz
11
+%define sha1 commons-daemon=5a64221b8020d32c02bf44a115f8a95016d3c76e
12 12
 BuildRequires: openjre8
13 13
 BuildRequires: openjdk8
14 14
 BuildRequires: apache-ant
... ...
@@ -29,8 +29,14 @@ rm -rf %{buildroot}
29 29
 export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
30 30
 ant dist
31 31
 
32
+%ifarch x86_64
32 33
 export CFLAGS=-m64
33 34
 export LDFLAGS=-m64
35
+%endif
36
+
37
+%ifarch aarch64
38
+sed -i 's/supported_os="aarch64"/supported_os="linux"/' src/native/unix/configure
39
+%endif
34 40
 
35 41
 CURDIR=`pwd`
36 42
 
... ...
@@ -56,6 +62,8 @@ chmod -R 755 $DIST_DIR
56 56
 %{_datadir}/java/*.jar
57 57
 
58 58
 %changelog
59
+*   Tue Dec 26 2017 Alexey Makhalov <amakhalov@vmware.com> 1.1.0-1
60
+-   Versio update to support aarch64
59 61
 *   Fri Oct 13 2017 Alexey Makhalov <amakhalov@vmware.com> 1.0.15-12
60 62
 -   Remove BuildArch
61 63
 *   Tue Jun 20 2017 Divya Thaluru <dthaluru@vmware.com> 1.0.15-11
... ...
@@ -1,17 +1,17 @@
1 1
 %global security_hardening none
2 2
 Summary:        The Behavioral Activity Monitor With Container Support
3 3
 Name:           falco
4
-Version:        0.6.0
5
-Release:        3%{?kernelsubrelease}%{?dist}
4
+Version:        0.8.1
5
+Release:        1%{?kernelsubrelease}%{?dist}
6 6
 License:        GPLv2
7 7
 URL:            http://www.sysdig.org/falco/
8 8
 Group:          Applications/System
9 9
 Vendor:         VMware, Inc.
10 10
 Distribution:   Photon
11 11
 Source0:        https://github.com/draios/%{name}/archive/%{name}-%{version}.tar.gz
12
-%define sha1    falco=04dc79c1c4773ba2080c2c49c718305e7920c2f7
13
-Source1:        https://github.com/draios/sysdig/archive/sysdig-0.15.1.tar.gz
14
-%define sha1    sysdig=5b1a7a4978315176412989b5400572d849691917
12
+%define sha1    falco=7873d34769656349678584502296b147aa5445fa
13
+Source1:        https://github.com/draios/sysdig/archive/sysdig-0.19.1.tar.gz
14
+%define sha1    sysdig=425ea9fab8e831274626a9c9e65f0dfb4f9bc019
15 15
 Source2:        http://libvirt.org/sources/libvirt-2.0.0.tar.xz
16 16
 %define sha1    libvirt=9a923b06df23f7a5526e4ec679cdadf4eb35a38f
17 17
 BuildRequires:  cmake
... ...
@@ -50,12 +50,9 @@ Sysdig falco is an open source, behavioral activity monitor designed to detect a
50 50
 tar xf %{SOURCE2} --no-same-owner
51 51
 
52 52
 %build
53
-mv sysdig-0.15.1 ../sysdig
53
+mv sysdig-0.19.1 ../sysdig
54 54
 sed -i 's|../falco/rules|rules|g' userspace/engine/CMakeLists.txt
55 55
 sed -i 's|../falco/userspace|userspace|g' userspace/engine/config_falco_engine.h.in
56
-# fix for linux-4.9
57
-sed -i 's|task_thread_info(current)->status|current->thread.status|g' ../sysdig/driver/main.c
58
-sed -i 's|task_thread_info(task)->status|current->thread.status|g' ../sysdig/driver/ppm_syscall.h
59 56
 cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} CMakeLists.txt
60 57
 make KERNELDIR="/lib/modules/%{KERNEL_VERSION}-%{KERNEL_RELEASE}/build"
61 58
 
... ...
@@ -87,6 +84,8 @@ rm -rf %{buildroot}/*
87 87
 /lib/modules/%{KERNEL_VERSION}-%{KERNEL_RELEASE}/extra/falco-probe.ko
88 88
 
89 89
 %changelog
90
+*   Tue Jan 02 2018 Alexey Makhalov <amakhalov@vmware.com> 0.8.1-1
91
+-   Version update to build against linux-4.14.y kernel
90 92
 *   Thu Aug 24 2017 Rui Gu <ruig@vmware.com> 0.6.0-3
91 93
 -   Disable check section (Bug 1900272).
92 94
 *   Thu May 11 2017 Chang Lee <changlee@vmware.com> 0.6.0-2
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        Contains a utility for determining file types
2 2
 Name:           file
3 3
 Version:        5.30
4
-Release:        2%{?dist}
4
+Release:        3%{?dist}
5 5
 License:        BSD
6 6
 URL:            http://www.darwinsys.com/file
7 7
 Group:          Applications/File
... ...
@@ -10,10 +10,17 @@ Distribution:   Photon
10 10
 Source0:        ftp://ftp.astron.com/pub/file/%{name}-%{version}.tar.gz
11 11
 %define sha1    file=276051cd2c438d4e7a321c4422a5b3bc850fd747
12 12
 Patch0:         file-5.30-keep-not-stripped-last.patch
13
+Requires:       %{name}-libs = %{version}-%{release}
14
+Conflicts:      toybox
13 15
 %description
14 16
 The package contains a utility for determining the type of a
15 17
 given file or files
16 18
 
19
+%package        libs
20
+Summary:        Library files for file
21
+%description    libs
22
+It contains the libraries to run the application.
23
+
17 24
 %package        devel
18 25
 Summary:        Header and development files for file
19 26
 Requires:       %{name} = %{version}-%{release}
... ...
@@ -35,14 +42,18 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
35 35
 %check
36 36
 make %{?_smp_mflags} check
37 37
 
38
-%post   -p /sbin/ldconfig
39
-%postun -p /sbin/ldconfig
38
+%post libs -p /sbin/ldconfig
39
+%postun libs -p /sbin/ldconfig
40
+
40 41
 %files
41 42
 %defattr(-,root,root)
42 43
 %{_bindir}/*
43
-%{_libdir}/*.so.*
44 44
 %{_mandir}/*man1/*
45 45
 %{_mandir}/*man4/*
46
+
47
+%files  libs
48
+%defattr(-,root,root)
49
+%{_libdir}/*.so.*
46 50
 %{_datarootdir}/misc/magic.mgc
47 51
 
48 52
 %files  devel
... ...
@@ -51,6 +62,9 @@ make %{?_smp_mflags} check
51 51
 %{_mandir}/*man3/*
52 52
 
53 53
 %changelog
54
+*   Fri Dec 15 2017 Divya Thaluru <dthaluru@vmware.com> 5.30-3
55
+-   Added seperate package for libraries
56
+-   Added toybox as conflict package
54 57
 *   Fri Jun 23 2017 Xiaolin Li <xiaolinl@vmware.com> 5.30-2
55 58
 -   Add devel package.
56 59
 *   Tue Apr 04 2017 Chang Lee <changlee@vmware.com> 5.30-1
... ...
@@ -4,7 +4,7 @@
4 4
 Name:           gobject-introspection
5 5
 Summary:        Introspection system for GObject-based libraries
6 6
 Version:        1.52.1
7
-Release:        4%{?dist}
7
+Release:        5%{?dist}
8 8
 Group:          Development/Libraries
9 9
 License:        GPLv2+, LGPLv2+, MIT
10 10
 URL:            http://live.gnome.org/GObjectIntrospection
... ...
@@ -69,6 +69,7 @@ Libraries and headers for gobject-introspection.
69 69
 %setup -q
70 70
 %patch0 -p1
71 71
 rm -rf ../p3dir
72
+autoreconf -fiv
72 73
 cp -a . ../p3dir
73 74
 
74 75
 %build
... ...
@@ -135,6 +136,8 @@ make  %{?_smp_mflags} check
135 135
 %doc %{_mandir}/man1/*.gz
136 136
 
137 137
 %changelog
138
+*   Tue Jan 02 2018 Alexey Makhalov <amakhalov@vmware.com> 1.52.1-5
139
+-   Add autoreconf to support automake-1.15.1
138 140
 *   Mon Aug 28 2017 Kumar Kaushik <kaushikk@vmware.com> 1.52.1-4
139 141
 -   Disabling make check for Regress-1.0.gir test, bug#1635886
140 142
 *   Wed Jun 07 2017 Xiaolin Li <xiaolinl@vmware.com> 1.52.1-3
141 143
new file mode 100644
... ...
@@ -0,0 +1,11 @@
0
+--- a/rc.d/init.d/functions	2017-02-27 06:56:05.000000000 -0800
1
+@@ -60,7 +60,7 @@
2
+ 
3
+ if [ -z "${CONSOLETYPE:-}" ]; then
4
+     if [ -c "/dev/stderr" -a -r "/dev/stderr" ]; then
5
+-        CONSOLETYPE="$(/sbin/consoletype < /dev/stderr 2>/dev/null)"
6
++        CONSOLETYPE="$(/sbin/consoletype stdout < /dev/stderr 2>/dev/null)"
7
+     else
8
+         CONSOLETYPE="serial"
9
+     fi
... ...
@@ -3,21 +3,22 @@ Name:		initscripts
3 3
 Version:	9.70
4 4
 License:	GPLv2
5 5
 Group:		System Environment/Base
6
-Release:	1%{?dist}
6
+Release:	2%{?dist}
7 7
 URL:		https://github.com/fedora-sysv/initscripts
8 8
 Source0:	https://github.com/fedora-sysv/initscripts/archive/%{name}-%{version}.tar.gz
9 9
 %define sha1 initscripts=6e2ba0946fa2f175f576614d9374ad00266aec66
10 10
 Patch0:     service.patch
11
+Patch1:     fix_return_code_during_set_error.patch
11 12
 Vendor:     	VMware, Inc.
12 13
 Distribution:   Photon
13 14
 Requires:	systemd
14 15
 Requires:	iproute2
15
-BuildRequires:	glib-devel 
16
+BuildRequires:	glib-devel
16 17
 BuildRequires:	python2
17 18
 BuildRequires:	python2-libs
18
-BuildRequires:	popt-devel 
19
-BuildRequires:	gettext 
20
-BuildRequires:	pkg-config 
19
+BuildRequires:	popt-devel
20
+BuildRequires:	gettext
21
+BuildRequires:	pkg-config
21 22
 BuildRequires:	systemd
22 23
 Provides:	/sbin/service
23 24
 
... ...
@@ -46,6 +47,7 @@ Binaries of init network
46 46
 %prep
47 47
 %setup -q
48 48
 %patch0 -p1
49
+%patch1 -p1
49 50
 
50 51
 %build
51 52
 make
... ...
@@ -160,16 +162,18 @@ rm -rf %{buildroot}%{_prefix}/lib/systemd
160 160
 %{_sysconfdir}/profile.d/debug*
161 161
 
162 162
 %changelog
163
+*   Tue Dec 26 2017 Divya Thaluru <dthaluru@vmware.com> 9.70-2
164
+-   Fixed return code in /etc/init.d/functions bash script
163 165
 *   Mon Apr 3 2017 Dheeraj Shetty <dheerajs@vmware.com> 9.70-1
164 166
 -   Updated to version 9.70
165
-*	Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 9.65-2
166
--	GA - Bump release of all rpms
167
-* Fri Feb 12 2016 Divya Thaluru <dthaluru@vmware.com> 9.65-2
168
-- Fixing service script to start services using systemctl by default
167
+*   Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 9.65-2
168
+-   GA - Bump release of all rpms
169
+*   Fri Feb 12 2016 Divya Thaluru <dthaluru@vmware.com> 9.65-2
170
+-   Fixing service script to start services using systemctl by default
169 171
 *   Tue Jan 26 2016 Xiaolin Li <xiaolinl@vmware.com> 9.65-1
170 172
 -   Updated to version 9.65
171
-* Mon Jul 20 2015 Divya Thaluru <dthaluru@vmware.com> 9.63-1
172
-- Got Spec file from source tar ball and modified it to be compatible to build in Photon 
173
+*   Mon Jul 20 2015 Divya Thaluru <dthaluru@vmware.com> 9.63-1
174
+-   Got Spec file from source tar ball and modified it to be compatible to build in Photon
173 175
 * Mon May 18 2015 Lukáš Nykrýn <lnykryn@redhat.com> - 9.63-1
174 176
 - remove ipcalc, it has its own package now
175 177
 - network: tell NM to reload its configuration during start
... ...
@@ -1166,7 +1170,7 @@ ng
1166 1166
 - run rc.sysinit, /etc/rc in monitor mode (part of #184340)
1167 1167
 - use a better check for 'native' services (#190989, #110761, adapted
1168 1168
   from <matthias@rpmforge.net>)
1169
- 
1169
+
1170 1170
 * Tue Sep 19 2006 Bill Nottingham <notting@redhat.com> 8.41-1
1171 1171
 - fix network ipv6 hang (#207137, others)
1172 1172
 - rc.sysinit: change blkid.tab path to /etc/blkid/blkid.tab
... ...
@@ -1511,7 +1515,7 @@ ng
1511 1511
   for ipv6calc (<pb@bierenger.de>, <pekkas@netcore.fi>)
1512 1512
 - fix quoting in daemon() (#144634)
1513 1513
 - make sysctl be silent (#144483)
1514
- 
1514
+
1515 1515
 * Mon Jan  3 2005 Bill Nottingham <notting@redhat.com> 8.02-1
1516 1516
 - remove initlog, minilogd
1517 1517
 - add a flag to kmodule for use with kudzu's socket mode, use it
... ...
@@ -1695,7 +1699,7 @@ ng
1695 1695
 - rc.sysinit: remove devfs compat and the remaining 2.4 compat
1696 1696
 - ifup-wireless: support multiple keys (#127957)
1697 1697
 - fix firmware loading (#129155, <bnocera@redhat.com>)
1698
- 
1698
+
1699 1699
 * Tue Aug 24 2004 Karsten Hopp <karsten@redhat.de> 7.68-1
1700 1700
 - execute zfcfconf.sh if available (mainframe)
1701 1701
 
... ...
@@ -1715,7 +1719,7 @@ ng
1715 1715
 
1716 1716
 * Fri Aug 20 2004 Bill Nottingham <notting@redhat.com> 7.64-1
1717 1717
 - rc.d/rc.sysinit: check for dev file too (#130350)
1718
- 
1718
+
1719 1719
 * Thu Aug 19 2004 Than Ngo <than@redhat.com> 7.63-1
1720 1720
 - allow CBCP with own number (#125710)
1721 1721
 
... ...
@@ -2276,7 +2280,7 @@ ng
2276 2276
 * Mon Oct 29 2001 Than Ngo <than@redhat.com>
2277 2277
 - fix bug in channel bundling if MSN is missed
2278 2278
 - support DEBUG option
2279
- 
2279
+
2280 2280
 * Wed Sep 19 2001 Than Ngo <than@redhat.com>
2281 2281
 - don't show user name by DSL connection
2282 2282
 
... ...
@@ -2456,7 +2460,7 @@ ng
2456 2456
 * Wed Jun 27 2001 Than Ngo <than@redhat.com>
2457 2457
 - fix pap/chap authentication for syncppp
2458 2458
 - support ippp options
2459
- 
2459
+
2460 2460
 * Mon Jun 25 2001 Bill Nottingham <notting@redhat.com>
2461 2461
 - add ifup-wireless
2462 2462
 
... ...
@@ -3124,7 +3128,7 @@ ng
3124 3124
 - set macaddr before bootp
3125 3125
 - zero in the /var/run/utmpx file (gafton)
3126 3126
 - don't set hostname on ppp/slip (kills X)
3127
- 
3127
+
3128 3128
 * Wed Mar 17 1999 Bill Nottingham <notting@redhat.com>
3129 3129
 - exit ifup if pump fails
3130 3130
 - fix stupid errors in reading commands from subprocess
... ...
@@ -1,7 +1,7 @@
1 1
 Summary: A New Scripting Dynamic Tracing Tool For Linux
2 2
 Name:    ktap
3 3
 Version: 0.4
4
-Release: 7%{?kernelsubrelease}%{?dist}
4
+Release: 8%{?kernelsubrelease}%{?dist}
5 5
 License: GPLv2
6 6
 URL: https://github.com/ktap/ktap
7 7
 Source: %{name}-master.zip
... ...
@@ -9,6 +9,7 @@ Source: %{name}-master.zip
9 9
 Group:      Development/Tools
10 10
 Vendor:     VMware, Inc.
11 11
 Patch0:        linux-4.9-support.patch
12
+Patch1:        linux-4.14-support.patch
12 13
 Distribution:  Photon
13 14
 BuildRequires: elfutils-devel
14 15
 BuildRequires: linux-devel = %{KERNEL_VERSION}-%{KERNEL_RELEASE}
... ...
@@ -23,6 +24,7 @@ ktap is a new scripting dynamic tracing tool for Linux, it uses a scripting lang
23 23
 %prep
24 24
 %setup -q -n ktap-master
25 25
 %patch0 -p1
26
+%patch1 -p1
26 27
 
27 28
 %build
28 29
 make ktap
... ...
@@ -48,6 +50,8 @@ make install DESTDIR=%{buildroot} KVERSION=%{KERNEL_VERSION}-%{KERNEL_RELEASE}
48 48
 /lib/modules/%{KERNEL_VERSION}-%{KERNEL_RELEASE}/extra/ktapvm.ko
49 49
 
50 50
 %changelog
51
+*   Tue Dec 26 2017 Alexey Makhalov <amakhalov@vmware.com> 0.4-8
52
+-   Update to linux-4.14.y. Added support patch
51 53
 *   Fri Jun 09 2017 Chang Lee <changlee@vmware.com> 0.4-7
52 54
 -   Remove %check
53 55
 *   Thu Dec 15 2016 Alexey Makhalov <amakhalov@vmware.com> 0.4-6
54 56
new file mode 100644
... ...
@@ -0,0 +1,68 @@
0
+From af5b37cb95ae43815e7399c92596856a1bbacd2a Mon Sep 17 00:00:00 2001
1
+From: Alexey Makhalov <amakhalov@vmware.com>
2
+Date: Tue, 26 Dec 2017 20:43:49 +0000
3
+Subject: [PATCH] Fix building for v4.14 kernel
4
+
5
+---
6
+ runtime/kp_transport.c | 2 +-
7
+ runtime/kp_vm.c        | 3 ++-
8
+ runtime/lib_base.c     | 2 +-
9
+ runtime/lib_kdebug.c   | 2 +-
10
+ 4 files changed, 5 insertions(+), 4 deletions(-)
11
+
12
+diff --git a/runtime/kp_transport.c b/runtime/kp_transport.c
13
+index 4f76bbd..09a6f87 100644
14
+--- a/runtime/kp_transport.c
15
+@@ -119,7 +119,7 @@ static void trace_consume(struct trace_iterator *iter)
16
+ 			    &iter->lost_events);
17
+ }
18
+ 
19
+-unsigned long long ns2usecs(cycle_t nsec)
20
++unsigned long long ns2usecs(u64 nsec)
21
+ {
22
+ 	nsec += 500;
23
+ 	do_div(nsec, 1000);
24
+diff --git a/runtime/kp_vm.c b/runtime/kp_vm.c
25
+index 0b4787c..761b51b 100644
26
+--- a/runtime/kp_vm.c
27
+@@ -1367,7 +1367,8 @@ static int init_arguments(ktap_state_t *ks, int argc, char __user **user_argv)
28
+ 		int len;
29
+ 		int res;
30
+ 
31
+-		len = strlen_user(ustr);
32
++		/* +2 including final NUL */
33
++		len = strnlen_user(ustr, 0x1002);
34
+ 		if (len > 0x1000) {
35
+ 			ret = -EINVAL;
36
+ 			break;
37
+diff --git a/runtime/lib_base.c b/runtime/lib_base.c
38
+index 691f7d4..420b4b4 100644
39
+--- a/runtime/lib_base.c
40
+@@ -151,7 +151,7 @@ static int kplib_stack(ktap_state_t *ks)
41
+ #endif
42
+ 
43
+ 
44
+-extern unsigned long long ns2usecs(cycle_t nsec);
45
++extern unsigned long long ns2usecs(u64 nsec);
46
+ static int kplib_print_trace_clock(ktap_state_t *ks)
47
+ {
48
+ 	unsigned long long t;
49
+diff --git a/runtime/lib_kdebug.c b/runtime/lib_kdebug.c
50
+index ecd7cbe..f7ed11f 100644
51
+--- a/runtime/lib_kdebug.c
52
+@@ -70,7 +70,7 @@ static int kplib_kdebug_trace_by_id(ktap_state_t *ks)
53
+ 	if (eventsdesc.filter) {
54
+ 		int len;
55
+ 
56
+-		len = strlen_user(eventsdesc.filter);
57
++		len = strnlen_user(eventsdesc.filter, 0x1002);
58
+ 		if (len > 0x1000)
59
+ 			return -1;
60
+ 
61
+-- 
62
+2.14.2
63
+
0 64
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+diff -Naur lightwave-1.3.1.7_orig/configure.ac lightwave-1.3.1.7/configure.ac
1
+--- lightwave-1.3.1.7_orig/configure.ac	2017-11-07 18:38:24.000000000 +0000
2
+@@ -21,7 +21,7 @@
3
+         PLATFORM_LIB_PREFIX=lib64
4
+         ;;
5
+     linux*:aarch64)
6
+-        PLATFORM_LIB_PREFIX=lib
7
++        PLATFORM_LIB_PREFIX=lib64
8
+         ;;
9
+     darwin*:x86_64)
10
+         PLATFORM_LIB_PREFIX=lib
11
+@@ -224,7 +224,7 @@
12
+     OPEN_SSL_DEFAULT_PATH=/opt/vmware/lib
13
+     ;;
14
+     linux*:aarch64)
15
+-    OPEN_SSL_DEFAULT_PATH=/opt/vmware/lib
16
++    OPEN_SSL_DEFAULT_PATH=/opt/vmware/lib64
17
+     ;;
18
+     *)
19
+     AC_ERROR("Unsupported operating system - ${host_os}:${host_cpu}")
20
+@@ -445,7 +445,7 @@
21
+     LIKEWISE_DEFAULT_PATH=$LW_BASE_PATH/lib
22
+     ;;
23
+     linux*:aarch64)
24
+-    LIKEWISE_DEFAULT_PATH=$LW_BASE_PATH/lib
25
++    LIKEWISE_DEFAULT_PATH=$LW_BASE_PATH/lib64
26
+     ;;
27
+     *)
28
+     AC_ERROR("Unsupported operating system - ${host_os}:${host_cpu}")
... ...
@@ -1,13 +1,14 @@
1 1
 Name:          lightwave
2 2
 Summary:       VMware Lightwave
3 3
 Version:       1.3.1.7
4
-Release:       1%{?dist}
4
+Release:       2%{?dist}
5 5
 License:       Apache 2.0
6 6
 Group:         Applications/System
7 7
 Vendor:        VMware, Inc.
8 8
 URL: 	       https://github.com/vmware/lightwave
9 9
 Source0:       lightwave-%{version}.tar.gz
10 10
 Patch0:        lightwave-gssapi-unix-creds-separation.patch
11
+Patch1:        lightwave-aarch64-support.patch
11 12
 %define sha1 lightwave=abe987b67aadab05040ac38c11474b8d93fe8644
12 13
 Distribution:  Photon
13 14
 
... ...
@@ -126,6 +127,7 @@ Lightwave POST service
126 126
 %prep
127 127
 %setup -qn lightwave-%{version}
128 128
 %patch0 -p1
129
+%patch1 -p1
129 130
 sed -i 's|/opt/vmware/bin/certool|/usr/bin/certool|' vmidentity/install/src/main/java/com/vmware/identity/configure/LinuxInstallerHelper.java
130 131
 sed -i 's/VMIDENTITY_LIB_DIR=\/opt\/vmware\/lib64/VMIDENTITY_LIB_DIR=\/usr\/jars/' vmidentity/websso/src/main/resources/sso-config.sh
131 132
 sed -i 's,/opt/vmware/bin/ic-join,/usr/bin/ic-join,' config/scripts/domainjoin.sh
... ...
@@ -1141,6 +1143,8 @@ fi
1141 1141
 # %doc ChangeLog README COPYING
1142 1142
 
1143 1143
 %changelog
1144
+*   Tue Dec 26 2017 Alexey Makhalov <amakhalov@vmware.com> 1.3.1.7-2
1145
+-   Aarch64 support
1144 1146
 *   Thu Nov 23 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.3.1.7-1
1145 1147
 -   update to lightwave 1.3.1.7 (release 1.3.1-7 in lightwave repo)
1146 1148
 *   Mon Sep 25 2017 Alexey Makhalov <amakhalov@vmware.com> 1.3.1-5
... ...
@@ -1,6 +1,6 @@
1 1
 Summary:	Linux API header files
2 2
 Name:		linux-api-headers
3
-Version:	4.9.66
3
+Version:	4.14.8
4 4
 Release:	1%{?dist}
5 5
 License:	GPLv2
6 6
 URL:		http://www.kernel.org/
... ...
@@ -8,7 +8,7 @@ Group:		System Environment/Kernel
8 8
 Vendor:		VMware, Inc.
9 9
 Distribution: Photon
10 10
 Source0:        http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz
11
-%define sha1 linux=ecb5adfa84ab6f06f2cb07b56517883310710a0b
11
+%define sha1 linux=45f140e0eab08428d78d81d4169d531a3e65a297
12 12
 BuildArch:	noarch
13 13
 %description
14 14
 The Linux API Headers expose the kernel's API for use by Glibc.
... ...
@@ -25,6 +25,8 @@ find /%{buildroot}%{_includedir} \( -name .install -o -name ..install.cmd \) -de
25 25
 %defattr(-,root,root)
26 26
 %{_includedir}/*
27 27
 %changelog
28
+*   Fri Dec 22 2017 Alexey Makhalov <amakhalov@vmware.com> 4.14.8-1
29
+-   Version update
28 30
 *   Mon Dec 04 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.66-1
29 31
 -   Version update
30 32
 *   Tue Nov 21 2017 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 4.9.64-1
31 33
new file mode 100644
... ...
@@ -0,0 +1,96 @@
0
+From 6cf100df51539210b9115fe74f27ff5b139a5cfc Mon Sep 17 00:00:00 2001
1
+From: Alexey Makhalov <amakhalov@vmware.com>
2
+Date: Fri, 22 Dec 2017 15:54:02 -0800
3
+Subject: [PATCH] Allow some algo tests for FIPS
4
+
5
+---
6
+ crypto/testmgr.c | 10 ++++++++++
7
+ 1 file changed, 10 insertions(+)
8
+
9
+diff --git a/crypto/testmgr.c b/crypto/testmgr.c
10
+index 7125ba38..1729c52a 100644
11
+--- a/crypto/testmgr.c
12
+@@ -2357,6 +2357,7 @@ static const struct alg_test_desc alg_test_descs[] = {
13
+ 	}, {
14
+ 		.alg = "authenc(hmac(md5),ecb(cipher_null))",
15
+ 		.test = alg_test_aead,
16
++                .fips_allowed = 1,
17
+ 		.suite = {
18
+ 			.aead = {
19
+ 				.enc = __VECS(hmac_md5_ecb_cipher_null_enc_tv_template),
20
+@@ -2375,6 +2376,7 @@ static const struct alg_test_desc alg_test_descs[] = {
21
+ 	}, {
22
+ 		.alg = "authenc(hmac(sha1),cbc(des))",
23
+ 		.test = alg_test_aead,
24
++                .fips_allowed = 1,
25
+ 		.suite = {
26
+ 			.aead = {
27
+ 				.enc = __VECS(hmac_sha1_des_cbc_enc_tv_temp)
28
+@@ -2396,6 +2398,7 @@ static const struct alg_test_desc alg_test_descs[] = {
29
+ 	}, {
30
+ 		.alg = "authenc(hmac(sha1),ecb(cipher_null))",
31
+ 		.test = alg_test_aead,
32
++                .fips_allowed = 1,
33
+ 		.suite = {
34
+ 			.aead = {
35
+ 				.enc = __VECS(hmac_sha1_ecb_cipher_null_enc_tv_temp),
36
+@@ -2435,6 +2438,7 @@ static const struct alg_test_desc alg_test_descs[] = {
37
+ 	}, {
38
+ 		.alg = "authenc(hmac(sha256),cbc(des))",
39
+ 		.test = alg_test_aead,
40
++                .fips_allowed = 1,
41
+ 		.suite = {
42
+ 			.aead = {
43
+ 				.enc = __VECS(hmac_sha256_des_cbc_enc_tv_temp)
44
+@@ -2460,6 +2464,7 @@ static const struct alg_test_desc alg_test_descs[] = {
45
+ 	}, {
46
+ 		.alg = "authenc(hmac(sha384),cbc(des))",
47
+ 		.test = alg_test_aead,
48
++                .fips_allowed = 1,
49
+ 		.suite = {
50
+ 			.aead = {
51
+ 				.enc = __VECS(hmac_sha384_des_cbc_enc_tv_temp)
52
+@@ -2494,6 +2499,7 @@ static const struct alg_test_desc alg_test_descs[] = {
53
+ 	}, {
54
+ 		.alg = "authenc(hmac(sha512),cbc(des))",
55
+ 		.test = alg_test_aead,
56
++                .fips_allowed = 1,
57
+ 		.suite = {
58
+ 			.aead = {
59
+ 				.enc = __VECS(hmac_sha512_des_cbc_enc_tv_temp)
60
+@@ -3193,6 +3199,7 @@ static const struct alg_test_desc alg_test_descs[] = {
61
+ 		.alg = "jitterentropy_rng",
62
+ 		.fips_allowed = 1,
63
+ 		.test = alg_test_null,
64
++                .fips_allowed = 1,
65
+ 	}, {
66
+ 		.alg = "kw(aes)",
67
+ 		.test = alg_test_skcipher,
68
+@@ -3373,6 +3380,7 @@ static const struct alg_test_desc alg_test_descs[] = {
69
+ 	}, {
70
+ 		.alg = "rfc4543(gcm(aes))",
71
+ 		.test = alg_test_aead,
72
++                .fips_allowed = 1,
73
+ 		.suite = {
74
+ 			.aead = {
75
+ 				.enc = __VECS(aes_gcm_rfc4543_enc_tv_template),
76
+@@ -3391,6 +3399,7 @@ static const struct alg_test_desc alg_test_descs[] = {
77
+ 	}, {
78
+ 		.alg = "rfc7539esp(chacha20,poly1305)",
79
+ 		.test = alg_test_aead,
80
++                .fips_allowed = 1,
81
+ 		.suite = {
82
+ 			.aead = {
83
+ 				.enc = __VECS(rfc7539esp_enc_tv_template),
84
+@@ -3587,6 +3596,7 @@ static const struct alg_test_desc alg_test_descs[] = {
85
+ 	}, {
86
+ 		.alg = "xts(twofish)",
87
+ 		.test = alg_test_skcipher,
88
++                .fips_allowed = 1,
89
+ 		.suite = {
90
+ 			.cipher = {
91
+ 				.enc = __VECS(tf_xts_enc_tv_template),
92
+-- 
93
+2.11.0
94
+
... ...
@@ -1,6 +1,6 @@
1 1
 #
2 2
 # Automatically generated file; DO NOT EDIT.
3
-# Linux/x86 4.9.64 Kernel Configuration
3
+# Linux/x86 4.14.8 Kernel Configuration
4 4
 #
5 5
 CONFIG_64BIT=y
6 6
 CONFIG_X86_64=y
... ...
@@ -41,7 +41,6 @@ CONFIG_HAVE_INTEL_TXT=y
41 41
 CONFIG_X86_64_SMP=y
42 42
 CONFIG_ARCH_SUPPORTS_UPROBES=y
43 43
 CONFIG_FIX_EARLYCON_MEM=y
44
-CONFIG_DEBUG_RODATA=y
45 44
 CONFIG_PGTABLE_LEVELS=4
46 45
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
47 46
 CONFIG_IRQ_WORK=y
... ...
@@ -88,7 +87,9 @@ CONFIG_AUDIT_TREE=y
88 88
 #
89 89
 CONFIG_GENERIC_IRQ_PROBE=y
90 90
 CONFIG_GENERIC_IRQ_SHOW=y
91
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
91 92
 CONFIG_GENERIC_PENDING_IRQ=y
93
+CONFIG_GENERIC_IRQ_MIGRATION=y
92 94
 CONFIG_IRQ_DOMAIN=y
93 95
 CONFIG_IRQ_DOMAIN_HIERARCHY=y
94 96
 CONFIG_GENERIC_MSI_IRQ=y
... ...
@@ -96,6 +97,7 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
96 96
 # CONFIG_IRQ_DOMAIN_DEBUG is not set
97 97
 CONFIG_IRQ_FORCED_THREADING=y
98 98
 CONFIG_SPARSE_IRQ=y
99
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
99 100
 CONFIG_CLOCKSOURCE_WATCHDOG=y
100 101
 CONFIG_ARCH_CLOCKSOURCE_DATA=y
101 102
 CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
... ...
@@ -135,16 +137,16 @@ CONFIG_TASK_IO_ACCOUNTING=y
135 135
 CONFIG_TREE_RCU=y
136 136
 # CONFIG_RCU_EXPERT is not set
137 137
 CONFIG_SRCU=y
138
+CONFIG_TREE_SRCU=y
138 139
 # CONFIG_TASKS_RCU is not set
139 140
 CONFIG_RCU_STALL_COMMON=y
140
-# CONFIG_TREE_RCU_TRACE is not set
141
-# CONFIG_RCU_EXPEDITE_BOOT is not set
141
+CONFIG_RCU_NEED_SEGCBLIST=y
142 142
 CONFIG_BUILD_BIN2C=y
143 143
 CONFIG_IKCONFIG=y
144 144
 CONFIG_IKCONFIG_PROC=y
145 145
 CONFIG_LOG_BUF_SHIFT=18
146 146
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
147
-CONFIG_NMI_LOG_BUF_SHIFT=13
147
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
148 148
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
149 149
 CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
150 150
 CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
... ...
@@ -163,6 +165,7 @@ CONFIG_FAIR_GROUP_SCHED=y
163 163
 CONFIG_CFS_BANDWIDTH=y
164 164
 # CONFIG_RT_GROUP_SCHED is not set
165 165
 CONFIG_CGROUP_PIDS=y
166
+CONFIG_CGROUP_RDMA=y
166 167
 CONFIG_CGROUP_FREEZER=y
167 168
 CONFIG_CGROUP_HUGETLB=y
168 169
 CONFIG_CPUSETS=y
... ...
@@ -171,6 +174,7 @@ CONFIG_CGROUP_DEVICE=y
171 171
 CONFIG_CGROUP_CPUACCT=y
172 172
 CONFIG_CGROUP_PERF=y
173 173
 # CONFIG_CGROUP_DEBUG is not set
174
+CONFIG_SOCK_CGROUP_DATA=y
174 175
 # CONFIG_CHECKPOINT_RESTORE is not set
175 176
 CONFIG_NAMESPACES=y
176 177
 CONFIG_UTS_NS=y
... ...
@@ -203,6 +207,7 @@ CONFIG_MULTIUSER=y
203 203
 CONFIG_SGETMASK_SYSCALL=y
204 204
 CONFIG_SYSFS_SYSCALL=y
205 205
 # CONFIG_SYSCTL_SYSCALL is not set
206
+CONFIG_POSIX_TIMERS=y
206 207
 CONFIG_KALLSYMS=y
207 208
 CONFIG_KALLSYMS_ALL=y
208 209
 CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
... ...
@@ -214,6 +219,7 @@ CONFIG_ELF_CORE=y
214 214
 # CONFIG_PCSPKR_PLATFORM is not set
215 215
 CONFIG_BASE_FULL=y
216 216
 CONFIG_FUTEX=y
217
+CONFIG_FUTEX_PI=y
217 218
 CONFIG_EPOLL=y
218 219
 CONFIG_SIGNALFD=y
219 220
 CONFIG_TIMERFD=y
... ...
@@ -227,6 +233,7 @@ CONFIG_PCI_QUIRKS=y
227 227
 CONFIG_MEMBARRIER=y
228 228
 # CONFIG_EMBEDDED is not set
229 229
 CONFIG_HAVE_PERF_EVENTS=y
230
+# CONFIG_PC104 is not set
230 231
 
231 232
 #
232 233
 # Kernel Performance Events And Counters
... ...
@@ -238,10 +245,12 @@ CONFIG_COMPAT_BRK=y
238 238
 CONFIG_SLAB=y
239 239
 # CONFIG_SLUB is not set
240 240
 # CONFIG_SLOB is not set
241
+CONFIG_SLAB_MERGE_DEFAULT=y
241 242
 # CONFIG_SLAB_FREELIST_RANDOM is not set
242 243
 CONFIG_SYSTEM_DATA_VERIFICATION=y
243 244
 CONFIG_PROFILING=y
244 245
 CONFIG_TRACEPOINTS=y
246
+CONFIG_CRASH_CORE=y
245 247
 CONFIG_KEXEC_CORE=y
246 248
 CONFIG_OPROFILE=m
247 249
 CONFIG_OPROFILE_EVENT_MULTIPLEX=y
... ...
@@ -266,16 +275,21 @@ CONFIG_HAVE_NMI=y
266 266
 CONFIG_HAVE_ARCH_TRACEHOOK=y
267 267
 CONFIG_HAVE_DMA_CONTIGUOUS=y
268 268
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
269
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
270
+CONFIG_ARCH_HAS_SET_MEMORY=y
269 271
 CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
270 272
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
273
+CONFIG_HAVE_CLK=y
271 274
 CONFIG_HAVE_DMA_API_DEBUG=y
272 275
 CONFIG_HAVE_HW_BREAKPOINT=y
273 276
 CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
274 277
 CONFIG_HAVE_USER_RETURN_NOTIFIER=y
275 278
 CONFIG_HAVE_PERF_EVENTS_NMI=y
279
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
276 280
 CONFIG_HAVE_PERF_REGS=y
277 281
 CONFIG_HAVE_PERF_USER_STACK_DUMP=y
278 282
 CONFIG_HAVE_ARCH_JUMP_LABEL=y
283
+CONFIG_HAVE_RCU_TABLE_FREE=y
279 284
 CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
280 285
 CONFIG_HAVE_CMPXCHG_LOCAL=y
281 286
 CONFIG_HAVE_CMPXCHG_DOUBLE=y
... ...
@@ -287,18 +301,23 @@ CONFIG_HAVE_GCC_PLUGINS=y
287 287
 CONFIG_GCC_PLUGINS=y
288 288
 # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
289 289
 # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
290
+# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set
291
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
290 292
 CONFIG_HAVE_CC_STACKPROTECTOR=y
291 293
 CONFIG_CC_STACKPROTECTOR=y
292 294
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
293 295
 CONFIG_CC_STACKPROTECTOR_REGULAR=y
294 296
 # CONFIG_CC_STACKPROTECTOR_STRONG is not set
297
+CONFIG_THIN_ARCHIVES=y
295 298
 CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
296 299
 CONFIG_HAVE_CONTEXT_TRACKING=y
297 300
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
298 301
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
299 302
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
303
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
300 304
 CONFIG_HAVE_ARCH_HUGE_VMAP=y
301 305
 CONFIG_HAVE_ARCH_SOFT_DIRTY=y
306
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
302 307
 CONFIG_MODULES_USE_ELF_RELA=y
303 308
 CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
304 309
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
... ...
@@ -307,8 +326,10 @@ CONFIG_HAVE_EXIT_THREAD=y
307 307
 CONFIG_ARCH_MMAP_RND_BITS=28
308 308
 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
309 309
 CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
310
+CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
310 311
 CONFIG_HAVE_COPY_THREAD_TLS=y
311 312
 CONFIG_HAVE_STACK_VALIDATION=y
313
+CONFIG_HAVE_RELIABLE_STACKTRACE=y
312 314
 # CONFIG_HAVE_ARCH_HASH is not set
313 315
 # CONFIG_ISA_BUS_API is not set
314 316
 CONFIG_OLD_SIGSUSPEND3=y
... ...
@@ -316,6 +337,14 @@ CONFIG_COMPAT_OLD_SIGACTION=y
316 316
 # CONFIG_CPU_NO_EFFICIENT_FFS is not set
317 317
 CONFIG_HAVE_ARCH_VMAP_STACK=y
318 318
 CONFIG_VMAP_STACK=y
319
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set
320
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
321
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
322
+CONFIG_STRICT_KERNEL_RWX=y
323
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
324
+CONFIG_STRICT_MODULE_RWX=y
325
+CONFIG_ARCH_HAS_REFCOUNT=y
326
+# CONFIG_REFCOUNT_FULL is not set
319 327
 
320 328
 #
321 329
 # GCOV-based kernel profiling
... ...
@@ -344,11 +373,17 @@ CONFIG_MODULE_SIG_HASH="sha512"
344 344
 # CONFIG_MODULE_COMPRESS is not set
345 345
 CONFIG_MODULES_TREE_LOOKUP=y
346 346
 CONFIG_BLOCK=y
347
+CONFIG_BLK_SCSI_REQUEST=y
347 348
 CONFIG_BLK_DEV_BSG=y
348 349
 CONFIG_BLK_DEV_BSGLIB=y
349 350
 CONFIG_BLK_DEV_INTEGRITY=y
351
+# CONFIG_BLK_DEV_ZONED is not set
350 352
 CONFIG_BLK_DEV_THROTTLING=y
353
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
351 354
 # CONFIG_BLK_CMDLINE_PARSER is not set
355
+# CONFIG_BLK_WBT is not set
356
+CONFIG_BLK_DEBUG_FS=y
357
+# CONFIG_BLK_SED_OPAL is not set
352 358
 
353 359
 #
354 360
 # Partition Types
... ...
@@ -375,6 +410,7 @@ CONFIG_EFI_PARTITION=y
375 375
 # CONFIG_CMDLINE_PARTITION is not set
376 376
 CONFIG_BLOCK_COMPAT=y
377 377
 CONFIG_BLK_MQ_PCI=y
378
+CONFIG_BLK_MQ_VIRTIO=y
378 379
 
379 380
 #
380 381
 # IO Schedulers
... ...
@@ -387,6 +423,9 @@ CONFIG_CFQ_GROUP_IOSCHED=y
387 387
 CONFIG_DEFAULT_CFQ=y
388 388
 # CONFIG_DEFAULT_NOOP is not set
389 389
 CONFIG_DEFAULT_IOSCHED="cfq"
390
+CONFIG_MQ_IOSCHED_DEADLINE=y
391
+CONFIG_MQ_IOSCHED_KYBER=y
392
+# CONFIG_IOSCHED_BFQ is not set
390 393
 CONFIG_PREEMPT_NOTIFIERS=y
391 394
 CONFIG_ASN1=y
392 395
 CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
... ...
@@ -414,6 +453,7 @@ CONFIG_X86_FAST_FEATURE_TESTS=y
414 414
 CONFIG_X86_X2APIC=y
415 415
 # CONFIG_X86_MPPARSE is not set
416 416
 # CONFIG_GOLDFISH is not set
417
+# CONFIG_INTEL_RDT is not set
417 418
 # CONFIG_X86_EXTENDED_PLATFORM is not set
418 419
 # CONFIG_X86_INTEL_LPSS is not set
419 420
 # CONFIG_X86_AMD_PLATFORM_DEVICE is not set
... ...
@@ -426,8 +466,11 @@ CONFIG_PARAVIRT=y
426 426
 # CONFIG_PARAVIRT_DEBUG is not set
427 427
 # CONFIG_PARAVIRT_SPINLOCKS is not set
428 428
 CONFIG_XEN=y
429
+CONFIG_XEN_PV=y
430
+CONFIG_XEN_PV_SMP=y
429 431
 CONFIG_XEN_DOM0=y
430 432
 CONFIG_XEN_PVHVM=y
433
+CONFIG_XEN_PVHVM_SMP=y
431 434
 CONFIG_XEN_512GB=y
432 435
 CONFIG_XEN_SAVE_RESTORE=y
433 436
 CONFIG_XEN_DEBUG_FS=y
... ...
@@ -464,6 +507,7 @@ CONFIG_MAXSMP=y
464 464
 CONFIG_NR_CPUS=8192
465 465
 CONFIG_SCHED_SMT=y
466 466
 CONFIG_SCHED_MC=y
467
+CONFIG_SCHED_MC_PRIO=y
467 468
 CONFIG_PREEMPT_NONE=y
468 469
 # CONFIG_PREEMPT_VOLUNTARY is not set
469 470
 # CONFIG_PREEMPT is not set
... ...
@@ -471,6 +515,7 @@ CONFIG_X86_LOCAL_APIC=y
471 471
 CONFIG_X86_IO_APIC=y
472 472
 CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
473 473
 CONFIG_X86_MCE=y
474
+# CONFIG_X86_MCELOG_LEGACY is not set
474 475
 CONFIG_X86_MCE_INTEL=y
475 476
 CONFIG_X86_MCE_AMD=y
476 477
 CONFIG_X86_MCE_THRESHOLD=y
... ...
@@ -495,9 +540,12 @@ CONFIG_MICROCODE_AMD=y
495 495
 CONFIG_MICROCODE_OLD_INTERFACE=y
496 496
 CONFIG_X86_MSR=m
497 497
 CONFIG_X86_CPUID=m
498
+# CONFIG_X86_5LEVEL is not set
498 499
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
499 500
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
500 501
 CONFIG_X86_DIRECT_GBPAGES=y
502
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
503
+# CONFIG_AMD_MEM_ENCRYPT is not set
501 504
 CONFIG_NUMA=y
502 505
 CONFIG_AMD_NUMA=y
503 506
 CONFIG_X86_64_ACPI_NUMA=y
... ...
@@ -521,9 +569,9 @@ CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
521 521
 CONFIG_SPARSEMEM_VMEMMAP=y
522 522
 CONFIG_HAVE_MEMBLOCK=y
523 523
 CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
524
+CONFIG_HAVE_GENERIC_GUP=y
524 525
 CONFIG_ARCH_DISCARD_MEMBLOCK=y
525 526
 CONFIG_MEMORY_ISOLATION=y
526
-# CONFIG_MOVABLE_NODE is not set
527 527
 CONFIG_HAVE_BOOTMEM_INFO_NODE=y
528 528
 CONFIG_MEMORY_HOTPLUG=y
529 529
 CONFIG_MEMORY_HOTPLUG_SPARSE=y
... ...
@@ -536,6 +584,7 @@ CONFIG_BALLOON_COMPACTION=y
536 536
 CONFIG_COMPACTION=y
537 537
 CONFIG_MIGRATION=y
538 538
 CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
539
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
539 540
 CONFIG_PHYS_ADDR_T_64BIT=y
540 541
 CONFIG_VIRT_TO_BUS=y
541 542
 CONFIG_MMU_NOTIFIER=y
... ...
@@ -547,6 +596,8 @@ CONFIG_MEMORY_FAILURE=y
547 547
 CONFIG_TRANSPARENT_HUGEPAGE=y
548 548
 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
549 549
 # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
550
+CONFIG_ARCH_WANTS_THP_SWAP=y
551
+CONFIG_THP_SWAP=y
550 552
 CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
551 553
 CONFIG_CLEANCACHE=y
552 554
 # CONFIG_FRONTSWAP is not set
... ...
@@ -558,9 +609,15 @@ CONFIG_GENERIC_EARLY_IOREMAP=y
558 558
 CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
559 559
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
560 560
 # CONFIG_IDLE_PAGE_TRACKING is not set
561
+CONFIG_ARCH_HAS_ZONE_DEVICE=y
561 562
 CONFIG_ZONE_DEVICE=y
563
+CONFIG_ARCH_HAS_HMM=y
564
+# CONFIG_HMM_MIRROR is not set
565
+# CONFIG_DEVICE_PRIVATE is not set
566
+# CONFIG_DEVICE_PUBLIC is not set
562 567
 CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
563 568
 CONFIG_ARCH_HAS_PKEYS=y
569
+# CONFIG_PERCPU_STATS is not set
564 570
 CONFIG_X86_PMEM_LEGACY_DEVICE=y
565 571
 CONFIG_X86_PMEM_LEGACY=y
566 572
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
... ...
@@ -603,6 +660,7 @@ CONFIG_LEGACY_VSYSCALL_EMULATE=y
603 603
 # CONFIG_CMDLINE_BOOL is not set
604 604
 CONFIG_MODIFY_LDT_SYSCALL=y
605 605
 CONFIG_HAVE_LIVEPATCH=y
606
+CONFIG_ARCH_HAS_ADD_PAGES=y
606 607
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
607 608
 CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
608 609
 CONFIG_USE_PERCPU_NUMA_NODE_ID=y
... ...
@@ -623,6 +681,8 @@ CONFIG_PM_SLEEP_SMP=y
623 623
 # CONFIG_PM_WAKELOCKS is not set
624 624
 CONFIG_PM=y
625 625
 # CONFIG_PM_DEBUG is not set
626
+CONFIG_PM_OPP=y
627
+CONFIG_PM_CLK=y
626 628
 # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
627 629
 CONFIG_ACPI=y
628 630
 CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
... ...
@@ -642,6 +702,7 @@ CONFIG_ACPI_FAN=m
642 642
 CONFIG_ACPI_CPU_FREQ_PSS=y
643 643
 CONFIG_ACPI_PROCESSOR_CSTATE=y
644 644
 CONFIG_ACPI_PROCESSOR_IDLE=y
645
+CONFIG_ACPI_CPPC_LIB=y
645 646
 CONFIG_ACPI_PROCESSOR=y
646 647
 CONFIG_ACPI_IPMI=m
647 648
 CONFIG_ACPI_HOTPLUG_CPU=y
... ...
@@ -663,7 +724,6 @@ CONFIG_ACPI_HED=y
663 663
 # CONFIG_ACPI_BGRT is not set
664 664
 # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
665 665
 CONFIG_ACPI_NFIT=m
666
-# CONFIG_ACPI_NFIT_DEBUG is not set
667 666
 CONFIG_HAVE_ACPI_APEI=y
668 667
 CONFIG_HAVE_ACPI_APEI_NMI=y
669 668
 CONFIG_ACPI_APEI=y
... ...
@@ -685,7 +745,6 @@ CONFIG_CPU_FREQ=y
685 685
 CONFIG_CPU_FREQ_GOV_ATTR_SET=y
686 686
 CONFIG_CPU_FREQ_GOV_COMMON=y
687 687
 CONFIG_CPU_FREQ_STAT=y
688
-CONFIG_CPU_FREQ_STAT_DETAILS=y
689 688
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
690 689
 # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
691 690
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
... ...
@@ -726,12 +785,6 @@ CONFIG_CPU_IDLE_GOV_MENU=y
726 726
 CONFIG_INTEL_IDLE=y
727 727
 
728 728
 #
729
-# Memory power savings
730
-#
731
-CONFIG_I7300_IDLE_IOAT_CHANNEL=y
732
-CONFIG_I7300_IDLE=m
733
-
734
-#
735 729
 # Bus options (PCI etc.)
736 730
 #
737 731
 CONFIG_PCI=y
... ...
@@ -749,6 +802,7 @@ CONFIG_PCIEASPM=y
749 749
 # CONFIG_PCIEASPM_DEBUG is not set
750 750
 CONFIG_PCIEASPM_DEFAULT=y
751 751
 # CONFIG_PCIEASPM_POWERSAVE is not set
752
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
752 753
 # CONFIG_PCIEASPM_PERFORMANCE is not set
753 754
 CONFIG_PCIE_PME=y
754 755
 # CONFIG_PCIE_DPC is not set
... ...
@@ -762,6 +816,7 @@ CONFIG_PCI_MSI_IRQ_DOMAIN=y
762 762
 CONFIG_XEN_PCIDEV_FRONTEND=m
763 763
 CONFIG_HT_IRQ=y
764 764
 CONFIG_PCI_ATS=y
765
+CONFIG_PCI_LOCKLESS_CONFIG=y
765 766
 CONFIG_PCI_IOV=y
766 767
 CONFIG_PCI_PRI=y
767 768
 CONFIG_PCI_PASID=y
... ...
@@ -774,10 +829,24 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=m
774 774
 # CONFIG_HOTPLUG_PCI_SHPC is not set
775 775
 
776 776
 #
777
-# PCI host controller drivers
777
+# DesignWare PCI Core Support
778 778
 #
779 779
 # CONFIG_PCIE_DW_PLAT is not set
780
+
781
+#
782
+# PCI host controller drivers
783
+#
780 784
 CONFIG_VMD=y
785
+
786
+#
787
+# PCI Endpoint
788
+#
789
+# CONFIG_PCI_ENDPOINT is not set
790
+
791
+#
792
+# PCI switch controller drivers
793
+#
794
+# CONFIG_PCI_SW_SWITCHTEC is not set
781 795
 # CONFIG_ISA_BUS is not set
782 796
 CONFIG_ISA_DMA_API=y
783 797
 CONFIG_AMD_NB=y
... ...
@@ -799,11 +868,11 @@ CONFIG_COREDUMP=y
799 799
 CONFIG_IA32_EMULATION=y
800 800
 # CONFIG_IA32_AOUT is not set
801 801
 # CONFIG_X86_X32 is not set
802
+CONFIG_COMPAT_32=y
802 803
 CONFIG_COMPAT=y
803 804
 CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
804 805
 CONFIG_SYSVIPC_COMPAT=y
805 806
 CONFIG_X86_DEV_DMA_OPS=y
806
-CONFIG_PMC_ATOM=y
807 807
 CONFIG_NET=y
808 808
 CONFIG_NET_INGRESS=y
809 809
 CONFIG_NET_EGRESS=y
... ...
@@ -815,6 +884,7 @@ CONFIG_PACKET=y
815 815
 CONFIG_PACKET_DIAG=m
816 816
 CONFIG_UNIX=y
817 817
 CONFIG_UNIX_DIAG=m
818
+# CONFIG_TLS is not set
818 819
 CONFIG_XFRM=y
819 820
 CONFIG_XFRM_ALGO=m
820 821
 CONFIG_XFRM_USER=m
... ...
@@ -849,6 +919,7 @@ CONFIG_NET_UDP_TUNNEL=m
849 849
 # CONFIG_NET_FOU_IP_TUNNELS is not set
850 850
 CONFIG_INET_AH=m
851 851
 CONFIG_INET_ESP=m
852
+# CONFIG_INET_ESP_OFFLOAD is not set
852 853
 CONFIG_INET_IPCOMP=m
853 854
 CONFIG_INET_XFRM_TUNNEL=m
854 855
 CONFIG_INET_TUNNEL=m
... ...
@@ -858,6 +929,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
858 858
 CONFIG_INET_DIAG=m
859 859
 CONFIG_INET_TCP_DIAG=m
860 860
 CONFIG_INET_UDP_DIAG=m
861
+# CONFIG_INET_RAW_DIAG is not set
861 862
 # CONFIG_INET_DIAG_DESTROY is not set
862 863
 CONFIG_TCP_CONG_ADVANCED=y
863 864
 # CONFIG_TCP_CONG_BIC is not set
... ...
@@ -886,6 +958,7 @@ CONFIG_IPV6_ROUTE_INFO=y
886 886
 CONFIG_IPV6_OPTIMISTIC_DAD=y
887 887
 CONFIG_INET6_AH=m
888 888
 CONFIG_INET6_ESP=m
889
+# CONFIG_INET6_ESP_OFFLOAD is not set
889 890
 CONFIG_INET6_IPCOMP=m
890 891
 CONFIG_IPV6_MIP6=m
891 892
 # CONFIG_IPV6_ILA is not set
... ...
@@ -908,12 +981,13 @@ CONFIG_IPV6_SUBTREES=y
908 908
 CONFIG_IPV6_MROUTE=y
909 909
 CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
910 910
 CONFIG_IPV6_PIMSM_V2=y
911
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
912
+# CONFIG_IPV6_SEG6_HMAC is not set
911 913
 CONFIG_NETLABEL=y
912 914
 CONFIG_NETWORK_SECMARK=y
913 915
 CONFIG_NET_PTP_CLASSIFY=y
914 916
 CONFIG_NETWORK_PHY_TIMESTAMPING=y
915 917
 CONFIG_NETFILTER=y
916
-# CONFIG_NETFILTER_DEBUG is not set
917 918
 CONFIG_NETFILTER_ADVANCED=y
918 919
 CONFIG_BRIDGE_NETFILTER=m
919 920
 
... ...
@@ -927,6 +1001,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=m
927 927
 CONFIG_NETFILTER_NETLINK_LOG=m
928 928
 CONFIG_NF_CONNTRACK=m
929 929
 CONFIG_NF_LOG_COMMON=m
930
+# CONFIG_NF_LOG_NETDEV is not set
930 931
 CONFIG_NF_CONNTRACK_MARK=y
931 932
 CONFIG_NF_CONNTRACK_SECMARK=y
932 933
 CONFIG_NF_CONNTRACK_ZONES=y
... ...
@@ -935,10 +1010,10 @@ CONFIG_NF_CONNTRACK_EVENTS=y
935 935
 CONFIG_NF_CONNTRACK_TIMEOUT=y
936 936
 CONFIG_NF_CONNTRACK_TIMESTAMP=y
937 937
 CONFIG_NF_CONNTRACK_LABELS=y
938
-CONFIG_NF_CT_PROTO_DCCP=m
938
+CONFIG_NF_CT_PROTO_DCCP=y
939 939
 CONFIG_NF_CT_PROTO_GRE=m
940
-CONFIG_NF_CT_PROTO_SCTP=m
941
-CONFIG_NF_CT_PROTO_UDPLITE=m
940
+CONFIG_NF_CT_PROTO_SCTP=y
941
+CONFIG_NF_CT_PROTO_UDPLITE=y
942 942
 CONFIG_NF_CONNTRACK_AMANDA=m
943 943
 CONFIG_NF_CONNTRACK_FTP=m
944 944
 CONFIG_NF_CONNTRACK_H323=m
... ...
@@ -955,9 +1030,9 @@ CONFIG_NF_CT_NETLINK_TIMEOUT=m
955 955
 # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
956 956
 CONFIG_NF_NAT=m
957 957
 CONFIG_NF_NAT_NEEDED=y
958
-CONFIG_NF_NAT_PROTO_DCCP=m
959
-CONFIG_NF_NAT_PROTO_UDPLITE=m
960
-CONFIG_NF_NAT_PROTO_SCTP=m
958
+CONFIG_NF_NAT_PROTO_DCCP=y
959
+CONFIG_NF_NAT_PROTO_UDPLITE=y
960
+CONFIG_NF_NAT_PROTO_SCTP=y
961 961
 CONFIG_NF_NAT_AMANDA=m
962 962
 CONFIG_NF_NAT_FTP=m
963 963
 CONFIG_NF_NAT_IRC=m
... ...
@@ -970,16 +1045,19 @@ CONFIG_NF_TABLES_INET=m
970 970
 CONFIG_NF_TABLES_NETDEV=m
971 971
 CONFIG_NFT_EXTHDR=m
972 972
 CONFIG_NFT_META=m
973
+CONFIG_NFT_RT=m
973 974
 CONFIG_NFT_NUMGEN=m
974 975
 CONFIG_NFT_CT=m
975 976
 CONFIG_NFT_SET_RBTREE=m
976 977
 CONFIG_NFT_SET_HASH=m
978
+CONFIG_NFT_SET_BITMAP=m
977 979
 CONFIG_NFT_COUNTER=m
978 980
 CONFIG_NFT_LOG=m
979 981
 CONFIG_NFT_LIMIT=m
980 982
 CONFIG_NFT_MASQ=m
981 983
 CONFIG_NFT_REDIR=m
982 984
 CONFIG_NFT_NAT=m
985
+# CONFIG_NFT_OBJREF is not set
983 986
 CONFIG_NFT_QUEUE=m
984 987
 CONFIG_NFT_QUOTA=m
985 988
 CONFIG_NFT_REJECT=m
... ...
@@ -1069,7 +1147,6 @@ CONFIG_NETFILTER_XT_MATCH_RATEEST=m
1069 1069
 CONFIG_NETFILTER_XT_MATCH_REALM=m
1070 1070
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
1071 1071
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
1072
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
1073 1072
 CONFIG_NETFILTER_XT_MATCH_STATE=m
1074 1073
 CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
1075 1074
 CONFIG_NETFILTER_XT_MATCH_STRING=m
... ...
@@ -1086,6 +1163,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
1086 1086
 CONFIG_IP_SET_HASH_IPPORT=m
1087 1087
 CONFIG_IP_SET_HASH_IPPORTIP=m
1088 1088
 CONFIG_IP_SET_HASH_IPPORTNET=m
1089
+CONFIG_IP_SET_HASH_IPMAC=m
1089 1090
 CONFIG_IP_SET_HASH_MAC=m
1090 1091
 CONFIG_IP_SET_HASH_NETPORTNET=m
1091 1092
 CONFIG_IP_SET_HASH_NET=m
... ...
@@ -1141,10 +1219,12 @@ CONFIG_IP_VS_PE_SIP=m
1141 1141
 #
1142 1142
 CONFIG_NF_DEFRAG_IPV4=m
1143 1143
 CONFIG_NF_CONNTRACK_IPV4=m
1144
+# CONFIG_NF_SOCKET_IPV4 is not set
1144 1145
 CONFIG_NF_TABLES_IPV4=m
1145 1146
 # CONFIG_NFT_CHAIN_ROUTE_IPV4 is not set
1146 1147
 CONFIG_NFT_REJECT_IPV4=m
1147 1148
 # CONFIG_NFT_DUP_IPV4 is not set
1149
+# CONFIG_NFT_FIB_IPV4 is not set
1148 1150
 # CONFIG_NF_TABLES_ARP is not set
1149 1151
 CONFIG_NF_DUP_IPV4=m
1150 1152
 # CONFIG_NF_LOG_ARP is not set
... ...
@@ -1186,10 +1266,12 @@ CONFIG_IP_NF_ARP_MANGLE=m
1186 1186
 #
1187 1187
 CONFIG_NF_DEFRAG_IPV6=m
1188 1188
 CONFIG_NF_CONNTRACK_IPV6=m
1189
+# CONFIG_NF_SOCKET_IPV6 is not set
1189 1190
 CONFIG_NF_TABLES_IPV6=m
1190 1191
 CONFIG_NFT_CHAIN_ROUTE_IPV6=m
1191 1192
 CONFIG_NFT_REJECT_IPV6=m
1192 1193
 CONFIG_NFT_DUP_IPV6=m
1194
+# CONFIG_NFT_FIB_IPV6 is not set
1193 1195
 CONFIG_NF_DUP_IPV6=m
1194 1196
 CONFIG_NF_REJECT_IPV6=m
1195 1197
 CONFIG_NF_LOG_IPV6=m
... ...
@@ -1321,6 +1403,7 @@ CONFIG_NET_SCH_FQ=m
1321 1321
 # CONFIG_NET_SCH_PIE is not set
1322 1322
 CONFIG_NET_SCH_INGRESS=m
1323 1323
 CONFIG_NET_SCH_PLUG=m
1324
+# CONFIG_NET_SCH_DEFAULT is not set
1324 1325
 
1325 1326
 #
1326 1327
 # Classification
... ...
@@ -1353,6 +1436,7 @@ CONFIG_NET_ACT_POLICE=m
1353 1353
 CONFIG_NET_ACT_GACT=m
1354 1354
 CONFIG_GACT_PROB=y
1355 1355
 CONFIG_NET_ACT_MIRRED=m
1356
+# CONFIG_NET_ACT_SAMPLE is not set
1356 1357
 CONFIG_NET_ACT_IPT=m
1357 1358
 CONFIG_NET_ACT_NAT=m
1358 1359
 CONFIG_NET_ACT_PEDIT=m
... ...
@@ -1378,11 +1462,12 @@ CONFIG_VSOCKETS=m
1378 1378
 CONFIG_VMWARE_VMCI_VSOCKETS=m
1379 1379
 CONFIG_VIRTIO_VSOCKETS=m
1380 1380
 CONFIG_VIRTIO_VSOCKETS_COMMON=m
1381
-CONFIG_HYPERV_SOCK=m
1381
+CONFIG_HYPERV_VSOCKETS=m
1382 1382
 CONFIG_NETLINK_DIAG=m
1383 1383
 CONFIG_MPLS=y
1384 1384
 CONFIG_NET_MPLS_GSO=m
1385 1385
 # CONFIG_MPLS_ROUTING is not set
1386
+# CONFIG_NET_NSH is not set
1386 1387
 # CONFIG_HSR is not set
1387 1388
 # CONFIG_NET_SWITCHDEV is not set
1388 1389
 CONFIG_NET_L3_MASTER_DEV=y
... ...
@@ -1390,7 +1475,6 @@ CONFIG_NET_L3_MASTER_DEV=y
1390 1390
 CONFIG_RPS=y
1391 1391
 CONFIG_RFS_ACCEL=y
1392 1392
 CONFIG_XPS=y
1393
-CONFIG_SOCK_CGROUP_DATA=y
1394 1393
 CONFIG_CGROUP_NET_PRIO=y
1395 1394
 CONFIG_CGROUP_NET_CLASSID=y
1396 1395
 CONFIG_NET_RX_BUSY_POLL=y
... ...
@@ -1406,7 +1490,6 @@ CONFIG_NET_FLOW_LIMIT=y
1406 1406
 CONFIG_NET_DROP_MONITOR=m
1407 1407
 # CONFIG_HAMRADIO is not set
1408 1408
 # CONFIG_CAN is not set
1409
-# CONFIG_IRDA is not set
1410 1409
 # CONFIG_BT is not set
1411 1410
 # CONFIG_AF_RXRPC is not set
1412 1411
 # CONFIG_AF_KCM is not set
... ...
@@ -1417,14 +1500,18 @@ CONFIG_FIB_RULES=y
1417 1417
 # CONFIG_RFKILL is not set
1418 1418
 CONFIG_NET_9P=m
1419 1419
 CONFIG_NET_9P_VIRTIO=m
1420
+CONFIG_NET_9P_XEN=m
1420 1421
 # CONFIG_NET_9P_DEBUG is not set
1421 1422
 # CONFIG_CAIF is not set
1422 1423
 CONFIG_CEPH_LIB=m
1423 1424
 # CONFIG_CEPH_LIB_PRETTYDEBUG is not set
1424 1425
 # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
1425 1426
 # CONFIG_NFC is not set
1427
+# CONFIG_PSAMPLE is not set
1428
+# CONFIG_NET_IFE is not set
1426 1429
 # CONFIG_LWTUNNEL is not set
1427 1430
 CONFIG_DST_CACHE=y
1431
+CONFIG_GRO_CELLS=y
1428 1432
 # CONFIG_NET_DEVLINK is not set
1429 1433
 CONFIG_MAY_USE_DEVLINK=y
1430 1434
 CONFIG_HAVE_EBPF_JIT=y
... ...
@@ -1450,13 +1537,14 @@ CONFIG_ALLOW_DEV_COREDUMP=y
1450 1450
 # CONFIG_DEBUG_DRIVER is not set
1451 1451
 # CONFIG_DEBUG_DEVRES is not set
1452 1452
 # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
1453
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
1453 1454
 CONFIG_SYS_HYPERVISOR=y
1454 1455
 # CONFIG_GENERIC_CPU_DEVICES is not set
1455 1456
 CONFIG_GENERIC_CPU_AUTOPROBE=y
1456 1457
 CONFIG_REGMAP=y
1457 1458
 CONFIG_REGMAP_I2C=y
1458 1459
 CONFIG_DMA_SHARED_BUFFER=y
1459
-# CONFIG_FENCE_TRACE is not set
1460
+# CONFIG_DMA_FENCE_TRACE is not set
1460 1461
 
1461 1462
 #
1462 1463
 # Bus devices
... ...
@@ -1477,7 +1565,6 @@ CONFIG_BLK_DEV=y
1477 1477
 # CONFIG_BLK_DEV_NULL_BLK is not set
1478 1478
 # CONFIG_BLK_DEV_FD is not set
1479 1479
 # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
1480
-# CONFIG_BLK_CPQ_CISS_DA is not set
1481 1480
 # CONFIG_BLK_DEV_DAC960 is not set
1482 1481
 # CONFIG_BLK_DEV_UMEM is not set
1483 1482
 # CONFIG_BLK_DEV_COW_COMMON is not set
... ...
@@ -1487,7 +1574,6 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
1487 1487
 # CONFIG_BLK_DEV_DRBD is not set
1488 1488
 # CONFIG_BLK_DEV_NBD is not set
1489 1489
 # CONFIG_BLK_DEV_SKD is not set
1490
-# CONFIG_BLK_DEV_OSD is not set
1491 1490
 # CONFIG_BLK_DEV_SX8 is not set
1492 1491
 CONFIG_BLK_DEV_RAM=y
1493 1492
 CONFIG_BLK_DEV_RAM_COUNT=16
... ...
@@ -1498,15 +1584,16 @@ CONFIG_BLK_DEV_RAM_DAX=y
1498 1498
 CONFIG_XEN_BLKDEV_FRONTEND=m
1499 1499
 # CONFIG_XEN_BLKDEV_BACKEND is not set
1500 1500
 CONFIG_VIRTIO_BLK=m
1501
-# CONFIG_BLK_DEV_HD is not set
1501
+# CONFIG_VIRTIO_BLK_SCSI is not set
1502 1502
 CONFIG_BLK_DEV_RBD=m
1503 1503
 # CONFIG_BLK_DEV_RSXX is not set
1504 1504
 CONFIG_NVME_CORE=y
1505 1505
 CONFIG_BLK_DEV_NVME=y
1506
-# CONFIG_BLK_DEV_NVME_SCSI is not set
1507 1506
 CONFIG_NVME_FABRICS=m
1507
+# CONFIG_NVME_FC is not set
1508 1508
 CONFIG_NVME_TARGET=m
1509 1509
 CONFIG_NVME_TARGET_LOOP=m
1510
+# CONFIG_NVME_TARGET_FC is not set
1510 1511
 
1511 1512
 #
1512 1513
 # Misc devices
... ...
@@ -1532,6 +1619,7 @@ CONFIG_NVME_TARGET_LOOP=m
1532 1532
 CONFIG_VMWARE_BALLOON=m
1533 1533
 # CONFIG_USB_SWITCH_FSA9480 is not set
1534 1534
 # CONFIG_SRAM is not set
1535
+# CONFIG_PCI_ENDPOINT_TEST is not set
1535 1536
 # CONFIG_C2PORT is not set
1536 1537
 
1537 1538
 #
... ...
@@ -1541,6 +1629,7 @@ CONFIG_VMWARE_BALLOON=m
1541 1541
 # CONFIG_EEPROM_LEGACY is not set
1542 1542
 # CONFIG_EEPROM_MAX6875 is not set
1543 1543
 CONFIG_EEPROM_93CX6=m
1544
+# CONFIG_EEPROM_IDT_89HPESX is not set
1544 1545
 # CONFIG_CB710_CORE is not set
1545 1546
 
1546 1547
 #
... ...
@@ -1595,6 +1684,7 @@ CONFIG_VMWARE_VMCI=m
1595 1595
 # CONFIG_ECHO is not set
1596 1596
 # CONFIG_CXL_BASE is not set
1597 1597
 # CONFIG_CXL_AFU_DRIVER_OPS is not set
1598
+# CONFIG_CXL_LIB is not set
1598 1599
 CONFIG_HAVE_IDE=y
1599 1600
 CONFIG_IDE=y
1600 1601
 
... ...
@@ -1905,7 +1995,7 @@ CONFIG_BLK_DEV_DM=m
1905 1905
 # CONFIG_DM_MQ_DEFAULT is not set
1906 1906
 # CONFIG_DM_DEBUG is not set
1907 1907
 CONFIG_DM_BUFIO=m
1908
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
1908
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
1909 1909
 CONFIG_DM_BIO_PRISON=m
1910 1910
 CONFIG_DM_PERSISTENT_DATA=m
1911 1911
 CONFIG_DM_CRYPT=m
... ...
@@ -1927,6 +2017,7 @@ CONFIG_DM_VERITY=m
1927 1927
 # CONFIG_DM_VERITY_FEC is not set
1928 1928
 # CONFIG_DM_SWITCH is not set
1929 1929
 # CONFIG_DM_LOG_WRITES is not set
1930
+# CONFIG_DM_INTEGRITY is not set
1930 1931
 # CONFIG_TARGET_CORE is not set
1931 1932
 CONFIG_FUSION=y
1932 1933
 CONFIG_FUSION_SPI=y
... ...
@@ -1954,6 +2045,7 @@ CONFIG_DUMMY=m
1954 1954
 CONFIG_MACVLAN=m
1955 1955
 CONFIG_MACVTAP=m
1956 1956
 CONFIG_IPVLAN=m
1957
+# CONFIG_IPVTAP is not set
1957 1958
 CONFIG_VXLAN=m
1958 1959
 CONFIG_GENEVE=m
1959 1960
 # CONFIG_GTP is not set
... ...
@@ -1963,11 +2055,13 @@ CONFIG_NETCONSOLE_DYNAMIC=y
1963 1963
 CONFIG_NETPOLL=y
1964 1964
 CONFIG_NET_POLL_CONTROLLER=y
1965 1965
 CONFIG_TUN=m
1966
+CONFIG_TAP=m
1966 1967
 # CONFIG_TUN_VNET_CROSS_LE is not set
1967 1968
 CONFIG_VETH=y
1968 1969
 CONFIG_VIRTIO_NET=y
1969 1970
 # CONFIG_NLMON is not set
1970 1971
 # CONFIG_NET_VRF is not set
1972
+CONFIG_VSOCKMON=m
1971 1973
 # CONFIG_ARCNET is not set
1972 1974
 
1973 1975
 #
... ...
@@ -1983,6 +2077,8 @@ CONFIG_MDIO=m
1983 1983
 # CONFIG_NET_VENDOR_ADAPTEC is not set
1984 1984
 CONFIG_NET_VENDOR_AGERE=y
1985 1985
 # CONFIG_ET131X is not set
1986
+CONFIG_NET_VENDOR_ALACRITECH=y
1987
+# CONFIG_SLICOSS is not set
1986 1988
 CONFIG_NET_VENDOR_ALTEON=y
1987 1989
 CONFIG_ACENIC=m
1988 1990
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
... ...
@@ -1991,6 +2087,9 @@ CONFIG_ACENIC=m
1991 1991
 CONFIG_NET_VENDOR_AMD=y
1992 1992
 CONFIG_AMD8111_ETH=m
1993 1993
 CONFIG_PCNET32=m
1994
+# CONFIG_AMD_XGBE is not set
1995
+# CONFIG_AMD_XGBE_HAVE_ECC is not set
1996
+# CONFIG_NET_VENDOR_AQUANTIA is not set
1994 1997
 # CONFIG_NET_VENDOR_ARC is not set
1995 1998
 CONFIG_NET_VENDOR_ATHEROS=y
1996 1999
 CONFIG_ATL2=m
... ...
@@ -2006,10 +2105,10 @@ CONFIG_B44=m
2006 2006
 CONFIG_B44_PCI_AUTOSELECT=y
2007 2007
 CONFIG_B44_PCICORE_AUTOSELECT=y
2008 2008
 CONFIG_B44_PCI=y
2009
-# CONFIG_BCMGENET is not set
2010 2009
 CONFIG_BNX2=m
2011 2010
 CONFIG_CNIC=m
2012 2011
 CONFIG_TIGON3=m
2012
+CONFIG_TIGON3_HWMON=y
2013 2013
 CONFIG_BNX2X=m
2014 2014
 CONFIG_BNX2X_SRIOV=y
2015 2015
 # CONFIG_BNXT is not set
... ...
@@ -2021,6 +2120,7 @@ CONFIG_NET_VENDOR_CAVIUM=y
2021 2021
 # CONFIG_THUNDER_NIC_BGX is not set
2022 2022
 # CONFIG_THUNDER_NIC_RGX is not set
2023 2023
 # CONFIG_LIQUIDIO is not set
2024
+# CONFIG_LIQUIDIO_VF is not set
2024 2025
 CONFIG_NET_VENDOR_CHELSIO=y
2025 2026
 CONFIG_CHELSIO_T1=m
2026 2027
 CONFIG_CHELSIO_T1_1G=y
... ...
@@ -2059,6 +2159,7 @@ CONFIG_VXGE=m
2059 2059
 # CONFIG_VXGE_DEBUG_TRACE_ALL is not set
2060 2060
 CONFIG_NET_VENDOR_HP=y
2061 2061
 CONFIG_HP100=m
2062
+# CONFIG_NET_VENDOR_HUAWEI is not set
2062 2063
 CONFIG_NET_VENDOR_INTEL=y
2063 2064
 CONFIG_E100=m
2064 2065
 CONFIG_E1000=y
... ...
@@ -2076,14 +2177,12 @@ CONFIG_IXGBE_DCB=y
2076 2076
 CONFIG_IXGBEVF=m
2077 2077
 CONFIG_I40E=m
2078 2078
 CONFIG_I40E_DCB=y
2079
-# CONFIG_I40E_FCOE is not set
2080 2079
 CONFIG_I40EVF=m
2081 2080
 CONFIG_FM10K=m
2082 2081
 CONFIG_NET_VENDOR_I825XX=y
2083 2082
 CONFIG_JME=m
2084 2083
 CONFIG_NET_VENDOR_MARVELL=y
2085 2084
 # CONFIG_MVMDIO is not set
2086
-# CONFIG_MVNETA_BM is not set
2087 2085
 CONFIG_SKGE=m
2088 2086
 # CONFIG_SKGE_DEBUG is not set
2089 2087
 # CONFIG_SKGE_GENESIS is not set
... ...
@@ -2096,6 +2195,7 @@ CONFIG_MLX4_CORE=m
2096 2096
 CONFIG_MLX4_DEBUG=y
2097 2097
 # CONFIG_MLX5_CORE is not set
2098 2098
 # CONFIG_MLXSW_CORE is not set
2099
+# CONFIG_MLXFW is not set
2099 2100
 # CONFIG_NET_VENDOR_MICREL is not set
2100 2101
 CONFIG_NET_VENDOR_MYRI=y
2101 2102
 CONFIG_MYRI10GE=m
... ...
@@ -2116,6 +2216,7 @@ CONFIG_NETXEN_NIC=m
2116 2116
 # CONFIG_QED is not set
2117 2117
 CONFIG_NET_VENDOR_QUALCOMM=y
2118 2118
 # CONFIG_QCOM_EMAC is not set
2119
+# CONFIG_RMNET is not set
2119 2120
 CONFIG_NET_VENDOR_REALTEK=y
2120 2121
 CONFIG_8139CP=m
2121 2122
 CONFIG_8139TOO=m
... ...
@@ -2132,28 +2233,24 @@ CONFIG_NET_VENDOR_SAMSUNG=y
2132 2132
 # CONFIG_NET_VENDOR_SEEQ is not set
2133 2133
 # CONFIG_NET_VENDOR_SILAN is not set
2134 2134
 # CONFIG_NET_VENDOR_SIS is not set
2135
-# CONFIG_SFC is not set
2135
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
2136 2136
 # CONFIG_NET_VENDOR_SMSC is not set
2137 2137
 # CONFIG_NET_VENDOR_STMICRO is not set
2138 2138
 # CONFIG_NET_VENDOR_SUN is not set
2139
-# CONFIG_NET_VENDOR_SYNOPSYS is not set
2140 2139
 # CONFIG_NET_VENDOR_TEHUTI is not set
2141 2140
 # CONFIG_NET_VENDOR_TI is not set
2142 2141
 # CONFIG_NET_VENDOR_VIA is not set
2143 2142
 # CONFIG_NET_VENDOR_WIZNET is not set
2143
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
2144 2144
 # CONFIG_FDDI is not set
2145 2145
 # CONFIG_HIPPI is not set
2146 2146
 # CONFIG_NET_SB1000 is not set
2147
-CONFIG_PHYLIB=y
2148
-CONFIG_SWPHY=y
2149
-
2150
-#
2151
-# MDIO bus device drivers
2152
-#
2153
-# CONFIG_MDIO_BCM_UNIMAC is not set
2147
+CONFIG_MDIO_DEVICE=y
2148
+CONFIG_MDIO_BUS=y
2154 2149
 # CONFIG_MDIO_BITBANG is not set
2155
-# CONFIG_MDIO_OCTEON is not set
2156 2150
 # CONFIG_MDIO_THUNDER is not set
2151
+CONFIG_PHYLIB=y
2152
+CONFIG_SWPHY=y
2157 2153
 
2158 2154
 #
2159 2155
 # MII PHY device drivers
... ...
@@ -2166,6 +2263,7 @@ CONFIG_BCM87XX_PHY=m
2166 2166
 CONFIG_BCM_NET_PHYLIB=m
2167 2167
 CONFIG_BROADCOM_PHY=m
2168 2168
 # CONFIG_CICADA_PHY is not set
2169
+# CONFIG_CORTINA_PHY is not set
2169 2170
 # CONFIG_DAVICOM_PHY is not set
2170 2171
 # CONFIG_DP83848_PHY is not set
2171 2172
 # CONFIG_DP83867_PHY is not set
... ...
@@ -2175,12 +2273,14 @@ CONFIG_FIXED_PHY=y
2175 2175
 CONFIG_LSI_ET1011C_PHY=m
2176 2176
 CONFIG_LXT_PHY=m
2177 2177
 CONFIG_MARVELL_PHY=m
2178
+# CONFIG_MARVELL_10G_PHY is not set
2178 2179
 CONFIG_MICREL_PHY=m
2179 2180
 # CONFIG_MICROCHIP_PHY is not set
2180 2181
 # CONFIG_MICROSEMI_PHY is not set
2181 2182
 CONFIG_NATIONAL_PHY=m
2182 2183
 # CONFIG_QSEMI_PHY is not set
2183 2184
 CONFIG_REALTEK_PHY=m
2185
+# CONFIG_ROCKCHIP_PHY is not set
2184 2186
 # CONFIG_SMSC_PHY is not set
2185 2187
 CONFIG_STE10XP=m
2186 2188
 # CONFIG_TERANETICS_PHY is not set
... ...
@@ -2219,9 +2319,10 @@ CONFIG_HYPERV_NET=m
2219 2219
 # Input device support
2220 2220
 #
2221 2221
 CONFIG_INPUT=y
2222
+CONFIG_INPUT_LEDS=m
2222 2223
 # CONFIG_INPUT_FF_MEMLESS is not set
2223 2224
 # CONFIG_INPUT_POLLDEV is not set
2224
-# CONFIG_INPUT_SPARSEKMAP is not set
2225
+CONFIG_INPUT_SPARSEKMAP=m
2225 2226
 # CONFIG_INPUT_MATRIXKMAP is not set
2226 2227
 
2227 2228
 #
... ...
@@ -2244,17 +2345,21 @@ CONFIG_INPUT_KEYBOARD=y
2244 2244
 CONFIG_KEYBOARD_ATKBD=y
2245 2245
 # CONFIG_KEYBOARD_QT1070 is not set
2246 2246
 # CONFIG_KEYBOARD_QT2160 is not set
2247
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
2247 2248
 # CONFIG_KEYBOARD_LKKBD is not set
2248 2249
 # CONFIG_KEYBOARD_TCA6416 is not set
2249 2250
 # CONFIG_KEYBOARD_TCA8418 is not set
2251
+# CONFIG_KEYBOARD_LM8323 is not set
2250 2252
 # CONFIG_KEYBOARD_LM8333 is not set
2251 2253
 # CONFIG_KEYBOARD_MAX7359 is not set
2252 2254
 # CONFIG_KEYBOARD_MCS is not set
2253 2255
 # CONFIG_KEYBOARD_MPR121 is not set
2254 2256
 # CONFIG_KEYBOARD_NEWTON is not set
2255 2257
 # CONFIG_KEYBOARD_OPENCORES is not set
2258
+# CONFIG_KEYBOARD_SAMSUNG is not set
2256 2259
 # CONFIG_KEYBOARD_STOWAWAY is not set
2257 2260
 # CONFIG_KEYBOARD_SUNKBD is not set
2261
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
2258 2262
 # CONFIG_KEYBOARD_XTKBD is not set
2259 2263
 CONFIG_INPUT_MOUSE=y
2260 2264
 CONFIG_MOUSE_PS2=m
... ...
@@ -2262,6 +2367,7 @@ CONFIG_MOUSE_PS2_ALPS=y
2262 2262
 # CONFIG_MOUSE_PS2_BYD is not set
2263 2263
 CONFIG_MOUSE_PS2_LOGIPS2PP=y
2264 2264
 CONFIG_MOUSE_PS2_SYNAPTICS=y
2265
+# CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS is not set
2265 2266
 CONFIG_MOUSE_PS2_CYPRESS=y
2266 2267
 CONFIG_MOUSE_PS2_LIFEBOOK=y
2267 2268
 CONFIG_MOUSE_PS2_TRACKPOINT=y
... ...
@@ -2286,7 +2392,7 @@ CONFIG_INPUT_MISC=y
2286 2286
 # CONFIG_INPUT_BMA150 is not set
2287 2287
 # CONFIG_INPUT_E3X0_BUTTON is not set
2288 2288
 # CONFIG_INPUT_MMA8450 is not set
2289
-# CONFIG_INPUT_MPU3050 is not set
2289
+# CONFIG_INPUT_APANEL is not set
2290 2290
 # CONFIG_INPUT_ATLAS_BTNS is not set
2291 2291
 # CONFIG_INPUT_ATI_REMOTE2 is not set
2292 2292
 # CONFIG_INPUT_KEYSPAN_REMOTE is not set
... ...
@@ -2297,6 +2403,7 @@ CONFIG_INPUT_MISC=y
2297 2297
 # CONFIG_INPUT_UINPUT is not set
2298 2298
 # CONFIG_INPUT_PCF8574 is not set
2299 2299
 # CONFIG_INPUT_ADXL34X is not set
2300
+# CONFIG_INPUT_IMS_PCU is not set
2300 2301
 # CONFIG_INPUT_CMA3000 is not set
2301 2302
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
2302 2303
 # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
... ...
@@ -2352,6 +2459,7 @@ CONFIG_SERIAL_8250_PNP=y
2352 2352
 CONFIG_SERIAL_8250_CONSOLE=y
2353 2353
 CONFIG_SERIAL_8250_DMA=y
2354 2354
 CONFIG_SERIAL_8250_PCI=y
2355
+# CONFIG_SERIAL_8250_EXAR is not set
2355 2356
 CONFIG_SERIAL_8250_NR_UARTS=32
2356 2357
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
2357 2358
 CONFIG_SERIAL_8250_EXTENDED=y
... ...
@@ -2380,6 +2488,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
2380 2380
 # CONFIG_SERIAL_ARC is not set
2381 2381
 # CONFIG_SERIAL_RP2 is not set
2382 2382
 # CONFIG_SERIAL_FSL_LPUART is not set
2383
+# CONFIG_SERIAL_DEV_BUS is not set
2383 2384
 # CONFIG_TTY_PRINTK is not set
2384 2385
 CONFIG_HVC_DRIVER=y
2385 2386
 CONFIG_HVC_IRQ=y
... ...
@@ -2387,6 +2496,7 @@ CONFIG_HVC_XEN=y
2387 2387
 CONFIG_HVC_XEN_FRONTEND=y
2388 2388
 CONFIG_VIRTIO_CONSOLE=m
2389 2389
 CONFIG_IPMI_HANDLER=m
2390
+CONFIG_IPMI_DMI_DECODE=y
2390 2391
 CONFIG_IPMI_PANIC_EVENT=y
2391 2392
 CONFIG_IPMI_PANIC_STRING=y
2392 2393
 CONFIG_IPMI_DEVICE_INTERFACE=m
... ...
@@ -2473,7 +2583,9 @@ CONFIG_I2C_PIIX4=m
2473 2473
 #
2474 2474
 # I2C system bus drivers (mostly embedded / system-on-chip)
2475 2475
 #
2476
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
2476 2477
 # CONFIG_I2C_DESIGNWARE_PCI is not set
2478
+# CONFIG_I2C_EMEV2 is not set
2477 2479
 # CONFIG_I2C_OCORES is not set
2478 2480
 # CONFIG_I2C_PCA_PLATFORM is not set
2479 2481
 # CONFIG_I2C_PXA_PCI is not set
... ...
@@ -2492,6 +2604,7 @@ CONFIG_I2C_PIIX4=m
2492 2492
 #
2493 2493
 # Other I2C/SMBus bus drivers
2494 2494
 #
2495
+# CONFIG_I2C_MLXCPLD is not set
2495 2496
 # CONFIG_I2C_STUB is not set
2496 2497
 # CONFIG_I2C_SLAVE is not set
2497 2498
 # CONFIG_I2C_DEBUG_CORE is not set
... ...
@@ -2500,10 +2613,6 @@ CONFIG_I2C_PIIX4=m
2500 2500
 # CONFIG_SPI is not set
2501 2501
 # CONFIG_SPMI is not set
2502 2502
 # CONFIG_HSI is not set
2503
-
2504
-#
2505
-# PPS support
2506
-#
2507 2503
 CONFIG_PPS=y
2508 2504
 # CONFIG_PPS_DEBUG is not set
2509 2505
 
... ...
@@ -2523,6 +2632,7 @@ CONFIG_PPS=y
2523 2523
 #
2524 2524
 CONFIG_PTP_1588_CLOCK=y
2525 2525
 # CONFIG_DP83640_PHY is not set
2526
+CONFIG_PTP_1588_CLOCK_KVM=y
2526 2527
 # CONFIG_GPIOLIB is not set
2527 2528
 # CONFIG_W1 is not set
2528 2529
 # CONFIG_POWER_AVS is not set
... ...
@@ -2535,6 +2645,7 @@ CONFIG_POWER_SUPPLY=y
2535 2535
 # CONFIG_BATTERY_DS2781 is not set
2536 2536
 # CONFIG_BATTERY_DS2782 is not set
2537 2537
 # CONFIG_BATTERY_SBS is not set
2538
+# CONFIG_CHARGER_SBS is not set
2538 2539
 # CONFIG_BATTERY_BQ27XXX is not set
2539 2540
 # CONFIG_BATTERY_MAX17040 is not set
2540 2541
 # CONFIG_BATTERY_MAX17042 is not set
... ...
@@ -2571,6 +2682,7 @@ CONFIG_SENSORS_K10TEMP=m
2571 2571
 CONFIG_SENSORS_FAM15H_POWER=m
2572 2572
 # CONFIG_SENSORS_APPLESMC is not set
2573 2573
 # CONFIG_SENSORS_ASB100 is not set
2574
+# CONFIG_SENSORS_ASPEED is not set
2574 2575
 # CONFIG_SENSORS_ATXP1 is not set
2575 2576
 # CONFIG_SENSORS_DS620 is not set
2576 2577
 # CONFIG_SENSORS_DS1621 is not set
... ...
@@ -2612,6 +2724,7 @@ CONFIG_SENSORS_CORETEMP=m
2612 2612
 # CONFIG_SENSORS_MAX6697 is not set
2613 2613
 # CONFIG_SENSORS_MAX31790 is not set
2614 2614
 # CONFIG_SENSORS_MCP3021 is not set
2615
+# CONFIG_SENSORS_TC654 is not set
2615 2616
 # CONFIG_SENSORS_LM63 is not set
2616 2617
 # CONFIG_SENSORS_LM73 is not set
2617 2618
 # CONFIG_SENSORS_LM75 is not set
... ...
@@ -2650,6 +2763,7 @@ CONFIG_SENSORS_CORETEMP=m
2650 2650
 # CONFIG_SENSORS_SCH56XX_COMMON is not set
2651 2651
 # CONFIG_SENSORS_SCH5627 is not set
2652 2652
 # CONFIG_SENSORS_SCH5636 is not set
2653
+# CONFIG_SENSORS_STTS751 is not set
2653 2654
 # CONFIG_SENSORS_SMM665 is not set
2654 2655
 # CONFIG_SENSORS_ADC128D818 is not set
2655 2656
 # CONFIG_SENSORS_ADS1015 is not set
... ...
@@ -2662,6 +2776,7 @@ CONFIG_SENSORS_CORETEMP=m
2662 2662
 # CONFIG_SENSORS_THMC50 is not set
2663 2663
 # CONFIG_SENSORS_TMP102 is not set
2664 2664
 # CONFIG_SENSORS_TMP103 is not set
2665
+# CONFIG_SENSORS_TMP108 is not set
2665 2666
 # CONFIG_SENSORS_TMP401 is not set
2666 2667
 # CONFIG_SENSORS_TMP421 is not set
2667 2668
 # CONFIG_SENSORS_VIA_CPUTEMP is not set
... ...
@@ -2677,6 +2792,7 @@ CONFIG_SENSORS_CORETEMP=m
2677 2677
 # CONFIG_SENSORS_W83L786NG is not set
2678 2678
 # CONFIG_SENSORS_W83627HF is not set
2679 2679
 # CONFIG_SENSORS_W83627EHF is not set
2680
+# CONFIG_SENSORS_XGENE is not set
2680 2681
 
2681 2682
 #
2682 2683
 # ACPI drivers
... ...
@@ -2684,6 +2800,7 @@ CONFIG_SENSORS_CORETEMP=m
2684 2684
 # CONFIG_SENSORS_ACPI_POWER is not set
2685 2685
 # CONFIG_SENSORS_ATK0110 is not set
2686 2686
 CONFIG_THERMAL=y
2687
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
2687 2688
 CONFIG_THERMAL_WRITABLE_TRIPS=y
2688 2689
 CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
2689 2690
 # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
... ...
@@ -2694,6 +2811,8 @@ CONFIG_THERMAL_GOV_STEP_WISE=y
2694 2694
 # CONFIG_THERMAL_GOV_BANG_BANG is not set
2695 2695
 CONFIG_THERMAL_GOV_USER_SPACE=y
2696 2696
 # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
2697
+# CONFIG_CLOCK_THERMAL is not set
2698
+# CONFIG_DEVFREQ_THERMAL is not set
2697 2699
 # CONFIG_THERMAL_EMULATION is not set
2698 2700
 # CONFIG_INTEL_POWERCLAMP is not set
2699 2701
 CONFIG_X86_PKG_TEMP_THERMAL=m
... ...
@@ -2707,6 +2826,7 @@ CONFIG_X86_PKG_TEMP_THERMAL=m
2707 2707
 CONFIG_WATCHDOG=y
2708 2708
 CONFIG_WATCHDOG_CORE=y
2709 2709
 # CONFIG_WATCHDOG_NOWAYOUT is not set
2710
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
2710 2711
 CONFIG_WATCHDOG_SYSFS=y
2711 2712
 
2712 2713
 #
... ...
@@ -2752,6 +2872,7 @@ CONFIG_ITCO_VENDOR_SUPPORT=y
2752 2752
 # CONFIG_SBC_EPX_C3_WATCHDOG is not set
2753 2753
 # CONFIG_INTEL_MEI_WDT is not set
2754 2754
 # CONFIG_NI903X_WDT is not set
2755
+# CONFIG_NIC7018_WDT is not set
2755 2756
 # CONFIG_XEN_WDT is not set
2756 2757
 
2757 2758
 #
... ...
@@ -2786,10 +2907,6 @@ CONFIG_SSB_SDIOHOST_POSSIBLE=y
2786 2786
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
2787 2787
 CONFIG_SSB_DRIVER_PCICORE=y
2788 2788
 CONFIG_BCMA_POSSIBLE=y
2789
-
2790
-#
2791
-# Broadcom specific AMBA
2792
-#
2793 2789
 # CONFIG_BCMA is not set
2794 2790
 
2795 2791
 #
... ...
@@ -2799,6 +2916,7 @@ CONFIG_MFD_CORE=m
2799 2799
 # CONFIG_MFD_AS3711 is not set
2800 2800
 # CONFIG_PMIC_ADP5520 is not set
2801 2801
 # CONFIG_MFD_BCM590XX is not set
2802
+# CONFIG_MFD_BD9571MWV is not set
2802 2803
 # CONFIG_MFD_AXP20X_I2C is not set
2803 2804
 # CONFIG_MFD_CROS_EC is not set
2804 2805
 # CONFIG_PMIC_DA903X is not set
... ...
@@ -2808,11 +2926,12 @@ CONFIG_MFD_CORE=m
2808 2808
 # CONFIG_MFD_DA9063 is not set
2809 2809
 # CONFIG_MFD_DA9150 is not set
2810 2810
 # CONFIG_MFD_DLN2 is not set
2811
-# CONFIG_MFD_EXYNOS_LPASS is not set
2812 2811
 # CONFIG_MFD_MC13XXX_I2C is not set
2813 2812
 # CONFIG_HTC_PASIC3 is not set
2813
+# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
2814 2814
 CONFIG_LPC_ICH=m
2815 2815
 # CONFIG_LPC_SCH is not set
2816
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
2816 2817
 # CONFIG_MFD_INTEL_LPSS_ACPI is not set
2817 2818
 # CONFIG_MFD_INTEL_LPSS_PCI is not set
2818 2819
 # CONFIG_MFD_JANZ_CMODIO is not set
... ...
@@ -2847,12 +2966,14 @@ CONFIG_LPC_ICH=m
2847 2847
 # CONFIG_MFD_TI_AM335X_TSCADC is not set
2848 2848
 # CONFIG_MFD_LP3943 is not set
2849 2849
 # CONFIG_MFD_LP8788 is not set
2850
+# CONFIG_MFD_TI_LMU is not set
2850 2851
 # CONFIG_MFD_PALMAS is not set
2851 2852
 # CONFIG_TPS6105X is not set
2852 2853
 # CONFIG_TPS6507X is not set
2853 2854
 # CONFIG_MFD_TPS65086 is not set
2854 2855
 # CONFIG_MFD_TPS65090 is not set
2855 2856
 # CONFIG_MFD_TPS65217 is not set
2857
+# CONFIG_MFD_TPS68470 is not set
2856 2858
 # CONFIG_MFD_TI_LP873X is not set
2857 2859
 # CONFIG_MFD_TPS65218 is not set
2858 2860
 # CONFIG_MFD_TPS6586X is not set
... ...
@@ -2870,6 +2991,7 @@ CONFIG_LPC_ICH=m
2870 2870
 # CONFIG_MFD_WM8350_I2C is not set
2871 2871
 # CONFIG_MFD_WM8994 is not set
2872 2872
 # CONFIG_REGULATOR is not set
2873
+# CONFIG_RC_CORE is not set
2873 2874
 # CONFIG_MEDIA_SUPPORT is not set
2874 2875
 
2875 2876
 #
... ...
@@ -2887,11 +3009,15 @@ CONFIG_VGA_ARB_MAX_GPUS=16
2887 2887
 CONFIG_DRM=y
2888 2888
 CONFIG_DRM_MIPI_DSI=y
2889 2889
 # CONFIG_DRM_DP_AUX_CHARDEV is not set
2890
+# CONFIG_DRM_DEBUG_MM is not set
2891
+# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
2890 2892
 CONFIG_DRM_KMS_HELPER=y
2891 2893
 CONFIG_DRM_KMS_FB_HELPER=y
2892 2894
 CONFIG_DRM_FBDEV_EMULATION=y
2895
+CONFIG_DRM_FBDEV_OVERALLOC=100
2893 2896
 # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
2894 2897
 CONFIG_DRM_TTM=y
2898
+CONFIG_DRM_VM=y
2895 2899
 
2896 2900
 #
2897 2901
 # I2C encoder or helper chips
... ...
@@ -2911,7 +3037,8 @@ CONFIG_NOUVEAU_DEBUG=5
2911 2911
 CONFIG_NOUVEAU_DEBUG_DEFAULT=3
2912 2912
 CONFIG_DRM_NOUVEAU_BACKLIGHT=y
2913 2913
 CONFIG_DRM_I915=m
2914
-# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
2914
+# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
2915
+# CONFIG_DRM_I915_CAPTURE_ERROR is not set
2915 2916
 CONFIG_DRM_I915_USERPTR=y
2916 2917
 # CONFIG_DRM_I915_GVT is not set
2917 2918
 
... ...
@@ -2920,6 +3047,11 @@ CONFIG_DRM_I915_USERPTR=y
2920 2920
 #
2921 2921
 # CONFIG_DRM_I915_WERROR is not set
2922 2922
 # CONFIG_DRM_I915_DEBUG is not set
2923
+# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
2924
+# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
2925
+# CONFIG_DRM_I915_SELFTEST is not set
2926
+# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
2927
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
2923 2928
 # CONFIG_DRM_VGEM is not set
2924 2929
 CONFIG_DRM_VMWGFX=y
2925 2930
 CONFIG_DRM_VMWGFX_FBCON=y
... ...
@@ -2937,13 +3069,17 @@ CONFIG_DRM_PANEL=y
2937 2937
 # Display Panels
2938 2938
 #
2939 2939
 CONFIG_DRM_BRIDGE=y
2940
+CONFIG_DRM_PANEL_BRIDGE=y
2940 2941
 
2941 2942
 #
2942 2943
 # Display Interface Bridges
2943 2944
 #
2944 2945
 # CONFIG_DRM_ANALOGIX_ANX78XX is not set
2945 2946
 # CONFIG_HSA_AMD is not set
2947
+# CONFIG_DRM_HISI_HIBMC is not set
2948
+# CONFIG_DRM_TINYDRM is not set
2946 2949
 # CONFIG_DRM_LEGACY is not set
2950
+# CONFIG_DRM_LIB_RANDOM is not set
2947 2951
 
2948 2952
 #
2949 2953
 # Frame buffer Devices
... ...
@@ -2961,6 +3097,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
2961 2961
 CONFIG_FB_SYS_FILLRECT=y
2962 2962
 CONFIG_FB_SYS_COPYAREA=y
2963 2963
 CONFIG_FB_SYS_IMAGEBLIT=y
2964
+# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
2964 2965
 # CONFIG_FB_FOREIGN_ENDIAN is not set
2965 2966
 CONFIG_FB_SYS_FOPS=y
2966 2967
 CONFIG_FB_DEFERRED_IO=y
... ...
@@ -3038,6 +3175,7 @@ CONFIG_BACKLIGHT_GENERIC=y
3038 3038
 # CONFIG_BACKLIGHT_LM3639 is not set
3039 3039
 # CONFIG_BACKLIGHT_LV5207LP is not set
3040 3040
 # CONFIG_BACKLIGHT_BD6107 is not set
3041
+# CONFIG_BACKLIGHT_ARCXCNN is not set
3041 3042
 CONFIG_VGASTATE=m
3042 3043
 CONFIG_HDMI=y
3043 3044
 
... ...
@@ -3047,6 +3185,7 @@ CONFIG_HDMI=y
3047 3047
 CONFIG_VGA_CONSOLE=y
3048 3048
 CONFIG_VGACON_SOFT_SCROLLBACK=y
3049 3049
 CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
3050
+# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
3050 3051
 CONFIG_DUMMY_CONSOLE=y
3051 3052
 CONFIG_DUMMY_CONSOLE_COLUMNS=80
3052 3053
 CONFIG_DUMMY_CONSOLE_ROWS=25
... ...
@@ -3062,9 +3201,7 @@ CONFIG_SND_PCM=m
3062 3062
 CONFIG_SND_RAWMIDI=m
3063 3063
 CONFIG_SND_JACK=y
3064 3064
 CONFIG_SND_JACK_INPUT_DEV=y
3065
-# CONFIG_SND_SEQUENCER is not set
3066
-# CONFIG_SND_MIXER_OSS is not set
3067
-# CONFIG_SND_PCM_OSS is not set
3065
+# CONFIG_SND_OSSEMUL is not set
3068 3066
 CONFIG_SND_PCM_TIMER=y
3069 3067
 # CONFIG_SND_HRTIMER is not set
3070 3068
 # CONFIG_SND_DYNAMIC_MINORS is not set
... ...
@@ -3075,11 +3212,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
3075 3075
 # CONFIG_SND_DEBUG is not set
3076 3076
 CONFIG_SND_VMASTER=y
3077 3077
 CONFIG_SND_DMA_SGBUF=y
3078
-# CONFIG_SND_RAWMIDI_SEQ is not set
3078
+# CONFIG_SND_SEQUENCER is not set
3079 3079
 # CONFIG_SND_OPL3_LIB_SEQ is not set
3080 3080
 # CONFIG_SND_OPL4_LIB_SEQ is not set
3081
-# CONFIG_SND_SBAWE_SEQ is not set
3082
-# CONFIG_SND_EMU10K1_SEQ is not set
3083 3081
 CONFIG_SND_AC97_CODEC=m
3084 3082
 CONFIG_SND_DRIVERS=y
3085 3083
 # CONFIG_SND_DUMMY is not set
... ...
@@ -3119,6 +3254,7 @@ CONFIG_SND_PCI=y
3119 3119
 # CONFIG_SND_INDIGODJ is not set
3120 3120
 # CONFIG_SND_INDIGOIOX is not set
3121 3121
 # CONFIG_SND_INDIGODJX is not set
3122
+# CONFIG_SND_EMU10K1_SEQ is not set
3122 3123
 # CONFIG_SND_ENS1370 is not set
3123 3124
 CONFIG_SND_ENS1371=m
3124 3125
 # CONFIG_SND_FM801 is not set
... ...
@@ -3183,7 +3319,7 @@ CONFIG_SND_USB=y
3183 3183
 # CONFIG_SND_USB_TONEPORT is not set
3184 3184
 # CONFIG_SND_USB_VARIAX is not set
3185 3185
 # CONFIG_SND_SOC is not set
3186
-# CONFIG_SOUND_PRIME is not set
3186
+# CONFIG_SND_X86 is not set
3187 3187
 CONFIG_AC97_BUS=m
3188 3188
 
3189 3189
 #
... ...
@@ -3199,14 +3335,17 @@ CONFIG_HID_GENERIC=m
3199 3199
 # Special HID drivers
3200 3200
 #
3201 3201
 CONFIG_HID_A4TECH=m
3202
+# CONFIG_HID_ACCUTOUCH is not set
3202 3203
 # CONFIG_HID_ACRUX is not set
3203 3204
 CONFIG_HID_APPLE=m
3204 3205
 # CONFIG_HID_APPLEIR is not set
3206
+# CONFIG_HID_ASUS is not set
3205 3207
 # CONFIG_HID_AUREAL is not set
3206 3208
 CONFIG_HID_BELKIN=m
3207 3209
 # CONFIG_HID_BETOP_FF is not set
3208 3210
 CONFIG_HID_CHERRY=m
3209 3211
 # CONFIG_HID_CHICONY is not set
3212
+# CONFIG_HID_CORSAIR is not set
3210 3213
 # CONFIG_HID_PRODIKEYS is not set
3211 3214
 # CONFIG_HID_CMEDIA is not set
3212 3215
 # CONFIG_HID_CYPRESS is not set
... ...
@@ -3218,15 +3357,18 @@ CONFIG_HID_EZKEY=m
3218 3218
 # CONFIG_HID_GEMBIRD is not set
3219 3219
 # CONFIG_HID_GFRM is not set
3220 3220
 # CONFIG_HID_HOLTEK is not set
3221
+# CONFIG_HID_GT683R is not set
3221 3222
 # CONFIG_HID_KEYTOUCH is not set
3222 3223
 # CONFIG_HID_KYE is not set
3223 3224
 # CONFIG_HID_UCLOGIC is not set
3224 3225
 # CONFIG_HID_WALTOP is not set
3225 3226
 # CONFIG_HID_GYRATION is not set
3226 3227
 # CONFIG_HID_ICADE is not set
3228
+# CONFIG_HID_ITE is not set
3227 3229
 # CONFIG_HID_TWINHAN is not set
3228 3230
 # CONFIG_HID_KENSINGTON is not set
3229 3231
 # CONFIG_HID_LCPOWER is not set
3232
+# CONFIG_HID_LED is not set
3230 3233
 # CONFIG_HID_LENOVO is not set
3231 3234
 CONFIG_HID_LOGITECH=m
3232 3235
 # CONFIG_HID_LOGITECH_HIDPP is not set
... ...
@@ -3235,9 +3377,11 @@ CONFIG_HID_LOGITECH=m
3235 3235
 # CONFIG_LOGIG940_FF is not set
3236 3236
 # CONFIG_LOGIWHEELS_FF is not set
3237 3237
 # CONFIG_HID_MAGICMOUSE is not set
3238
+# CONFIG_HID_MAYFLASH is not set
3238 3239
 CONFIG_HID_MICROSOFT=m
3239 3240
 CONFIG_HID_MONTEREY=m
3240 3241
 # CONFIG_HID_MULTITOUCH is not set
3242
+# CONFIG_HID_NTI is not set
3241 3243
 # CONFIG_HID_NTRIG is not set
3242 3244
 # CONFIG_HID_ORTEK is not set
3243 3245
 # CONFIG_HID_PANTHERLORD is not set
... ...
@@ -3246,9 +3390,11 @@ CONFIG_HID_MONTEREY=m
3246 3246
 # CONFIG_HID_PICOLCD is not set
3247 3247
 # CONFIG_HID_PLANTRONICS is not set
3248 3248
 # CONFIG_HID_PRIMAX is not set
3249
+# CONFIG_HID_RETRODE is not set
3249 3250
 # CONFIG_HID_ROCCAT is not set
3250 3251
 # CONFIG_HID_SAITEK is not set
3251 3252
 # CONFIG_HID_SAMSUNG is not set
3253
+# CONFIG_HID_SONY is not set
3252 3254
 # CONFIG_HID_SPEEDLINK is not set
3253 3255
 # CONFIG_HID_STEELSERIES is not set
3254 3256
 # CONFIG_HID_SUNPLUS is not set
... ...
@@ -3258,8 +3404,11 @@ CONFIG_HID_HYPERV_MOUSE=m
3258 3258
 # CONFIG_HID_SMARTJOYPLUS is not set
3259 3259
 # CONFIG_HID_TIVO is not set
3260 3260
 # CONFIG_HID_TOPSEED is not set
3261
+# CONFIG_HID_THINGM is not set
3261 3262
 # CONFIG_HID_THRUSTMASTER is not set
3263
+# CONFIG_HID_UDRAW_PS3 is not set
3262 3264
 # CONFIG_HID_WACOM is not set
3265
+# CONFIG_HID_WIIMOTE is not set
3263 3266
 # CONFIG_HID_XINMO is not set
3264 3267
 # CONFIG_HID_ZEROPLUS is not set
3265 3268
 # CONFIG_HID_ZYDACRON is not set
... ...
@@ -3293,6 +3442,7 @@ CONFIG_USB_SUPPORT=y
3293 3293
 CONFIG_USB_COMMON=m
3294 3294
 CONFIG_USB_ARCH_HAS_HCD=y
3295 3295
 CONFIG_USB=m
3296
+CONFIG_USB_PCI=y
3296 3297
 # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
3297 3298
 
3298 3299
 #
... ...
@@ -3398,6 +3548,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3398 3398
 # CONFIG_USB_SERIAL_EDGEPORT is not set
3399 3399
 # CONFIG_USB_SERIAL_EDGEPORT_TI is not set
3400 3400
 # CONFIG_USB_SERIAL_F81232 is not set
3401
+# CONFIG_USB_SERIAL_F8153X is not set
3401 3402
 # CONFIG_USB_SERIAL_GARMIN is not set
3402 3403
 # CONFIG_USB_SERIAL_IPW is not set
3403 3404
 # CONFIG_USB_SERIAL_IUU is not set
... ...
@@ -3429,6 +3580,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3429 3429
 # CONFIG_USB_SERIAL_WISHBONE is not set
3430 3430
 # CONFIG_USB_SERIAL_SSU100 is not set
3431 3431
 # CONFIG_USB_SERIAL_QT2 is not set
3432
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
3432 3433
 # CONFIG_USB_SERIAL_DEBUG is not set
3433 3434
 
3434 3435
 #
... ...
@@ -3455,11 +3607,11 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3455 3455
 # CONFIG_USB_ISIGHTFW is not set
3456 3456
 # CONFIG_USB_YUREX is not set
3457 3457
 # CONFIG_USB_EZUSB_FX2 is not set
3458
+# CONFIG_USB_HUB_USB251XB is not set
3458 3459
 # CONFIG_USB_HSIC_USB3503 is not set
3459 3460
 # CONFIG_USB_HSIC_USB4604 is not set
3460 3461
 # CONFIG_USB_LINK_LAYER_TEST is not set
3461 3462
 # CONFIG_USB_CHAOSKEY is not set
3462
-# CONFIG_UCSI is not set
3463 3463
 
3464 3464
 #
3465 3465
 # USB Physical Layer drivers
... ...
@@ -3468,23 +3620,23 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3468 3468
 # CONFIG_NOP_USB_XCEIV is not set
3469 3469
 # CONFIG_USB_ISP1301 is not set
3470 3470
 # CONFIG_USB_GADGET is not set
3471
-# CONFIG_USB_ULPI_BUS is not set
3472
-# CONFIG_UWB is not set
3473
-CONFIG_MMC=m
3474
-# CONFIG_MMC_DEBUG is not set
3475 3471
 
3476 3472
 #
3477
-# MMC/SD/SDIO Card Drivers
3473
+# USB Power Delivery and Type-C drivers
3478 3474
 #
3475
+# CONFIG_TYPEC_UCSI is not set
3476
+# CONFIG_USB_ULPI_BUS is not set
3477
+# CONFIG_UWB is not set
3478
+CONFIG_MMC=m
3479 3479
 CONFIG_MMC_BLOCK=m
3480 3480
 CONFIG_MMC_BLOCK_MINORS=16
3481
-CONFIG_MMC_BLOCK_BOUNCE=y
3482 3481
 # CONFIG_SDIO_UART is not set
3483 3482
 # CONFIG_MMC_TEST is not set
3484 3483
 
3485 3484
 #
3486 3485
 # MMC/SD/SDIO Host Controller Drivers
3487 3486
 #
3487
+# CONFIG_MMC_DEBUG is not set
3488 3488
 CONFIG_MMC_SDHCI=m
3489 3489
 CONFIG_MMC_SDHCI_PCI=m
3490 3490
 # CONFIG_MMC_RICOH_MMC is not set
... ...
@@ -3500,7 +3652,44 @@ CONFIG_MMC_SDHCI_ACPI=m
3500 3500
 # CONFIG_MMC_TOSHIBA_PCI is not set
3501 3501
 # CONFIG_MMC_MTK is not set
3502 3502
 # CONFIG_MEMSTICK is not set
3503
-# CONFIG_NEW_LEDS is not set
3503
+CONFIG_NEW_LEDS=y
3504
+CONFIG_LEDS_CLASS=m
3505
+# CONFIG_LEDS_CLASS_FLASH is not set
3506
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
3507
+
3508
+#
3509
+# LED drivers
3510
+#
3511
+# CONFIG_LEDS_LM3530 is not set
3512
+# CONFIG_LEDS_LM3642 is not set
3513
+# CONFIG_LEDS_PCA9532 is not set
3514
+# CONFIG_LEDS_LP3944 is not set
3515
+# CONFIG_LEDS_LP5521 is not set
3516
+# CONFIG_LEDS_LP5523 is not set
3517
+# CONFIG_LEDS_LP5562 is not set
3518
+# CONFIG_LEDS_LP8501 is not set
3519
+# CONFIG_LEDS_LP8860 is not set
3520
+# CONFIG_LEDS_CLEVO_MAIL is not set
3521
+# CONFIG_LEDS_PCA955X is not set
3522
+# CONFIG_LEDS_PCA963X is not set
3523
+# CONFIG_LEDS_BD2802 is not set
3524
+# CONFIG_LEDS_INTEL_SS4200 is not set
3525
+# CONFIG_LEDS_TCA6507 is not set
3526
+# CONFIG_LEDS_TLC591XX is not set
3527
+# CONFIG_LEDS_LM355x is not set
3528
+
3529
+#
3530
+# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
3531
+#
3532
+# CONFIG_LEDS_BLINKM is not set
3533
+# CONFIG_LEDS_MLXCPLD is not set
3534
+# CONFIG_LEDS_USER is not set
3535
+# CONFIG_LEDS_NIC78BX is not set
3536
+
3537
+#
3538
+# LED Triggers
3539
+#
3540
+# CONFIG_LEDS_TRIGGERS is not set
3504 3541
 # CONFIG_ACCESSIBILITY is not set
3505 3542
 # CONFIG_INFINIBAND is not set
3506 3543
 CONFIG_EDAC_ATOMIC_SCRUB=y
... ...
@@ -3509,7 +3698,7 @@ CONFIG_EDAC=y
3509 3509
 # CONFIG_EDAC_LEGACY_SYSFS is not set
3510 3510
 # CONFIG_EDAC_DEBUG is not set
3511 3511
 CONFIG_EDAC_DECODE_MCE=m
3512
-CONFIG_EDAC_MM_EDAC=m
3512
+# CONFIG_EDAC_GHES is not set
3513 3513
 CONFIG_EDAC_AMD64=m
3514 3514
 # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
3515 3515
 CONFIG_EDAC_E752X=m
... ...
@@ -3525,6 +3714,7 @@ CONFIG_EDAC_I5100=m
3525 3525
 CONFIG_EDAC_I7300=m
3526 3526
 CONFIG_EDAC_SBRIDGE=m
3527 3527
 # CONFIG_EDAC_SKX is not set
3528
+# CONFIG_EDAC_PND2 is not set
3528 3529
 CONFIG_RTC_LIB=y
3529 3530
 CONFIG_RTC_MC146818_LIB=y
3530 3531
 CONFIG_RTC_CLASS=y
... ...
@@ -3533,6 +3723,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
3533 3533
 CONFIG_RTC_SYSTOHC=y
3534 3534
 CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
3535 3535
 # CONFIG_RTC_DEBUG is not set
3536
+CONFIG_RTC_NVMEM=y
3536 3537
 
3537 3538
 #
3538 3539
 # RTC interfaces
... ...
@@ -3604,6 +3795,7 @@ CONFIG_RTC_DRV_CMOS=y
3604 3604
 #
3605 3605
 # on-CPU RTC drivers
3606 3606
 #
3607
+# CONFIG_RTC_DRV_FTRTC010 is not set
3607 3608
 
3608 3609
 #
3609 3610
 # HID Sensor RTC drivers
... ...
@@ -3617,6 +3809,7 @@ CONFIG_DMADEVICES=y
3617 3617
 #
3618 3618
 CONFIG_DMA_ENGINE=y
3619 3619
 CONFIG_DMA_ACPI=y
3620
+# CONFIG_ALTERA_MSGDMA is not set
3620 3621
 # CONFIG_INTEL_IDMA64 is not set
3621 3622
 CONFIG_INTEL_IOATDMA=y
3622 3623
 # CONFIG_QCOM_HIDMA_MGMT is not set
... ...
@@ -3634,7 +3827,8 @@ CONFIG_DMA_ENGINE_RAID=y
3634 3634
 #
3635 3635
 # DMABUF options
3636 3636
 #
3637
-# CONFIG_SYNC_FILE is not set
3637
+CONFIG_SYNC_FILE=y
3638
+# CONFIG_SW_SYNC is not set
3638 3639
 CONFIG_DCA=y
3639 3640
 # CONFIG_AUXDISPLAY is not set
3640 3641
 CONFIG_UIO=m
... ...
@@ -3647,6 +3841,7 @@ CONFIG_UIO=m
3647 3647
 # CONFIG_UIO_NETX is not set
3648 3648
 # CONFIG_UIO_PRUSS is not set
3649 3649
 # CONFIG_UIO_MF624 is not set
3650
+CONFIG_UIO_HV_GENERIC=m
3650 3651
 CONFIG_VFIO_IOMMU_TYPE1=m
3651 3652
 CONFIG_VFIO_VIRQFD=m
3652 3653
 CONFIG_VFIO=m
... ...
@@ -3656,6 +3851,7 @@ CONFIG_VFIO_PCI_VGA=y
3656 3656
 CONFIG_VFIO_PCI_MMAP=y
3657 3657
 CONFIG_VFIO_PCI_INTX=y
3658 3658
 CONFIG_VFIO_PCI_IGD=y
3659
+# CONFIG_VFIO_MDEV is not set
3659 3660
 CONFIG_IRQ_BYPASS_MANAGER=m
3660 3661
 CONFIG_VIRT_DRIVERS=y
3661 3662
 CONFIG_VIRTIO=y
... ...
@@ -3674,6 +3870,7 @@ CONFIG_VIRTIO_MMIO=y
3674 3674
 # Microsoft Hyper-V guest support
3675 3675
 #
3676 3676
 CONFIG_HYPERV=m
3677
+CONFIG_HYPERV_TSCPAGE=y
3677 3678
 CONFIG_HYPERV_UTILS=m
3678 3679
 CONFIG_HYPERV_BALLOON=m
3679 3680
 
... ...
@@ -3696,6 +3893,7 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
3696 3696
 CONFIG_SWIOTLB_XEN=y
3697 3697
 CONFIG_XEN_TMEM=m
3698 3698
 CONFIG_XEN_PCIDEV_BACKEND=m
3699
+# CONFIG_XEN_PVCALLS_BACKEND is not set
3699 3700
 CONFIG_XEN_PRIVCMD=m
3700 3701
 CONFIG_XEN_ACPI_PROCESSOR=m
3701 3702
 CONFIG_XEN_MCE_LOG=y
... ...
@@ -3709,8 +3907,13 @@ CONFIG_XEN_HAVE_VPMU=y
3709 3709
 CONFIG_X86_PLATFORM_DEVICES=y
3710 3710
 # CONFIG_ACER_WMI is not set
3711 3711
 # CONFIG_ACERHDF is not set
3712
+# CONFIG_ALIENWARE_WMI is not set
3712 3713
 # CONFIG_ASUS_LAPTOP is not set
3714
+CONFIG_DELL_SMBIOS=m
3715
+CONFIG_DELL_LAPTOP=m
3716
+CONFIG_DELL_WMI=m
3713 3717
 # CONFIG_DELL_WMI_AIO is not set
3718
+CONFIG_DELL_WMI_LED=m
3714 3719
 # CONFIG_DELL_SMO8800 is not set
3715 3720
 # CONFIG_FUJITSU_LAPTOP is not set
3716 3721
 # CONFIG_FUJITSU_TABLET is not set
... ...
@@ -3725,12 +3928,15 @@ CONFIG_X86_PLATFORM_DEVICES=y
3725 3725
 # CONFIG_ASUS_WMI is not set
3726 3726
 # CONFIG_ASUS_WIRELESS is not set
3727 3727
 CONFIG_ACPI_WMI=m
3728
+CONFIG_WMI_BMOF=m
3728 3729
 # CONFIG_MSI_WMI is not set
3730
+# CONFIG_PEAQ_WMI is not set
3729 3731
 # CONFIG_TOPSTAR_LAPTOP is not set
3730 3732
 # CONFIG_TOSHIBA_BT_RFKILL is not set
3731 3733
 # CONFIG_TOSHIBA_HAPS is not set
3732 3734
 # CONFIG_TOSHIBA_WMI is not set
3733 3735
 # CONFIG_ACPI_CMPC is not set
3736
+# CONFIG_INTEL_CHT_INT33FE is not set
3734 3737
 # CONFIG_INTEL_HID_EVENT is not set
3735 3738
 # CONFIG_INTEL_VBTN is not set
3736 3739
 # CONFIG_INTEL_IPS is not set
... ...
@@ -3746,11 +3952,25 @@ CONFIG_PVPANIC=m
3746 3746
 # CONFIG_INTEL_PMC_IPC is not set
3747 3747
 # CONFIG_SURFACE_PRO3_BUTTON is not set
3748 3748
 # CONFIG_INTEL_PUNIT_IPC is not set
3749
+# CONFIG_MLX_PLATFORM is not set
3750
+# CONFIG_MLX_CPLD_PLATFORM is not set
3751
+# CONFIG_INTEL_TURBO_MAX_3 is not set
3752
+CONFIG_PMC_ATOM=y
3749 3753
 # CONFIG_CHROME_PLATFORMS is not set
3754
+CONFIG_CLKDEV_LOOKUP=y
3755
+CONFIG_HAVE_CLK_PREPARE=y
3756
+CONFIG_COMMON_CLK=y
3750 3757
 
3751 3758
 #
3752
-# Hardware Spinlock drivers
3759
+# Common Clock Framework
3753 3760
 #
3761
+# CONFIG_COMMON_CLK_SI5351 is not set
3762
+# CONFIG_COMMON_CLK_CDCE706 is not set
3763
+# CONFIG_COMMON_CLK_CS2000_CP is not set
3764
+# CONFIG_COMMON_CLK_NXP is not set
3765
+# CONFIG_COMMON_CLK_PXA is not set
3766
+# CONFIG_COMMON_CLK_PIC32 is not set
3767
+# CONFIG_HWSPINLOCK is not set
3754 3768
 
3755 3769
 #
3756 3770
 # Clock Source drivers
... ...
@@ -3762,7 +3982,9 @@ CONFIG_CLKBLD_I8253=y
3762 3762
 # CONFIG_SH_TIMER_MTU2 is not set
3763 3763
 # CONFIG_SH_TIMER_TMU is not set
3764 3764
 # CONFIG_EM_TIMER_STI is not set
3765
-# CONFIG_MAILBOX is not set
3765
+CONFIG_MAILBOX=y
3766
+CONFIG_PCC=y
3767
+# CONFIG_ALTERA_MBOX is not set
3766 3768
 CONFIG_IOMMU_API=y
3767 3769
 CONFIG_IOMMU_SUPPORT=y
3768 3770
 
... ...
@@ -3782,19 +4004,32 @@ CONFIG_IRQ_REMAP=y
3782 3782
 #
3783 3783
 # Remoteproc drivers
3784 3784
 #
3785
-# CONFIG_STE_MODEM_RPROC is not set
3785
+# CONFIG_REMOTEPROC is not set
3786 3786
 
3787 3787
 #
3788 3788
 # Rpmsg drivers
3789 3789
 #
3790
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
3790 3791
 
3791 3792
 #
3792 3793
 # SOC (System On Chip) specific Drivers
3793 3794
 #
3794 3795
 
3795 3796
 #
3797
+# Amlogic SoC drivers
3798
+#
3799
+
3800
+#
3796 3801
 # Broadcom SoC drivers
3797 3802
 #
3803
+
3804
+#
3805
+# i.MX SoC drivers
3806
+#
3807
+
3808
+#
3809
+# Qualcomm SoC drivers
3810
+#
3798 3811
 # CONFIG_SUNXI_SRAM is not set
3799 3812
 # CONFIG_SOC_TI is not set
3800 3813
 CONFIG_PM_DEVFREQ=y
... ...
@@ -3827,9 +4062,9 @@ CONFIG_ARM_GIC_MAX_NR=1
3827 3827
 # PHY Subsystem
3828 3828
 #
3829 3829
 CONFIG_GENERIC_PHY=y
3830
+# CONFIG_BCM_KONA_USB2_PHY is not set
3830 3831
 # CONFIG_PHY_PXA_28NM_HSIC is not set
3831 3832
 # CONFIG_PHY_PXA_28NM_USB2 is not set
3832
-# CONFIG_BCM_KONA_USB2_PHY is not set
3833 3833
 # CONFIG_POWERCAP is not set
3834 3834
 # CONFIG_MCB is not set
3835 3835
 
... ...
@@ -3837,7 +4072,7 @@ CONFIG_GENERIC_PHY=y
3837 3837
 # Performance monitor support
3838 3838
 #
3839 3839
 CONFIG_RAS=y
3840
-# CONFIG_MCE_AMD_INJ is not set
3840
+# CONFIG_RAS_CEC is not set
3841 3841
 # CONFIG_THUNDERBOLT is not set
3842 3842
 
3843 3843
 #
... ...
@@ -3853,17 +4088,18 @@ CONFIG_BTT=y
3853 3853
 CONFIG_ND_PFN=m
3854 3854
 CONFIG_NVDIMM_PFN=y
3855 3855
 CONFIG_NVDIMM_DAX=y
3856
+CONFIG_DAX=y
3856 3857
 CONFIG_DEV_DAX=m
3857 3858
 CONFIG_DEV_DAX_PMEM=m
3858
-CONFIG_NR_DEV_DAX=32768
3859
-# CONFIG_NVMEM is not set
3859
+CONFIG_NVMEM=y
3860 3860
 # CONFIG_STM is not set
3861 3861
 # CONFIG_INTEL_TH is not set
3862
+# CONFIG_FPGA is not set
3862 3863
 
3863 3864
 #
3864
-# FPGA Configuration Support
3865
+# FSI support
3865 3866
 #
3866
-# CONFIG_FPGA is not set
3867
+# CONFIG_FSI is not set
3867 3868
 
3868 3869
 #
3869 3870
 # Firmware Drivers
... ...
@@ -3871,7 +4107,7 @@ CONFIG_NR_DEV_DAX=32768
3871 3871
 # CONFIG_EDD is not set
3872 3872
 CONFIG_FIRMWARE_MEMMAP=y
3873 3873
 # CONFIG_DELL_RBU is not set
3874
-# CONFIG_DCDBAS is not set
3874
+CONFIG_DCDBAS=m
3875 3875
 CONFIG_DMIID=y
3876 3876
 # CONFIG_DMI_SYSFS is not set
3877 3877
 CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
... ...
@@ -3890,7 +4126,14 @@ CONFIG_EFI_RUNTIME_MAP=y
3890 3890
 CONFIG_EFI_RUNTIME_WRAPPERS=y
3891 3891
 # CONFIG_EFI_CAPSULE_LOADER is not set
3892 3892
 # CONFIG_EFI_TEST is not set
3893
+# CONFIG_APPLE_PROPERTIES is not set
3894
+# CONFIG_RESET_ATTACK_MITIGATION is not set
3893 3895
 CONFIG_UEFI_CPER=y
3896
+# CONFIG_EFI_DEV_PATH_PARSER is not set
3897
+
3898
+#
3899
+# Tegra firmware driver
3900
+#
3894 3901
 
3895 3902
 #
3896 3903
 # File systems
... ...
@@ -3927,6 +4170,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
3927 3927
 # CONFIG_NILFS2_FS is not set
3928 3928
 # CONFIG_F2FS_FS is not set
3929 3929
 CONFIG_FS_DAX=y
3930
+CONFIG_FS_DAX_PMD=y
3930 3931
 CONFIG_FS_POSIX_ACL=y
3931 3932
 CONFIG_EXPORTFS=y
3932 3933
 CONFIG_EXPORTFS_BLOCK_OPS=y
... ...
@@ -3951,6 +4195,8 @@ CONFIG_AUTOFS4_FS=m
3951 3951
 CONFIG_FUSE_FS=m
3952 3952
 # CONFIG_CUSE is not set
3953 3953
 CONFIG_OVERLAY_FS=m
3954
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
3955
+# CONFIG_OVERLAY_FS_INDEX is not set
3954 3956
 
3955 3957
 #
3956 3958
 # Caches
... ...
@@ -4011,7 +4257,6 @@ CONFIG_MISC_FILESYSTEMS=y
4011 4011
 # CONFIG_BEFS_FS is not set
4012 4012
 # CONFIG_BFS_FS is not set
4013 4013
 # CONFIG_EFS_FS is not set
4014
-# CONFIG_LOGFS is not set
4015 4014
 CONFIG_CRAMFS=m
4016 4015
 CONFIG_SQUASHFS=m
4017 4016
 CONFIG_SQUASHFS_FILE_CACHE=y
... ...
@@ -4024,6 +4269,7 @@ CONFIG_SQUASHFS_ZLIB=y
4024 4024
 # CONFIG_SQUASHFS_LZ4 is not set
4025 4025
 CONFIG_SQUASHFS_LZO=y
4026 4026
 CONFIG_SQUASHFS_XZ=y
4027
+# CONFIG_SQUASHFS_ZSTD is not set
4027 4028
 # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
4028 4029
 # CONFIG_SQUASHFS_EMBEDDED is not set
4029 4030
 CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
... ...
@@ -4044,7 +4290,6 @@ CONFIG_PSTORE_ZLIB_COMPRESS=y
4044 4044
 # CONFIG_SYSV_FS is not set
4045 4045
 # CONFIG_UFS_FS is not set
4046 4046
 # CONFIG_EXOFS_FS is not set
4047
-CONFIG_ORE=m
4048 4047
 CONFIG_NETWORK_FILESYSTEMS=y
4049 4048
 CONFIG_NFS_FS=m
4050 4049
 CONFIG_NFS_V2=m
... ...
@@ -4056,7 +4301,6 @@ CONFIG_NFS_V4_1=y
4056 4056
 CONFIG_NFS_V4_2=y
4057 4057
 CONFIG_PNFS_FILE_LAYOUT=m
4058 4058
 CONFIG_PNFS_BLOCK=m
4059
-CONFIG_PNFS_OBJLAYOUT=m
4060 4059
 CONFIG_PNFS_FLEXFILE_LAYOUT=m
4061 4060
 CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
4062 4061
 # CONFIG_NFS_V4_1_MIGRATION is not set
... ...
@@ -4099,8 +4343,8 @@ CONFIG_CIFS_POSIX=y
4099 4099
 CONFIG_CIFS_ACL=y
4100 4100
 CONFIG_CIFS_DEBUG=y
4101 4101
 # CONFIG_CIFS_DEBUG2 is not set
4102
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
4102 4103
 CONFIG_CIFS_DFS_UPCALL=y
4103
-CONFIG_CIFS_SMB2=y
4104 4104
 # CONFIG_CIFS_SMB311 is not set
4105 4105
 # CONFIG_CIFS_FSCACHE is not set
4106 4106
 # CONFIG_NCP_FS is not set
... ...
@@ -4173,6 +4417,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
4173 4173
 # printk and dmesg options
4174 4174
 #
4175 4175
 CONFIG_PRINTK_TIME=y
4176
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
4176 4177
 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
4177 4178
 # CONFIG_BOOT_PRINTK_DELAY is not set
4178 4179
 CONFIG_DYNAMIC_DEBUG=y
... ...
@@ -4196,12 +4441,12 @@ CONFIG_DEBUG_FS=y
4196 4196
 # CONFIG_HEADERS_CHECK is not set
4197 4197
 # CONFIG_DEBUG_SECTION_MISMATCH is not set
4198 4198
 CONFIG_SECTION_MISMATCH_WARN_ONLY=y
4199
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
4200 4199
 CONFIG_FRAME_POINTER=y
4201 4200
 CONFIG_STACK_VALIDATION=y
4202 4201
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
4203 4202
 CONFIG_MAGIC_SYSRQ=y
4204 4203
 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
4204
+CONFIG_MAGIC_SYSRQ_SERIAL=y
4205 4205
 CONFIG_DEBUG_KERNEL=y
4206 4206
 
4207 4207
 #
... ...
@@ -4211,12 +4456,14 @@ CONFIG_DEBUG_KERNEL=y
4211 4211
 # CONFIG_DEBUG_PAGEALLOC is not set
4212 4212
 # CONFIG_PAGE_POISONING is not set
4213 4213
 # CONFIG_DEBUG_PAGE_REF is not set
4214
+# CONFIG_DEBUG_RODATA_TEST is not set
4214 4215
 # CONFIG_DEBUG_OBJECTS is not set
4215 4216
 # CONFIG_DEBUG_SLAB is not set
4216 4217
 CONFIG_HAVE_DEBUG_KMEMLEAK=y
4217 4218
 # CONFIG_DEBUG_KMEMLEAK is not set
4218 4219
 # CONFIG_DEBUG_STACK_USAGE is not set
4219 4220
 # CONFIG_DEBUG_VM is not set
4221
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
4220 4222
 # CONFIG_DEBUG_VIRTUAL is not set
4221 4223
 # CONFIG_DEBUG_MEMORY_INIT is not set
4222 4224
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
... ...
@@ -4234,6 +4481,9 @@ CONFIG_ARCH_HAS_KCOV=y
4234 4234
 # Debug Lockups and Hangs
4235 4235
 #
4236 4236
 CONFIG_LOCKUP_DETECTOR=y
4237
+CONFIG_SOFTLOCKUP_DETECTOR=y
4238
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
4239
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
4237 4240
 CONFIG_HARDLOCKUP_DETECTOR=y
4238 4241
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
4239 4242
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1
... ...
@@ -4252,7 +4502,6 @@ CONFIG_SCHED_INFO=y
4252 4252
 CONFIG_SCHEDSTATS=y
4253 4253
 # CONFIG_SCHED_STACK_END_CHECK is not set
4254 4254
 # CONFIG_DEBUG_TIMEKEEPING is not set
4255
-CONFIG_TIMER_STATS=y
4256 4255
 
4257 4256
 #
4258 4257
 # Lock Debugging (spinlocks, mutexes, etc...)
... ...
@@ -4267,7 +4516,9 @@ CONFIG_TIMER_STATS=y
4267 4267
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
4268 4268
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
4269 4269
 # CONFIG_LOCK_TORTURE_TEST is not set
4270
+# CONFIG_WW_MUTEX_SELFTEST is not set
4270 4271
 CONFIG_STACKTRACE=y
4272
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
4271 4273
 # CONFIG_DEBUG_KOBJECT is not set
4272 4274
 CONFIG_DEBUG_BUGVERBOSE=y
4273 4275
 # CONFIG_DEBUG_LIST is not set
... ...
@@ -4280,7 +4531,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
4280 4280
 # RCU Debugging
4281 4281
 #
4282 4282
 # CONFIG_PROVE_RCU is not set
4283
-# CONFIG_SPARSE_RCU_POINTER is not set
4284 4283
 # CONFIG_TORTURE_TEST is not set
4285 4284
 # CONFIG_RCU_PERF_TEST is not set
4286 4285
 # CONFIG_RCU_TORTURE_TEST is not set
... ...
@@ -4323,8 +4573,8 @@ CONFIG_BRANCH_PROFILE_NONE=y
4323 4323
 # CONFIG_PROFILE_ALL_BRANCHES is not set
4324 4324
 # CONFIG_STACK_TRACER is not set
4325 4325
 CONFIG_BLK_DEV_IO_TRACE=y
4326
-CONFIG_KPROBE_EVENT=y
4327
-CONFIG_UPROBE_EVENT=y
4326
+CONFIG_KPROBE_EVENTS=y
4327
+CONFIG_UPROBE_EVENTS=y
4328 4328
 CONFIG_PROBE_EVENTS=y
4329 4329
 # CONFIG_FTRACE_STARTUP_TEST is not set
4330 4330
 # CONFIG_MMIOTRACE is not set
... ...
@@ -4332,13 +4582,16 @@ CONFIG_PROBE_EVENTS=y
4332 4332
 # CONFIG_TRACEPOINT_BENCHMARK is not set
4333 4333
 # CONFIG_RING_BUFFER_BENCHMARK is not set
4334 4334
 # CONFIG_RING_BUFFER_STARTUP_TEST is not set
4335
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
4335
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
4336
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
4337
+# CONFIG_DMA_API_DEBUG is not set
4336 4338
 
4337 4339
 #
4338 4340
 # Runtime Testing
4339 4341
 #
4340 4342
 # CONFIG_LKDTM is not set
4341 4343
 # CONFIG_TEST_LIST_SORT is not set
4344
+# CONFIG_TEST_SORT is not set
4342 4345
 # CONFIG_KPROBES_SANITY_TEST is not set
4343 4346
 # CONFIG_BACKTRACE_SELF_TEST is not set
4344 4347
 # CONFIG_RBTREE_TEST is not set
... ...
@@ -4354,15 +4607,16 @@ CONFIG_PROBE_EVENTS=y
4354 4354
 # CONFIG_TEST_UUID is not set
4355 4355
 # CONFIG_TEST_RHASHTABLE is not set
4356 4356
 # CONFIG_TEST_HASH is not set
4357
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
4358
-# CONFIG_DMA_API_DEBUG is not set
4359 4357
 # CONFIG_TEST_LKM is not set
4360 4358
 # CONFIG_TEST_USER_COPY is not set
4361 4359
 # CONFIG_TEST_BPF is not set
4362 4360
 # CONFIG_TEST_FIRMWARE is not set
4361
+# CONFIG_TEST_SYSCTL is not set
4363 4362
 # CONFIG_TEST_UDELAY is not set
4364
-CONFIG_MEMTEST=y
4365 4363
 # CONFIG_TEST_STATIC_KEYS is not set
4364
+# CONFIG_TEST_KMOD is not set
4365
+CONFIG_MEMTEST=y
4366
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
4366 4367
 # CONFIG_SAMPLES is not set
4367 4368
 CONFIG_HAVE_ARCH_KGDB=y
4368 4369
 # CONFIG_KGDB is not set
... ...
@@ -4376,13 +4630,11 @@ CONFIG_STRICT_DEVMEM=y
4376 4376
 CONFIG_EARLY_PRINTK=y
4377 4377
 # CONFIG_EARLY_PRINTK_DBGP is not set
4378 4378
 # CONFIG_EARLY_PRINTK_EFI is not set
4379
+# CONFIG_EARLY_PRINTK_USB_XDBC is not set
4379 4380
 # CONFIG_X86_PTDUMP_CORE is not set
4380 4381
 # CONFIG_X86_PTDUMP is not set
4381 4382
 # CONFIG_EFI_PGT_DUMP is not set
4382
-# CONFIG_DEBUG_RODATA_TEST is not set
4383 4383
 # CONFIG_DEBUG_WX is not set
4384
-CONFIG_DEBUG_SET_MODULE_RONX=y
4385
-# CONFIG_DEBUG_NX_TEST is not set
4386 4384
 CONFIG_DOUBLEFAULT=y
4387 4385
 # CONFIG_DEBUG_TLBFLUSH is not set
4388 4386
 # CONFIG_IOMMU_DEBUG is not set
... ...
@@ -4405,6 +4657,9 @@ CONFIG_OPTIMIZE_INLINING=y
4405 4405
 # CONFIG_DEBUG_NMI_SELFTEST is not set
4406 4406
 # CONFIG_X86_DEBUG_FPU is not set
4407 4407
 # CONFIG_PUNIT_ATOM_DEBUG is not set
4408
+CONFIG_FRAME_POINTER_UNWINDER=y
4409
+# CONFIG_ORC_UNWINDER is not set
4410
+# CONFIG_GUESS_UNWINDER is not set
4408 4411
 
4409 4412
 #
4410 4413
 # Security options
... ...
@@ -4418,6 +4673,7 @@ CONFIG_ENCRYPTED_KEYS=m
4418 4418
 # CONFIG_KEY_DH_OPERATIONS is not set
4419 4419
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
4420 4420
 CONFIG_SECURITY=y
4421
+# CONFIG_SECURITY_WRITABLE_HOOKS is not set
4421 4422
 CONFIG_SECURITYFS=y
4422 4423
 CONFIG_SECURITY_NETWORK=y
4423 4424
 # CONFIG_SECURITY_NETWORK_XFRM is not set
... ...
@@ -4425,9 +4681,10 @@ CONFIG_SECURITY_PATH=y
4425 4425
 CONFIG_INTEL_TXT=y
4426 4426
 CONFIG_LSM_MMAP_MIN_ADDR=65536
4427 4427
 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
4428
-CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
4429 4428
 CONFIG_HARDENED_USERCOPY=y
4430 4429
 # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
4430
+CONFIG_FORTIFY_SOURCE=y
4431
+# CONFIG_STATIC_USERMODEHELPER is not set
4431 4432
 CONFIG_SECURITY_SELINUX=y
4432 4433
 # CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
4433 4434
 # CONFIG_SECURITY_SELINUX_DISABLE is not set
... ...
@@ -4443,6 +4700,7 @@ CONFIG_SECURITY_APPARMOR=y
4443 4443
 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
4444 4444
 CONFIG_SECURITY_APPARMOR_HASH=y
4445 4445
 CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
4446
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
4446 4447
 # CONFIG_SECURITY_LOADPIN is not set
4447 4448
 CONFIG_SECURITY_YAMA=y
4448 4449
 CONFIG_INTEGRITY=y
... ...
@@ -4481,6 +4739,7 @@ CONFIG_CRYPTO_RNG_DEFAULT=m
4481 4481
 CONFIG_CRYPTO_AKCIPHER2=y
4482 4482
 CONFIG_CRYPTO_AKCIPHER=y
4483 4483
 CONFIG_CRYPTO_KPP2=y
4484
+CONFIG_CRYPTO_ACOMP2=y
4484 4485
 CONFIG_CRYPTO_RSA=y
4485 4486
 # CONFIG_CRYPTO_DH is not set
4486 4487
 # CONFIG_CRYPTO_ECDH is not set
... ...
@@ -4497,8 +4756,9 @@ CONFIG_CRYPTO_CRYPTD=m
4497 4497
 # CONFIG_CRYPTO_MCRYPTD is not set
4498 4498
 CONFIG_CRYPTO_AUTHENC=m
4499 4499
 CONFIG_CRYPTO_TEST=m
4500
-CONFIG_CRYPTO_ABLK_HELPER=m
4500
+CONFIG_CRYPTO_SIMD=m
4501 4501
 CONFIG_CRYPTO_GLUE_HELPER_X86=m
4502
+CONFIG_CRYPTO_ENGINE=m
4502 4503
 
4503 4504
 #
4504 4505
 # Authenticated Encryption with Associated Data
... ...
@@ -4566,6 +4826,7 @@ CONFIG_CRYPTO_SHA512=y
4566 4566
 # Ciphers
4567 4567
 #
4568 4568
 CONFIG_CRYPTO_AES=y
4569
+# CONFIG_CRYPTO_AES_TI is not set
4569 4570
 CONFIG_CRYPTO_AES_X86_64=m
4570 4571
 CONFIG_CRYPTO_AES_NI_INTEL=m
4571 4572
 # CONFIG_CRYPTO_ANUBIS is not set
... ...
@@ -4626,6 +4887,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
4626 4626
 CONFIG_CRYPTO_HASH_INFO=y
4627 4627
 CONFIG_CRYPTO_HW=y
4628 4628
 # CONFIG_CRYPTO_DEV_PADLOCK is not set
4629
+# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set
4629 4630
 # CONFIG_CRYPTO_DEV_CCP is not set
4630 4631
 # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
4631 4632
 # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
... ...
@@ -4633,7 +4895,9 @@ CONFIG_CRYPTO_HW=y
4633 4633
 # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
4634 4634
 # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
4635 4635
 # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
4636
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
4636 4637
 # CONFIG_CRYPTO_DEV_CHELSIO is not set
4638
+CONFIG_CRYPTO_DEV_VIRTIO=m
4637 4639
 CONFIG_ASYMMETRIC_KEY_TYPE=y
4638 4640
 CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
4639 4641
 CONFIG_X509_CERTIFICATE_PARSER=y
... ...
@@ -4649,6 +4913,7 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
4649 4649
 CONFIG_SYSTEM_TRUSTED_KEYS=""
4650 4650
 # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
4651 4651
 # CONFIG_SECONDARY_TRUSTED_KEYRING is not set
4652
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
4652 4653
 CONFIG_HAVE_KVM=y
4653 4654
 CONFIG_HAVE_KVM_IRQCHIP=y
4654 4655
 CONFIG_HAVE_KVM_IRQFD=y
... ...
@@ -4667,7 +4932,6 @@ CONFIG_KVM=m
4667 4667
 CONFIG_KVM_INTEL=m
4668 4668
 CONFIG_KVM_AMD=m
4669 4669
 # CONFIG_KVM_MMU_AUDIT is not set
4670
-CONFIG_KVM_DEVICE_ASSIGNMENT=y
4671 4670
 CONFIG_VHOST_NET=m
4672 4671
 CONFIG_VHOST_VSOCK=m
4673 4672
 CONFIG_VHOST=m
... ...
@@ -4680,6 +4944,7 @@ CONFIG_BINARY_PRINTF=y
4680 4680
 CONFIG_RAID6_PQ=m
4681 4681
 CONFIG_BITREVERSE=y
4682 4682
 # CONFIG_HAVE_ARCH_BITREVERSE is not set
4683
+CONFIG_RATIONAL=y
4683 4684
 CONFIG_GENERIC_STRNCPY_FROM_USER=y
4684 4685
 CONFIG_GENERIC_STRNLEN_USER=y
4685 4686
 CONFIG_GENERIC_NET_UTILS=y
... ...
@@ -4699,9 +4964,11 @@ CONFIG_CRC32_SLICEBY8=y
4699 4699
 # CONFIG_CRC32_SLICEBY4 is not set
4700 4700
 # CONFIG_CRC32_SARWATE is not set
4701 4701
 # CONFIG_CRC32_BIT is not set
4702
+# CONFIG_CRC4 is not set
4702 4703
 # CONFIG_CRC7 is not set
4703 4704
 CONFIG_LIBCRC32C=y
4704 4705
 # CONFIG_CRC8 is not set
4706
+CONFIG_XXHASH=m
4705 4707
 # CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
4706 4708
 # CONFIG_RANDOM32_SELFTEST is not set
4707 4709
 CONFIG_ZLIB_INFLATE=y
... ...
@@ -4709,6 +4976,8 @@ CONFIG_ZLIB_DEFLATE=y
4709 4709
 CONFIG_LZO_COMPRESS=y
4710 4710
 CONFIG_LZO_DECOMPRESS=y
4711 4711
 CONFIG_LZ4_DECOMPRESS=y
4712
+CONFIG_ZSTD_COMPRESS=m
4713
+CONFIG_ZSTD_DECOMPRESS=m
4712 4714
 CONFIG_XZ_DEC=y
4713 4715
 CONFIG_XZ_DEC_X86=y
4714 4716
 CONFIG_XZ_DEC_POWERPC=y
... ...
@@ -4729,12 +4998,15 @@ CONFIG_TEXTSEARCH=y
4729 4729
 CONFIG_TEXTSEARCH_KMP=m
4730 4730
 CONFIG_TEXTSEARCH_BM=m
4731 4731
 CONFIG_TEXTSEARCH_FSM=m
4732
+CONFIG_BTREE=y
4732 4733
 CONFIG_INTERVAL_TREE=y
4733 4734
 CONFIG_RADIX_TREE_MULTIORDER=y
4734 4735
 CONFIG_ASSOCIATIVE_ARRAY=y
4735 4736
 CONFIG_HAS_IOMEM=y
4736 4737
 CONFIG_HAS_IOPORT_MAP=y
4737 4738
 CONFIG_HAS_DMA=y
4739
+# CONFIG_DMA_NOOP_OPS is not set
4740
+# CONFIG_DMA_VIRT_OPS is not set
4738 4741
 CONFIG_CHECK_SIGNATURE=y
4739 4742
 CONFIG_CPUMASK_OFFSTACK=y
4740 4743
 CONFIG_CPU_RMAP=y
... ...
@@ -4757,5 +5029,6 @@ CONFIG_FONT_8x16=y
4757 4757
 CONFIG_SG_POOL=y
4758 4758
 CONFIG_ARCH_HAS_SG_CHAIN=y
4759 4759
 CONFIG_ARCH_HAS_PMEM_API=y
4760
-CONFIG_ARCH_HAS_MMIO_FLUSH=y
4760
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
4761 4761
 CONFIG_SBITMAP=y
4762
+# CONFIG_STRING_SELFTEST is not set
... ...
@@ -1,12 +1,11 @@
1 1
 #
2 2
 # Automatically generated file; DO NOT EDIT.
3
-# Linux/arm64 4.9.47 Kernel Configuration
3
+# Linux/arm64 4.14.0 Kernel Configuration
4 4
 #
5 5
 CONFIG_ARM64=y
6 6
 CONFIG_64BIT=y
7 7
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
8 8
 CONFIG_MMU=y
9
-CONFIG_DEBUG_RODATA=y
10 9
 CONFIG_ARM64_PAGE_SHIFT=12
11 10
 CONFIG_ARM64_CONT_SHIFT=4
12 11
 CONFIG_ARCH_MMAP_RND_BITS_MIN=18
... ...
@@ -24,7 +23,7 @@ CONFIG_GENERIC_HWEIGHT=y
24 24
 CONFIG_GENERIC_CSUM=y
25 25
 CONFIG_GENERIC_CALIBRATE_DELAY=y
26 26
 CONFIG_ZONE_DMA=y
27
-CONFIG_HAVE_GENERIC_RCU_GUP=y
27
+CONFIG_HAVE_GENERIC_GUP=y
28 28
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
29 29
 CONFIG_NEED_DMA_MAP_STATE=y
30 30
 CONFIG_NEED_SG_DMA_LENGTH=y
... ...
@@ -34,9 +33,12 @@ CONFIG_IOMMU_HELPER=y
34 34
 CONFIG_KERNEL_MODE_NEON=y
35 35
 CONFIG_FIX_EARLYCON_MEM=y
36 36
 CONFIG_PGTABLE_LEVELS=4
37
+CONFIG_ARCH_SUPPORTS_UPROBES=y
38
+CONFIG_ARCH_PROC_KCORE_TEXT=y
37 39
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
38 40
 CONFIG_IRQ_WORK=y
39 41
 CONFIG_BUILDTIME_EXTABLE_SORT=y
42
+CONFIG_THREAD_INFO_IN_TASK=y
40 43
 
41 44
 #
42 45
 # General setup
... ...
@@ -67,6 +69,7 @@ CONFIG_AUDIT_TREE=y
67 67
 CONFIG_GENERIC_IRQ_PROBE=y
68 68
 CONFIG_GENERIC_IRQ_SHOW=y
69 69
 CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
70
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
70 71
 CONFIG_GENERIC_IRQ_MIGRATION=y
71 72
 CONFIG_HARDIRQS_SW_RESEND=y
72 73
 CONFIG_GENERIC_IRQ_CHIP=y
... ...
@@ -78,6 +81,7 @@ CONFIG_HANDLE_DOMAIN_IRQ=y
78 78
 # CONFIG_IRQ_DOMAIN_DEBUG is not set
79 79
 CONFIG_IRQ_FORCED_THREADING=y
80 80
 CONFIG_SPARSE_IRQ=y
81
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
81 82
 CONFIG_ARCH_CLOCKSOURCE_DATA=y
82 83
 CONFIG_GENERIC_TIME_VSYSCALL=y
83 84
 CONFIG_GENERIC_CLOCKEVENTS=y
... ...
@@ -114,15 +118,16 @@ CONFIG_TASK_IO_ACCOUNTING=y
114 114
 CONFIG_TREE_RCU=y
115 115
 # CONFIG_RCU_EXPERT is not set
116 116
 CONFIG_SRCU=y
117
+CONFIG_TREE_SRCU=y
117 118
 # CONFIG_TASKS_RCU is not set
118 119
 CONFIG_RCU_STALL_COMMON=y
119
-# CONFIG_TREE_RCU_TRACE is not set
120
-# CONFIG_RCU_EXPEDITE_BOOT is not set
120
+CONFIG_RCU_NEED_SEGCBLIST=y
121 121
 CONFIG_BUILD_BIN2C=y
122 122
 CONFIG_IKCONFIG=y
123 123
 CONFIG_IKCONFIG_PROC=y
124 124
 CONFIG_LOG_BUF_SHIFT=18
125 125
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
126
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
126 127
 CONFIG_GENERIC_SCHED_CLOCK=y
127 128
 CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
128 129
 # CONFIG_NUMA_BALANCING is not set
... ...
@@ -139,6 +144,7 @@ CONFIG_FAIR_GROUP_SCHED=y
139 139
 CONFIG_CFS_BANDWIDTH=y
140 140
 # CONFIG_RT_GROUP_SCHED is not set
141 141
 CONFIG_CGROUP_PIDS=y
142
+# CONFIG_CGROUP_RDMA is not set
142 143
 CONFIG_CGROUP_FREEZER=y
143 144
 CONFIG_CGROUP_HUGETLB=y
144 145
 CONFIG_CPUSETS=y
... ...
@@ -147,6 +153,7 @@ CONFIG_CGROUP_DEVICE=y
147 147
 CONFIG_CGROUP_CPUACCT=y
148 148
 CONFIG_CGROUP_PERF=y
149 149
 # CONFIG_CGROUP_DEBUG is not set
150
+CONFIG_SOCK_CGROUP_DATA=y
150 151
 # CONFIG_CHECKPOINT_RESTORE is not set
151 152
 CONFIG_NAMESPACES=y
152 153
 CONFIG_UTS_NS=y
... ...
@@ -178,6 +185,7 @@ CONFIG_MULTIUSER=y
178 178
 CONFIG_SGETMASK_SYSCALL=y
179 179
 CONFIG_SYSFS_SYSCALL=y
180 180
 # CONFIG_SYSCTL_SYSCALL is not set
181
+CONFIG_POSIX_TIMERS=y
181 182
 CONFIG_KALLSYMS=y
182 183
 CONFIG_KALLSYMS_ALL=y
183 184
 # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
... ...
@@ -187,6 +195,7 @@ CONFIG_BUG=y
187 187
 CONFIG_ELF_CORE=y
188 188
 CONFIG_BASE_FULL=y
189 189
 CONFIG_FUTEX=y
190
+CONFIG_FUTEX_PI=y
190 191
 CONFIG_EPOLL=y
191 192
 CONFIG_SIGNALFD=y
192 193
 CONFIG_TIMERFD=y
... ...
@@ -200,6 +209,7 @@ CONFIG_PCI_QUIRKS=y
200 200
 CONFIG_MEMBARRIER=y
201 201
 # CONFIG_EMBEDDED is not set
202 202
 CONFIG_HAVE_PERF_EVENTS=y
203
+# CONFIG_PC104 is not set
203 204
 
204 205
 #
205 206
 # Kernel Performance Events And Counters
... ...
@@ -211,10 +221,12 @@ CONFIG_COMPAT_BRK=y
211 211
 CONFIG_SLAB=y
212 212
 # CONFIG_SLUB is not set
213 213
 # CONFIG_SLOB is not set
214
+CONFIG_SLAB_MERGE_DEFAULT=y
214 215
 # CONFIG_SLAB_FREELIST_RANDOM is not set
215 216
 CONFIG_SYSTEM_DATA_VERIFICATION=y
216 217
 CONFIG_PROFILING=y
217 218
 CONFIG_TRACEPOINTS=y
219
+CONFIG_CRASH_CORE=y
218 220
 CONFIG_KEXEC_CORE=y
219 221
 CONFIG_KPROBES=y
220 222
 CONFIG_JUMP_LABEL=y
... ...
@@ -229,6 +241,8 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
229 229
 CONFIG_HAVE_DMA_CONTIGUOUS=y
230 230
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
231 231
 CONFIG_GENERIC_IDLE_POLL_SETUP=y
232
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
233
+CONFIG_ARCH_HAS_SET_MEMORY=y
232 234
 CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
233 235
 CONFIG_HAVE_CLK=y
234 236
 CONFIG_HAVE_DMA_API_DEBUG=y
... ...
@@ -246,11 +260,14 @@ CONFIG_HAVE_GCC_PLUGINS=y
246 246
 CONFIG_GCC_PLUGINS=y
247 247
 # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
248 248
 # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
249
+# CONFIG_GCC_PLUGIN_STRUCTLEAK is not set
250
+# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
249 251
 CONFIG_HAVE_CC_STACKPROTECTOR=y
250 252
 CONFIG_CC_STACKPROTECTOR=y
251 253
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
252 254
 CONFIG_CC_STACKPROTECTOR_REGULAR=y
253 255
 # CONFIG_CC_STACKPROTECTOR_STRONG is not set
256
+CONFIG_THIN_ARCHIVES=y
254 257
 CONFIG_HAVE_CONTEXT_TRACKING=y
255 258
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
256 259
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
... ...
@@ -268,7 +285,15 @@ CONFIG_CLONE_BACKWARDS=y
268 268
 CONFIG_OLD_SIGSUSPEND3=y
269 269
 CONFIG_COMPAT_OLD_SIGACTION=y
270 270
 # CONFIG_CPU_NO_EFFICIENT_FFS is not set
271
-# CONFIG_HAVE_ARCH_VMAP_STACK is not set
271
+CONFIG_HAVE_ARCH_VMAP_STACK=y
272
+CONFIG_VMAP_STACK=y
273
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set
274
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
275
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
276
+CONFIG_STRICT_KERNEL_RWX=y
277
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
278
+CONFIG_STRICT_MODULE_RWX=y
279
+# CONFIG_REFCOUNT_FULL is not set
272 280
 
273 281
 #
274 282
 # GCOV-based kernel profiling
... ...
@@ -297,11 +322,17 @@ CONFIG_MODULE_SIG_HASH="sha512"
297 297
 # CONFIG_MODULE_COMPRESS is not set
298 298
 CONFIG_MODULES_TREE_LOOKUP=y
299 299
 CONFIG_BLOCK=y
300
+CONFIG_BLK_SCSI_REQUEST=y
300 301
 CONFIG_BLK_DEV_BSG=y
301 302
 CONFIG_BLK_DEV_BSGLIB=y
302 303
 CONFIG_BLK_DEV_INTEGRITY=y
304
+# CONFIG_BLK_DEV_ZONED is not set
303 305
 CONFIG_BLK_DEV_THROTTLING=y
306
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
304 307
 # CONFIG_BLK_CMDLINE_PARSER is not set
308
+# CONFIG_BLK_WBT is not set
309
+CONFIG_BLK_DEBUG_FS=y
310
+# CONFIG_BLK_SED_OPAL is not set
305 311
 
306 312
 #
307 313
 # Partition Types
... ...
@@ -328,6 +359,7 @@ CONFIG_EFI_PARTITION=y
328 328
 # CONFIG_CMDLINE_PARTITION is not set
329 329
 CONFIG_BLOCK_COMPAT=y
330 330
 CONFIG_BLK_MQ_PCI=y
331
+CONFIG_BLK_MQ_VIRTIO=y
331 332
 
332 333
 #
333 334
 # IO Schedulers
... ...
@@ -340,6 +372,9 @@ CONFIG_DEFAULT_DEADLINE=y
340 340
 # CONFIG_DEFAULT_CFQ is not set
341 341
 # CONFIG_DEFAULT_NOOP is not set
342 342
 CONFIG_DEFAULT_IOSCHED="deadline"
343
+CONFIG_MQ_IOSCHED_DEADLINE=y
344
+CONFIG_MQ_IOSCHED_KYBER=y
345
+# CONFIG_IOSCHED_BFQ is not set
343 346
 CONFIG_ASN1=y
344 347
 CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
345 348
 CONFIG_INLINE_READ_UNLOCK=y
... ...
@@ -355,6 +390,7 @@ CONFIG_FREEZER=y
355 355
 #
356 356
 # Platform selection
357 357
 #
358
+# CONFIG_ARCH_ACTIONS is not set
358 359
 CONFIG_ARCH_SUNXI=y
359 360
 # CONFIG_ARCH_ALPINE is not set
360 361
 CONFIG_ARCH_BCM2835=y
... ...
@@ -369,6 +405,7 @@ CONFIG_ARCH_MEDIATEK=y
369 369
 CONFIG_ARCH_MESON=y
370 370
 CONFIG_ARCH_MVEBU=y
371 371
 CONFIG_ARCH_QCOM=y
372
+# CONFIG_ARCH_REALTEK is not set
372 373
 CONFIG_ARCH_ROCKCHIP=y
373 374
 CONFIG_ARCH_SEATTLE=y
374 375
 # CONFIG_ARCH_RENESAS is not set
... ...
@@ -376,9 +413,10 @@ CONFIG_ARCH_STRATIX10=y
376 376
 CONFIG_ARCH_TEGRA=y
377 377
 CONFIG_ARCH_SPRD=y
378 378
 CONFIG_ARCH_THUNDER=y
379
+# CONFIG_ARCH_THUNDER2 is not set
379 380
 # CONFIG_ARCH_UNIPHIER is not set
380 381
 CONFIG_ARCH_VEXPRESS=y
381
-CONFIG_ARCH_VULCAN=y
382
+# CONFIG_ARCH_VULCAN is not set
382 383
 CONFIG_ARCH_XGENE=y
383 384
 # CONFIG_ARCH_ZX is not set
384 385
 CONFIG_ARCH_ZYNQMP=y
... ...
@@ -399,6 +437,7 @@ CONFIG_PCIEASPM=y
399 399
 # CONFIG_PCIEASPM_DEBUG is not set
400 400
 CONFIG_PCIEASPM_DEFAULT=y
401 401
 # CONFIG_PCIEASPM_POWERSAVE is not set
402
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
402 403
 # CONFIG_PCIEASPM_PERFORMANCE is not set
403 404
 CONFIG_PCIE_PME=y
404 405
 # CONFIG_PCIE_DPC is not set
... ...
@@ -422,26 +461,44 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=m
422 422
 # CONFIG_HOTPLUG_PCI_SHPC is not set
423 423
 
424 424
 #
425
+# DesignWare PCI Core Support
426
+#
427
+CONFIG_PCIE_DW=y
428
+CONFIG_PCIE_DW_HOST=y
429
+# CONFIG_PCIE_DW_PLAT is not set
430
+# CONFIG_PCI_LAYERSCAPE is not set
431
+CONFIG_PCI_HISI=y
432
+CONFIG_PCIE_QCOM=y
433
+CONFIG_PCIE_ARMADA_8K=y
434
+# CONFIG_PCIE_KIRIN is not set
435
+
436
+#
425 437
 # PCI host controller drivers
426 438
 #
427 439
 # CONFIG_PCI_AARDVARK is not set
428 440
 # CONFIG_PCIE_XILINX_NWL is not set
429
-# CONFIG_PCIE_DW_PLAT is not set
430
-CONFIG_PCIE_DW=y
441
+# CONFIG_PCI_TEGRA is not set
431 442
 CONFIG_PCI_HOST_COMMON=y
432 443
 CONFIG_PCI_HOST_GENERIC=y
433 444
 CONFIG_PCI_XGENE=y
434 445
 CONFIG_PCI_XGENE_MSI=y
435
-# CONFIG_PCI_LAYERSCAPE is not set
436 446
 CONFIG_PCIE_IPROC=y
437 447
 CONFIG_PCIE_IPROC_PLATFORM=y
438 448
 CONFIG_PCIE_IPROC_MSI=y
439
-CONFIG_PCI_HISI=y
440
-CONFIG_PCIE_QCOM=y
441 449
 CONFIG_PCI_HOST_THUNDER_PEM=y
442 450
 CONFIG_PCI_HOST_THUNDER_ECAM=y
443
-CONFIG_PCIE_ARMADA_8K=y
444 451
 CONFIG_PCIE_ROCKCHIP=y
452
+# CONFIG_PCIE_MEDIATEK is not set
453
+
454
+#
455
+# PCI Endpoint
456
+#
457
+# CONFIG_PCI_ENDPOINT is not set
458
+
459
+#
460
+# PCI switch controller drivers
461
+#
462
+# CONFIG_PCI_SW_SWITCHTEC is not set
445 463
 
446 464
 #
447 465
 # Kernel Features
... ...
@@ -461,6 +518,9 @@ CONFIG_CAVIUM_ERRATUM_22375=y
461 461
 CONFIG_CAVIUM_ERRATUM_23144=y
462 462
 CONFIG_CAVIUM_ERRATUM_23154=y
463 463
 CONFIG_CAVIUM_ERRATUM_27456=y
464
+CONFIG_CAVIUM_ERRATUM_30115=y
465
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
466
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
464 467
 CONFIG_QCOM_QDF2400_ERRATUM_0065=y
465 468
 CONFIG_ARM64_4K_PAGES=y
466 469
 # CONFIG_ARM64_16K_PAGES is not set
... ...
@@ -478,6 +538,7 @@ CONFIG_NODES_SHIFT=10
478 478
 CONFIG_USE_PERCPU_NUMA_NODE_ID=y
479 479
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
480 480
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
481
+CONFIG_HOLES_IN_ZONE=y
481 482
 CONFIG_PREEMPT_NONE=y
482 483
 # CONFIG_PREEMPT_VOLUNTARY is not set
483 484
 # CONFIG_PREEMPT is not set
... ...
@@ -520,9 +581,12 @@ CONFIG_BOUNCE=y
520 520
 CONFIG_MMU_NOTIFIER=y
521 521
 CONFIG_KSM=y
522 522
 CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
523
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
524
+# CONFIG_MEMORY_FAILURE is not set
523 525
 CONFIG_TRANSPARENT_HUGEPAGE=y
524 526
 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
525 527
 # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
528
+# CONFIG_ARCH_WANTS_THP_SWAP is not set
526 529
 CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
527 530
 CONFIG_CLEANCACHE=y
528 531
 CONFIG_FRONTSWAP=y
... ...
@@ -539,10 +603,13 @@ CONFIG_PGTABLE_MAPPING=y
539 539
 # CONFIG_ZSMALLOC_STAT is not set
540 540
 CONFIG_GENERIC_EARLY_IOREMAP=y
541 541
 CONFIG_IDLE_PAGE_TRACKING=y
542
+CONFIG_FRAME_VECTOR=y
543
+# CONFIG_PERCPU_STATS is not set
542 544
 CONFIG_SECCOMP=y
543 545
 CONFIG_PARAVIRT=y
544 546
 # CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
545 547
 CONFIG_KEXEC=y
548
+# CONFIG_CRASH_DUMP is not set
546 549
 CONFIG_XEN_DOM0=y
547 550
 CONFIG_XEN=y
548 551
 CONFIG_FORCE_MAX_ZONEORDER=11
... ...
@@ -550,6 +617,7 @@ CONFIG_ARMV8_DEPRECATED=y
550 550
 CONFIG_SWP_EMULATION=y
551 551
 CONFIG_CP15_BARRIER_EMULATION=y
552 552
 CONFIG_SETEND_EMULATION=y
553
+# CONFIG_ARM64_SW_TTBR0_PAN is not set
553 554
 
554 555
 #
555 556
 # ARMv8.1 architectural features
... ...
@@ -563,6 +631,7 @@ CONFIG_ARM64_VHE=y
563 563
 # ARMv8.2 architectural features
564 564
 #
565 565
 CONFIG_ARM64_UAO=y
566
+# CONFIG_ARM64_PMEM is not set
566 567
 CONFIG_ARM64_MODULE_CMODEL_LARGE=y
567 568
 # CONFIG_RANDOMIZE_BASE is not set
568 569
 
... ...
@@ -624,6 +693,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
624 624
 # CPU Idle
625 625
 #
626 626
 CONFIG_CPU_IDLE=y
627
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
627 628
 CONFIG_CPU_IDLE_GOV_LADDER=y
628 629
 CONFIG_CPU_IDLE_GOV_MENU=y
629 630
 CONFIG_DT_IDLE_STATES=y
... ...
@@ -641,7 +711,6 @@ CONFIG_CPU_FREQ=y
641 641
 CONFIG_CPU_FREQ_GOV_ATTR_SET=y
642 642
 CONFIG_CPU_FREQ_GOV_COMMON=y
643 643
 CONFIG_CPU_FREQ_STAT=y
644
-CONFIG_CPU_FREQ_STAT_DETAILS=y
645 644
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
646 645
 # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
647 646
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
... ...
@@ -661,13 +730,17 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
661 661
 CONFIG_CPUFREQ_DT=y
662 662
 CONFIG_CPUFREQ_DT_PLATDEV=y
663 663
 CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
664
+CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=y
665
+# CONFIG_ARM_BRCMSTB_AVS_CPUFREQ_DEBUG is not set
664 666
 CONFIG_ARM_DT_BL_CPUFREQ=m
665 667
 # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
666
-CONFIG_ARM_MT8173_CPUFREQ=m
668
+# CONFIG_ARM_MEDIATEK_CPUFREQ is not set
667 669
 CONFIG_ARM_TEGRA20_CPUFREQ=y
668 670
 CONFIG_ARM_TEGRA124_CPUFREQ=y
669 671
 CONFIG_ACPI_CPPC_CPUFREQ=m
672
+# CONFIG_QORIQ_CPUFREQ is not set
670 673
 CONFIG_NET=y
674
+CONFIG_COMPAT_NETLINK_MESSAGES=y
671 675
 CONFIG_NET_INGRESS=y
672 676
 CONFIG_NET_EGRESS=y
673 677
 
... ...
@@ -678,6 +751,7 @@ CONFIG_PACKET=y
678 678
 CONFIG_PACKET_DIAG=m
679 679
 CONFIG_UNIX=y
680 680
 CONFIG_UNIX_DIAG=m
681
+# CONFIG_TLS is not set
681 682
 CONFIG_XFRM=y
682 683
 CONFIG_XFRM_ALGO=m
683 684
 CONFIG_XFRM_USER=m
... ...
@@ -712,6 +786,7 @@ CONFIG_NET_UDP_TUNNEL=m
712 712
 # CONFIG_NET_FOU_IP_TUNNELS is not set
713 713
 CONFIG_INET_AH=m
714 714
 CONFIG_INET_ESP=m
715
+# CONFIG_INET_ESP_OFFLOAD is not set
715 716
 CONFIG_INET_IPCOMP=m
716 717
 CONFIG_INET_XFRM_TUNNEL=m
717 718
 CONFIG_INET_TUNNEL=m
... ...
@@ -721,6 +796,7 @@ CONFIG_INET_XFRM_MODE_BEET=m
721 721
 CONFIG_INET_DIAG=m
722 722
 CONFIG_INET_TCP_DIAG=m
723 723
 CONFIG_INET_UDP_DIAG=m
724
+# CONFIG_INET_RAW_DIAG is not set
724 725
 # CONFIG_INET_DIAG_DESTROY is not set
725 726
 CONFIG_TCP_CONG_ADVANCED=y
726 727
 # CONFIG_TCP_CONG_BIC is not set
... ...
@@ -749,6 +825,7 @@ CONFIG_IPV6_ROUTE_INFO=y
749 749
 CONFIG_IPV6_OPTIMISTIC_DAD=y
750 750
 CONFIG_INET6_AH=m
751 751
 CONFIG_INET6_ESP=m
752
+# CONFIG_INET6_ESP_OFFLOAD is not set
752 753
 CONFIG_INET6_IPCOMP=m
753 754
 CONFIG_IPV6_MIP6=m
754 755
 # CONFIG_IPV6_ILA is not set
... ...
@@ -771,12 +848,13 @@ CONFIG_IPV6_SUBTREES=y
771 771
 CONFIG_IPV6_MROUTE=y
772 772
 CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
773 773
 CONFIG_IPV6_PIMSM_V2=y
774
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
775
+# CONFIG_IPV6_SEG6_HMAC is not set
774 776
 CONFIG_NETLABEL=y
775 777
 CONFIG_NETWORK_SECMARK=y
776 778
 CONFIG_NET_PTP_CLASSIFY=y
777 779
 CONFIG_NETWORK_PHY_TIMESTAMPING=y
778 780
 CONFIG_NETFILTER=y
779
-# CONFIG_NETFILTER_DEBUG is not set
780 781
 CONFIG_NETFILTER_ADVANCED=y
781 782
 CONFIG_BRIDGE_NETFILTER=m
782 783
 
... ...
@@ -790,6 +868,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=m
790 790
 CONFIG_NETFILTER_NETLINK_LOG=m
791 791
 CONFIG_NF_CONNTRACK=m
792 792
 CONFIG_NF_LOG_COMMON=m
793
+# CONFIG_NF_LOG_NETDEV is not set
793 794
 CONFIG_NF_CONNTRACK_MARK=y
794 795
 CONFIG_NF_CONNTRACK_SECMARK=y
795 796
 CONFIG_NF_CONNTRACK_ZONES=y
... ...
@@ -798,10 +877,10 @@ CONFIG_NF_CONNTRACK_EVENTS=y
798 798
 CONFIG_NF_CONNTRACK_TIMEOUT=y
799 799
 CONFIG_NF_CONNTRACK_TIMESTAMP=y
800 800
 CONFIG_NF_CONNTRACK_LABELS=y
801
-CONFIG_NF_CT_PROTO_DCCP=m
801
+CONFIG_NF_CT_PROTO_DCCP=y
802 802
 CONFIG_NF_CT_PROTO_GRE=m
803
-CONFIG_NF_CT_PROTO_SCTP=m
804
-CONFIG_NF_CT_PROTO_UDPLITE=m
803
+CONFIG_NF_CT_PROTO_SCTP=y
804
+CONFIG_NF_CT_PROTO_UDPLITE=y
805 805
 CONFIG_NF_CONNTRACK_AMANDA=m
806 806
 CONFIG_NF_CONNTRACK_FTP=m
807 807
 CONFIG_NF_CONNTRACK_H323=m
... ...
@@ -818,9 +897,9 @@ CONFIG_NF_CT_NETLINK_TIMEOUT=m
818 818
 # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
819 819
 CONFIG_NF_NAT=m
820 820
 CONFIG_NF_NAT_NEEDED=y
821
-CONFIG_NF_NAT_PROTO_DCCP=m
822
-CONFIG_NF_NAT_PROTO_UDPLITE=m
823
-CONFIG_NF_NAT_PROTO_SCTP=m
821
+CONFIG_NF_NAT_PROTO_DCCP=y
822
+CONFIG_NF_NAT_PROTO_UDPLITE=y
823
+CONFIG_NF_NAT_PROTO_SCTP=y
824 824
 CONFIG_NF_NAT_AMANDA=m
825 825
 CONFIG_NF_NAT_FTP=m
826 826
 CONFIG_NF_NAT_IRC=m
... ...
@@ -833,16 +912,19 @@ CONFIG_NF_TABLES_INET=m
833 833
 CONFIG_NF_TABLES_NETDEV=m
834 834
 CONFIG_NFT_EXTHDR=m
835 835
 CONFIG_NFT_META=m
836
+# CONFIG_NFT_RT is not set
836 837
 CONFIG_NFT_NUMGEN=m
837 838
 CONFIG_NFT_CT=m
838 839
 CONFIG_NFT_SET_RBTREE=m
839 840
 CONFIG_NFT_SET_HASH=m
841
+# CONFIG_NFT_SET_BITMAP is not set
840 842
 CONFIG_NFT_COUNTER=m
841 843
 CONFIG_NFT_LOG=m
842 844
 CONFIG_NFT_LIMIT=m
843 845
 CONFIG_NFT_MASQ=m
844 846
 CONFIG_NFT_REDIR=m
845 847
 CONFIG_NFT_NAT=m
848
+# CONFIG_NFT_OBJREF is not set
846 849
 CONFIG_NFT_QUEUE=m
847 850
 CONFIG_NFT_QUOTA=m
848 851
 CONFIG_NFT_REJECT=m
... ...
@@ -932,7 +1014,6 @@ CONFIG_NETFILTER_XT_MATCH_RATEEST=m
932 932
 CONFIG_NETFILTER_XT_MATCH_REALM=m
933 933
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
934 934
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
935
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
936 935
 CONFIG_NETFILTER_XT_MATCH_STATE=m
937 936
 CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
938 937
 CONFIG_NETFILTER_XT_MATCH_STRING=m
... ...
@@ -949,6 +1030,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
949 949
 CONFIG_IP_SET_HASH_IPPORT=m
950 950
 CONFIG_IP_SET_HASH_IPPORTIP=m
951 951
 CONFIG_IP_SET_HASH_IPPORTNET=m
952
+# CONFIG_IP_SET_HASH_IPMAC is not set
952 953
 CONFIG_IP_SET_HASH_MAC=m
953 954
 CONFIG_IP_SET_HASH_NETPORTNET=m
954 955
 CONFIG_IP_SET_HASH_NET=m
... ...
@@ -1004,10 +1086,12 @@ CONFIG_IP_VS_PE_SIP=m
1004 1004
 #
1005 1005
 CONFIG_NF_DEFRAG_IPV4=m
1006 1006
 CONFIG_NF_CONNTRACK_IPV4=m
1007
+# CONFIG_NF_SOCKET_IPV4 is not set
1007 1008
 CONFIG_NF_TABLES_IPV4=m
1008 1009
 # CONFIG_NFT_CHAIN_ROUTE_IPV4 is not set
1009 1010
 CONFIG_NFT_REJECT_IPV4=m
1010 1011
 # CONFIG_NFT_DUP_IPV4 is not set
1012
+# CONFIG_NFT_FIB_IPV4 is not set
1011 1013
 # CONFIG_NF_TABLES_ARP is not set
1012 1014
 CONFIG_NF_DUP_IPV4=m
1013 1015
 # CONFIG_NF_LOG_ARP is not set
... ...
@@ -1049,10 +1133,12 @@ CONFIG_IP_NF_ARP_MANGLE=m
1049 1049
 #
1050 1050
 CONFIG_NF_DEFRAG_IPV6=m
1051 1051
 CONFIG_NF_CONNTRACK_IPV6=m
1052
+# CONFIG_NF_SOCKET_IPV6 is not set
1052 1053
 CONFIG_NF_TABLES_IPV6=m
1053 1054
 CONFIG_NFT_CHAIN_ROUTE_IPV6=m
1054 1055
 CONFIG_NFT_REJECT_IPV6=m
1055 1056
 CONFIG_NFT_DUP_IPV6=m
1057
+# CONFIG_NFT_FIB_IPV6 is not set
1056 1058
 CONFIG_NF_DUP_IPV6=m
1057 1059
 CONFIG_NF_REJECT_IPV6=m
1058 1060
 CONFIG_NF_LOG_IPV6=m
... ...
@@ -1141,6 +1227,7 @@ CONFIG_BRIDGE=m
1141 1141
 CONFIG_BRIDGE_IGMP_SNOOPING=y
1142 1142
 CONFIG_BRIDGE_VLAN_FILTERING=y
1143 1143
 CONFIG_HAVE_NET_DSA=y
1144
+# CONFIG_NET_DSA is not set
1144 1145
 CONFIG_VLAN_8021Q=m
1145 1146
 CONFIG_VLAN_8021Q_GVRP=y
1146 1147
 CONFIG_VLAN_8021Q_MVRP=y
... ...
@@ -1183,6 +1270,7 @@ CONFIG_NET_SCH_FQ=m
1183 1183
 # CONFIG_NET_SCH_PIE is not set
1184 1184
 CONFIG_NET_SCH_INGRESS=m
1185 1185
 CONFIG_NET_SCH_PLUG=m
1186
+# CONFIG_NET_SCH_DEFAULT is not set
1186 1187
 
1187 1188
 #
1188 1189
 # Classification
... ...
@@ -1215,6 +1303,7 @@ CONFIG_NET_ACT_POLICE=m
1215 1215
 CONFIG_NET_ACT_GACT=m
1216 1216
 CONFIG_GACT_PROB=y
1217 1217
 CONFIG_NET_ACT_MIRRED=m
1218
+# CONFIG_NET_ACT_SAMPLE is not set
1218 1219
 CONFIG_NET_ACT_IPT=m
1219 1220
 CONFIG_NET_ACT_NAT=m
1220 1221
 CONFIG_NET_ACT_PEDIT=m
... ...
@@ -1243,6 +1332,7 @@ CONFIG_NETLINK_DIAG=m
1243 1243
 CONFIG_MPLS=y
1244 1244
 CONFIG_NET_MPLS_GSO=m
1245 1245
 # CONFIG_MPLS_ROUTING is not set
1246
+# CONFIG_NET_NSH is not set
1246 1247
 # CONFIG_HSR is not set
1247 1248
 # CONFIG_NET_SWITCHDEV is not set
1248 1249
 CONFIG_NET_L3_MASTER_DEV=y
... ...
@@ -1251,7 +1341,6 @@ CONFIG_NET_L3_MASTER_DEV=y
1251 1251
 CONFIG_RPS=y
1252 1252
 CONFIG_RFS_ACCEL=y
1253 1253
 CONFIG_XPS=y
1254
-CONFIG_SOCK_CGROUP_DATA=y
1255 1254
 CONFIG_CGROUP_NET_PRIO=y
1256 1255
 CONFIG_CGROUP_NET_CLASSID=y
1257 1256
 CONFIG_NET_RX_BUSY_POLL=y
... ...
@@ -1267,26 +1356,52 @@ CONFIG_NET_FLOW_LIMIT=y
1267 1267
 CONFIG_NET_DROP_MONITOR=m
1268 1268
 # CONFIG_HAMRADIO is not set
1269 1269
 # CONFIG_CAN is not set
1270
-# CONFIG_IRDA is not set
1271 1270
 # CONFIG_BT is not set
1272 1271
 # CONFIG_AF_RXRPC is not set
1273 1272
 # CONFIG_AF_KCM is not set
1274 1273
 # CONFIG_STREAM_PARSER is not set
1275 1274
 CONFIG_FIB_RULES=y
1276
-# CONFIG_WIRELESS is not set
1275
+CONFIG_WIRELESS=y
1276
+CONFIG_WEXT_CORE=y
1277
+CONFIG_WEXT_PROC=y
1278
+CONFIG_CFG80211=m
1279
+# CONFIG_NL80211_TESTMODE is not set
1280
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
1281
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
1282
+CONFIG_CFG80211_DEFAULT_PS=y
1283
+# CONFIG_CFG80211_DEBUGFS is not set
1284
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
1285
+CONFIG_CFG80211_CRDA_SUPPORT=y
1286
+CONFIG_CFG80211_WEXT=y
1287
+# CONFIG_LIB80211 is not set
1288
+CONFIG_MAC80211=m
1289
+CONFIG_MAC80211_HAS_RC=y
1290
+CONFIG_MAC80211_RC_MINSTREL=y
1291
+CONFIG_MAC80211_RC_MINSTREL_HT=y
1292
+# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
1293
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
1294
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
1295
+# CONFIG_MAC80211_MESH is not set
1296
+# CONFIG_MAC80211_DEBUGFS is not set
1297
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
1298
+# CONFIG_MAC80211_DEBUG_MENU is not set
1299
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
1277 1300
 # CONFIG_WIMAX is not set
1278 1301
 # CONFIG_RFKILL is not set
1279
-# CONFIG_RFKILL_REGULATOR is not set
1280 1302
 CONFIG_NET_9P=m
1281 1303
 CONFIG_NET_9P_VIRTIO=m
1304
+# CONFIG_NET_9P_XEN is not set
1282 1305
 # CONFIG_NET_9P_DEBUG is not set
1283 1306
 # CONFIG_CAIF is not set
1284 1307
 CONFIG_CEPH_LIB=m
1285 1308
 # CONFIG_CEPH_LIB_PRETTYDEBUG is not set
1286 1309
 # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
1287 1310
 # CONFIG_NFC is not set
1311
+# CONFIG_PSAMPLE is not set
1312
+# CONFIG_NET_IFE is not set
1288 1313
 # CONFIG_LWTUNNEL is not set
1289 1314
 CONFIG_DST_CACHE=y
1315
+CONFIG_GRO_CELLS=y
1290 1316
 # CONFIG_NET_DEVLINK is not set
1291 1317
 CONFIG_MAY_USE_DEVLINK=y
1292 1318
 CONFIG_HAVE_EBPF_JIT=y
... ...
@@ -1314,16 +1429,29 @@ CONFIG_ALLOW_DEV_COREDUMP=y
1314 1314
 # CONFIG_DEBUG_DRIVER is not set
1315 1315
 # CONFIG_DEBUG_DEVRES is not set
1316 1316
 # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
1317
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
1317 1318
 CONFIG_SYS_HYPERVISOR=y
1318 1319
 # CONFIG_GENERIC_CPU_DEVICES is not set
1319 1320
 CONFIG_GENERIC_CPU_AUTOPROBE=y
1321
+CONFIG_SOC_BUS=y
1320 1322
 CONFIG_REGMAP=y
1321 1323
 CONFIG_REGMAP_I2C=y
1322 1324
 CONFIG_REGMAP_SPI=y
1323 1325
 CONFIG_REGMAP_MMIO=y
1324 1326
 CONFIG_DMA_SHARED_BUFFER=y
1325
-# CONFIG_FENCE_TRACE is not set
1326
-# CONFIG_DMA_CMA is not set
1327
+# CONFIG_DMA_FENCE_TRACE is not set
1328
+CONFIG_DMA_CMA=y
1329
+
1330
+#
1331
+# Default contiguous memory area size:
1332
+#
1333
+CONFIG_CMA_SIZE_MBYTES=16
1334
+CONFIG_CMA_SIZE_SEL_MBYTES=y
1335
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
1336
+# CONFIG_CMA_SIZE_SEL_MIN is not set
1337
+# CONFIG_CMA_SIZE_SEL_MAX is not set
1338
+CONFIG_CMA_ALIGNMENT=8
1339
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
1327 1340
 
1328 1341
 #
1329 1342
 # Bus devices
... ...
@@ -1334,9 +1462,12 @@ CONFIG_ARM_CCI400_COMMON=y
1334 1334
 CONFIG_ARM_CCI400_PMU=y
1335 1335
 CONFIG_ARM_CCI5xx_PMU=y
1336 1336
 CONFIG_ARM_CCN=y
1337
+CONFIG_BRCMSTB_GISB_ARB=y
1337 1338
 CONFIG_QCOM_EBI2=y
1339
+# CONFIG_SIMPLE_PM_BUS is not set
1338 1340
 CONFIG_SUNXI_RSB=m
1339 1341
 # CONFIG_TEGRA_ACONNECT is not set
1342
+# CONFIG_TEGRA_GMI is not set
1340 1343
 CONFIG_VEXPRESS_CONFIG=y
1341 1344
 CONFIG_CONNECTOR=m
1342 1345
 # CONFIG_MTD is not set
... ...
@@ -1369,7 +1500,6 @@ CONFIG_BLK_DEV=y
1369 1369
 # CONFIG_BLK_DEV_NULL_BLK is not set
1370 1370
 # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
1371 1371
 # CONFIG_ZRAM is not set
1372
-# CONFIG_BLK_CPQ_CISS_DA is not set
1373 1372
 # CONFIG_BLK_DEV_DAC960 is not set
1374 1373
 # CONFIG_BLK_DEV_UMEM is not set
1375 1374
 # CONFIG_BLK_DEV_COW_COMMON is not set
... ...
@@ -1379,7 +1509,6 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
1379 1379
 # CONFIG_BLK_DEV_DRBD is not set
1380 1380
 # CONFIG_BLK_DEV_NBD is not set
1381 1381
 # CONFIG_BLK_DEV_SKD is not set
1382
-# CONFIG_BLK_DEV_OSD is not set
1383 1382
 # CONFIG_BLK_DEV_SX8 is not set
1384 1383
 CONFIG_BLK_DEV_RAM=y
1385 1384
 CONFIG_BLK_DEV_RAM_COUNT=16
... ...
@@ -1390,14 +1519,16 @@ CONFIG_BLK_DEV_RAM_DAX=y
1390 1390
 CONFIG_XEN_BLKDEV_FRONTEND=m
1391 1391
 CONFIG_XEN_BLKDEV_BACKEND=m
1392 1392
 CONFIG_VIRTIO_BLK=m
1393
+# CONFIG_VIRTIO_BLK_SCSI is not set
1393 1394
 CONFIG_BLK_DEV_RBD=m
1394 1395
 # CONFIG_BLK_DEV_RSXX is not set
1395 1396
 CONFIG_NVME_CORE=y
1396 1397
 CONFIG_BLK_DEV_NVME=y
1397
-# CONFIG_BLK_DEV_NVME_SCSI is not set
1398 1398
 CONFIG_NVME_FABRICS=m
1399
+# CONFIG_NVME_FC is not set
1399 1400
 CONFIG_NVME_TARGET=m
1400 1401
 CONFIG_NVME_TARGET_LOOP=m
1402
+# CONFIG_NVME_TARGET_FC is not set
1401 1403
 
1402 1404
 #
1403 1405
 # Misc devices
... ...
@@ -1424,6 +1555,7 @@ CONFIG_NVME_TARGET_LOOP=m
1424 1424
 # CONFIG_LATTICE_ECP3_CONFIG is not set
1425 1425
 # CONFIG_SRAM is not set
1426 1426
 CONFIG_VEXPRESS_SYSCFG=y
1427
+# CONFIG_PCI_ENDPOINT_TEST is not set
1427 1428
 # CONFIG_C2PORT is not set
1428 1429
 
1429 1430
 #
... ...
@@ -1435,6 +1567,7 @@ CONFIG_VEXPRESS_SYSCFG=y
1435 1435
 # CONFIG_EEPROM_MAX6875 is not set
1436 1436
 CONFIG_EEPROM_93CX6=m
1437 1437
 # CONFIG_EEPROM_93XX46 is not set
1438
+# CONFIG_EEPROM_IDT_89HPESX is not set
1438 1439
 # CONFIG_CB710_CORE is not set
1439 1440
 
1440 1441
 #
... ...
@@ -1483,6 +1616,7 @@ CONFIG_EEPROM_93CX6=m
1483 1483
 # CONFIG_ECHO is not set
1484 1484
 # CONFIG_CXL_BASE is not set
1485 1485
 # CONFIG_CXL_AFU_DRIVER_OPS is not set
1486
+# CONFIG_CXL_LIB is not set
1486 1487
 
1487 1488
 #
1488 1489
 # SCSI device support
... ...
@@ -1549,6 +1683,7 @@ CONFIG_AIC79XX_REG_PRETTY_PRINT=y
1549 1549
 CONFIG_SCSI_AIC94XX=m
1550 1550
 CONFIG_AIC94XX_DEBUG=y
1551 1551
 CONFIG_SCSI_HISI_SAS=m
1552
+# CONFIG_SCSI_HISI_SAS_PCI is not set
1552 1553
 CONFIG_SCSI_MVSAS=m
1553 1554
 CONFIG_SCSI_MVSAS_DEBUG=y
1554 1555
 CONFIG_SCSI_MVSAS_TASKLET=y
... ...
@@ -1631,6 +1766,7 @@ CONFIG_SATA_AHCI=y
1631 1631
 CONFIG_SATA_AHCI_PLATFORM=m
1632 1632
 CONFIG_AHCI_BRCM=m
1633 1633
 # CONFIG_AHCI_CEVA is not set
1634
+# CONFIG_AHCI_MTK is not set
1634 1635
 CONFIG_AHCI_MVEBU=m
1635 1636
 CONFIG_AHCI_SUNXI=m
1636 1637
 CONFIG_AHCI_TEGRA=m
... ...
@@ -1734,7 +1870,7 @@ CONFIG_BLK_DEV_DM=m
1734 1734
 # CONFIG_DM_MQ_DEFAULT is not set
1735 1735
 # CONFIG_DM_DEBUG is not set
1736 1736
 CONFIG_DM_BUFIO=m
1737
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
1737
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
1738 1738
 CONFIG_DM_BIO_PRISON=m
1739 1739
 CONFIG_DM_PERSISTENT_DATA=m
1740 1740
 CONFIG_DM_CRYPT=m
... ...
@@ -1756,6 +1892,7 @@ CONFIG_DM_VERITY=m
1756 1756
 # CONFIG_DM_VERITY_FEC is not set
1757 1757
 # CONFIG_DM_SWITCH is not set
1758 1758
 # CONFIG_DM_LOG_WRITES is not set
1759
+# CONFIG_DM_INTEGRITY is not set
1759 1760
 # CONFIG_TARGET_CORE is not set
1760 1761
 CONFIG_FUSION=y
1761 1762
 CONFIG_FUSION_SPI=y
... ...
@@ -1782,6 +1919,7 @@ CONFIG_DUMMY=m
1782 1782
 CONFIG_MACVLAN=m
1783 1783
 CONFIG_MACVTAP=m
1784 1784
 CONFIG_IPVLAN=m
1785
+# CONFIG_IPVTAP is not set
1785 1786
 CONFIG_VXLAN=m
1786 1787
 CONFIG_GENEVE=m
1787 1788
 # CONFIG_GTP is not set
... ...
@@ -1791,11 +1929,13 @@ CONFIG_NETCONSOLE_DYNAMIC=y
1791 1791
 CONFIG_NETPOLL=y
1792 1792
 CONFIG_NET_POLL_CONTROLLER=y
1793 1793
 CONFIG_TUN=m
1794
+CONFIG_TAP=m
1794 1795
 # CONFIG_TUN_VNET_CROSS_LE is not set
1795 1796
 CONFIG_VETH=y
1796 1797
 CONFIG_VIRTIO_NET=y
1797 1798
 # CONFIG_NLMON is not set
1798 1799
 # CONFIG_NET_VRF is not set
1800
+# CONFIG_VSOCKMON is not set
1799 1801
 # CONFIG_ARCNET is not set
1800 1802
 
1801 1803
 #
... ...
@@ -1811,6 +1951,7 @@ CONFIG_MDIO=m
1811 1811
 # CONFIG_NET_VENDOR_ADAPTEC is not set
1812 1812
 CONFIG_NET_VENDOR_AGERE=y
1813 1813
 # CONFIG_ET131X is not set
1814
+# CONFIG_NET_VENDOR_ALACRITECH is not set
1814 1815
 CONFIG_NET_VENDOR_ALLWINNER=y
1815 1816
 # CONFIG_SUN4I_EMAC is not set
1816 1817
 CONFIG_NET_VENDOR_ALTEON=y
... ...
@@ -1822,7 +1963,10 @@ CONFIG_NET_VENDOR_AMD=y
1822 1822
 CONFIG_AMD8111_ETH=m
1823 1823
 CONFIG_PCNET32=m
1824 1824
 # CONFIG_AMD_XGBE is not set
1825
+# CONFIG_AMD_XGBE_HAVE_ECC is not set
1825 1826
 # CONFIG_NET_XGENE is not set
1827
+# CONFIG_NET_XGENE_V2 is not set
1828
+# CONFIG_NET_VENDOR_AQUANTIA is not set
1826 1829
 # CONFIG_NET_VENDOR_ARC is not set
1827 1830
 CONFIG_NET_VENDOR_ATHEROS=y
1828 1831
 CONFIG_ATL2=m
... ...
@@ -1842,6 +1986,7 @@ CONFIG_B44_PCI=y
1842 1842
 CONFIG_BNX2=m
1843 1843
 CONFIG_CNIC=m
1844 1844
 CONFIG_TIGON3=m
1845
+CONFIG_TIGON3_HWMON=y
1845 1846
 CONFIG_BNX2X=m
1846 1847
 CONFIG_BNX2X_SRIOV=y
1847 1848
 CONFIG_BGMAC=y
... ...
@@ -1856,6 +2001,7 @@ CONFIG_NET_VENDOR_CAVIUM=y
1856 1856
 # CONFIG_THUNDER_NIC_BGX is not set
1857 1857
 # CONFIG_THUNDER_NIC_RGX is not set
1858 1858
 # CONFIG_LIQUIDIO is not set
1859
+# CONFIG_LIQUIDIO_VF is not set
1859 1860
 CONFIG_NET_VENDOR_CHELSIO=y
1860 1861
 CONFIG_CHELSIO_T1=m
1861 1862
 CONFIG_CHELSIO_T1_1G=y
... ...
@@ -1892,6 +2038,7 @@ CONFIG_S2IO=m
1892 1892
 CONFIG_VXGE=m
1893 1893
 # CONFIG_VXGE_DEBUG_TRACE_ALL is not set
1894 1894
 CONFIG_NET_VENDOR_FREESCALE=y
1895
+# CONFIG_FSL_FMAN is not set
1895 1896
 # CONFIG_FSL_PQ_MDIO is not set
1896 1897
 # CONFIG_FSL_XGMAC_MDIO is not set
1897 1898
 # CONFIG_GIANFAR is not set
... ...
@@ -1902,8 +2049,10 @@ CONFIG_NET_VENDOR_HISILICON=y
1902 1902
 # CONFIG_HNS is not set
1903 1903
 # CONFIG_HNS_DSAF is not set
1904 1904
 # CONFIG_HNS_ENET is not set
1905
+# CONFIG_HNS3 is not set
1905 1906
 CONFIG_NET_VENDOR_HP=y
1906 1907
 CONFIG_HP100=m
1908
+# CONFIG_NET_VENDOR_HUAWEI is not set
1907 1909
 CONFIG_NET_VENDOR_INTEL=y
1908 1910
 CONFIG_E100=m
1909 1911
 CONFIG_E1000=y
... ...
@@ -1918,14 +2067,14 @@ CONFIG_IXGBE_DCB=y
1918 1918
 CONFIG_IXGBEVF=m
1919 1919
 CONFIG_I40E=m
1920 1920
 CONFIG_I40E_DCB=y
1921
-# CONFIG_I40E_FCOE is not set
1922 1921
 CONFIG_I40EVF=m
1923 1922
 CONFIG_FM10K=m
1924 1923
 CONFIG_NET_VENDOR_I825XX=y
1925 1924
 CONFIG_JME=m
1926 1925
 CONFIG_NET_VENDOR_MARVELL=y
1927 1926
 # CONFIG_MVMDIO is not set
1928
-# CONFIG_MVNETA_BM is not set
1927
+# CONFIG_MVNETA is not set
1928
+# CONFIG_MVPP2 is not set
1929 1929
 # CONFIG_PXA168_ETH is not set
1930 1930
 CONFIG_SKGE=m
1931 1931
 # CONFIG_SKGE_DEBUG is not set
... ...
@@ -1940,6 +2089,7 @@ CONFIG_MLX4_CORE=m
1940 1940
 CONFIG_MLX4_DEBUG=y
1941 1941
 # CONFIG_MLX5_CORE is not set
1942 1942
 # CONFIG_MLXSW_CORE is not set
1943
+# CONFIG_MLXFW is not set
1943 1944
 # CONFIG_NET_VENDOR_MICREL is not set
1944 1945
 CONFIG_NET_VENDOR_MICROCHIP=y
1945 1946
 # CONFIG_ENC28J60 is not set
... ...
@@ -1961,8 +2111,9 @@ CONFIG_NET_VENDOR_QLOGIC=y
1961 1961
 CONFIG_NETXEN_NIC=m
1962 1962
 # CONFIG_QED is not set
1963 1963
 CONFIG_NET_VENDOR_QUALCOMM=y
1964
-# CONFIG_QCA7000 is not set
1964
+# CONFIG_QCA7000_SPI is not set
1965 1965
 # CONFIG_QCOM_EMAC is not set
1966
+# CONFIG_RMNET is not set
1966 1967
 CONFIG_NET_VENDOR_REALTEK=y
1967 1968
 CONFIG_8139CP=m
1968 1969
 CONFIG_8139TOO=m
... ...
@@ -1979,24 +2130,20 @@ CONFIG_NET_VENDOR_SAMSUNG=y
1979 1979
 # CONFIG_NET_VENDOR_SEEQ is not set
1980 1980
 # CONFIG_NET_VENDOR_SILAN is not set
1981 1981
 # CONFIG_NET_VENDOR_SIS is not set
1982
-# CONFIG_SFC is not set
1982
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
1983 1983
 # CONFIG_NET_VENDOR_SMSC is not set
1984 1984
 # CONFIG_NET_VENDOR_STMICRO is not set
1985 1985
 # CONFIG_NET_VENDOR_SUN is not set
1986
-# CONFIG_NET_VENDOR_SYNOPSYS is not set
1987 1986
 # CONFIG_NET_VENDOR_TEHUTI is not set
1988 1987
 # CONFIG_NET_VENDOR_TI is not set
1989 1988
 # CONFIG_NET_VENDOR_VIA is not set
1990 1989
 # CONFIG_NET_VENDOR_WIZNET is not set
1990
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
1991 1991
 # CONFIG_FDDI is not set
1992 1992
 # CONFIG_HIPPI is not set
1993 1993
 # CONFIG_NET_SB1000 is not set
1994
-CONFIG_PHYLIB=y
1995
-CONFIG_SWPHY=y
1996
-
1997
-#
1998
-# MDIO bus device drivers
1999
-#
1994
+CONFIG_MDIO_DEVICE=y
1995
+CONFIG_MDIO_BUS=y
2000 1996
 # CONFIG_MDIO_BCM_IPROC is not set
2001 1997
 # CONFIG_MDIO_BCM_UNIMAC is not set
2002 1998
 # CONFIG_MDIO_BITBANG is not set
... ...
@@ -2009,6 +2156,8 @@ CONFIG_MDIO_BUS_MUX_BCM_IPROC=y
2009 2009
 # CONFIG_MDIO_SUN4I is not set
2010 2010
 # CONFIG_MDIO_THUNDER is not set
2011 2011
 # CONFIG_MDIO_XGENE is not set
2012
+CONFIG_PHYLIB=y
2013
+CONFIG_SWPHY=y
2012 2014
 
2013 2015
 #
2014 2016
 # MII PHY device drivers
... ...
@@ -2021,6 +2170,7 @@ CONFIG_BCM87XX_PHY=m
2021 2021
 CONFIG_BCM_NET_PHYLIB=m
2022 2022
 CONFIG_BROADCOM_PHY=m
2023 2023
 # CONFIG_CICADA_PHY is not set
2024
+# CONFIG_CORTINA_PHY is not set
2024 2025
 # CONFIG_DAVICOM_PHY is not set
2025 2026
 # CONFIG_DP83848_PHY is not set
2026 2027
 # CONFIG_DP83867_PHY is not set
... ...
@@ -2030,12 +2180,15 @@ CONFIG_FIXED_PHY=y
2030 2030
 CONFIG_LSI_ET1011C_PHY=m
2031 2031
 CONFIG_LXT_PHY=m
2032 2032
 CONFIG_MARVELL_PHY=m
2033
+# CONFIG_MARVELL_10G_PHY is not set
2034
+# CONFIG_MESON_GXL_PHY is not set
2033 2035
 CONFIG_MICREL_PHY=m
2034 2036
 # CONFIG_MICROCHIP_PHY is not set
2035 2037
 # CONFIG_MICROSEMI_PHY is not set
2036 2038
 CONFIG_NATIONAL_PHY=m
2037 2039
 # CONFIG_QSEMI_PHY is not set
2038 2040
 CONFIG_REALTEK_PHY=m
2041
+# CONFIG_ROCKCHIP_PHY is not set
2039 2042
 # CONFIG_SMSC_PHY is not set
2040 2043
 CONFIG_STE10XP=m
2041 2044
 # CONFIG_TERANETICS_PHY is not set
... ...
@@ -2082,7 +2235,53 @@ CONFIG_USB_NET_SMSC95XX=m
2082 2082
 # CONFIG_USB_IPHETH is not set
2083 2083
 # CONFIG_USB_SIERRA_NET is not set
2084 2084
 # CONFIG_USB_NET_CH9200 is not set
2085
-# CONFIG_WLAN is not set
2085
+CONFIG_WLAN=y
2086
+# CONFIG_WIRELESS_WDS is not set
2087
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
2088
+# CONFIG_WLAN_VENDOR_ATH is not set
2089
+# CONFIG_WLAN_VENDOR_ATMEL is not set
2090
+CONFIG_WLAN_VENDOR_BROADCOM=y
2091
+CONFIG_B43=m
2092
+CONFIG_B43_BCMA=y
2093
+CONFIG_B43_SSB=y
2094
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
2095
+# CONFIG_B43_BUSES_BCMA is not set
2096
+# CONFIG_B43_BUSES_SSB is not set
2097
+CONFIG_B43_PCI_AUTOSELECT=y
2098
+CONFIG_B43_PCICORE_AUTOSELECT=y
2099
+CONFIG_B43_SDIO=y
2100
+CONFIG_B43_BCMA_PIO=y
2101
+CONFIG_B43_PIO=y
2102
+CONFIG_B43_PHY_G=y
2103
+CONFIG_B43_PHY_N=y
2104
+CONFIG_B43_PHY_LP=y
2105
+CONFIG_B43_PHY_HT=y
2106
+CONFIG_B43_HWRNG=y
2107
+# CONFIG_B43_DEBUG is not set
2108
+# CONFIG_B43LEGACY is not set
2109
+CONFIG_BRCMUTIL=m
2110
+# CONFIG_BRCMSMAC is not set
2111
+CONFIG_BRCMFMAC=m
2112
+CONFIG_BRCMFMAC_PROTO_BCDC=y
2113
+CONFIG_BRCMFMAC_SDIO=y
2114
+CONFIG_BRCMFMAC_USB=y
2115
+# CONFIG_BRCMFMAC_PCIE is not set
2116
+# CONFIG_BRCM_TRACING is not set
2117
+# CONFIG_BRCMDBG is not set
2118
+# CONFIG_WLAN_VENDOR_CISCO is not set
2119
+# CONFIG_WLAN_VENDOR_INTEL is not set
2120
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
2121
+# CONFIG_WLAN_VENDOR_MARVELL is not set
2122
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
2123
+# CONFIG_WLAN_VENDOR_RALINK is not set
2124
+# CONFIG_WLAN_VENDOR_REALTEK is not set
2125
+# CONFIG_WLAN_VENDOR_RSI is not set
2126
+# CONFIG_WLAN_VENDOR_ST is not set
2127
+# CONFIG_WLAN_VENDOR_TI is not set
2128
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
2129
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
2130
+# CONFIG_MAC80211_HWSIM is not set
2131
+# CONFIG_USB_NET_RNDIS_WLAN is not set
2086 2132
 
2087 2133
 #
2088 2134
 # Enable WiMAX (Networking options) to see the WiMAX drivers
... ...
@@ -2124,6 +2323,7 @@ CONFIG_INPUT_KEYBOARD=y
2124 2124
 CONFIG_KEYBOARD_ATKBD=y
2125 2125
 # CONFIG_KEYBOARD_QT1070 is not set
2126 2126
 # CONFIG_KEYBOARD_QT2160 is not set
2127
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
2127 2128
 # CONFIG_KEYBOARD_LKKBD is not set
2128 2129
 # CONFIG_KEYBOARD_GPIO is not set
2129 2130
 # CONFIG_KEYBOARD_GPIO_POLLED is not set
... ...
@@ -2151,6 +2351,7 @@ CONFIG_MOUSE_PS2_ALPS=y
2151 2151
 # CONFIG_MOUSE_PS2_BYD is not set
2152 2152
 CONFIG_MOUSE_PS2_LOGIPS2PP=y
2153 2153
 CONFIG_MOUSE_PS2_SYNAPTICS=y
2154
+# CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS is not set
2154 2155
 CONFIG_MOUSE_PS2_CYPRESS=y
2155 2156
 CONFIG_MOUSE_PS2_TRACKPOINT=y
2156 2157
 # CONFIG_MOUSE_PS2_ELANTECH is not set
... ...
@@ -2175,7 +2376,6 @@ CONFIG_INPUT_MISC=y
2175 2175
 # CONFIG_INPUT_BMA150 is not set
2176 2176
 # CONFIG_INPUT_E3X0_BUTTON is not set
2177 2177
 # CONFIG_INPUT_MMA8450 is not set
2178
-# CONFIG_INPUT_MPU3050 is not set
2179 2178
 # CONFIG_INPUT_GP2A is not set
2180 2179
 # CONFIG_INPUT_GPIO_BEEPER is not set
2181 2180
 # CONFIG_INPUT_GPIO_TILT_POLLED is not set
... ...
@@ -2190,6 +2390,7 @@ CONFIG_INPUT_MISC=y
2190 2190
 # CONFIG_INPUT_UINPUT is not set
2191 2191
 # CONFIG_INPUT_PCF8574 is not set
2192 2192
 # CONFIG_INPUT_PWM_BEEPER is not set
2193
+# CONFIG_INPUT_PWM_VIBRA is not set
2193 2194
 # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
2194 2195
 # CONFIG_INPUT_ADXL34X is not set
2195 2196
 # CONFIG_INPUT_CMA3000 is not set
... ...
@@ -2214,6 +2415,7 @@ CONFIG_SERIO_LIBPS2=y
2214 2214
 # CONFIG_SERIO_ARC_PS2 is not set
2215 2215
 # CONFIG_SERIO_APBPS2 is not set
2216 2216
 # CONFIG_SERIO_SUN4I_PS2 is not set
2217
+# CONFIG_SERIO_GPIO_PS2 is not set
2217 2218
 # CONFIG_USERIO is not set
2218 2219
 # CONFIG_GAMEPORT is not set
2219 2220
 
... ...
@@ -2234,7 +2436,6 @@ CONFIG_UNIX98_PTYS=y
2234 2234
 # CONFIG_N_GSM is not set
2235 2235
 # CONFIG_TRACE_SINK is not set
2236 2236
 CONFIG_DEVMEM=y
2237
-# CONFIG_DEVKMEM is not set
2238 2237
 
2239 2238
 #
2240 2239
 # Serial drivers
... ...
@@ -2247,10 +2448,12 @@ CONFIG_SERIAL_8250_PNP=y
2247 2247
 CONFIG_SERIAL_8250_CONSOLE=y
2248 2248
 CONFIG_SERIAL_8250_DMA=y
2249 2249
 CONFIG_SERIAL_8250_PCI=y
2250
+# CONFIG_SERIAL_8250_EXAR is not set
2250 2251
 CONFIG_SERIAL_8250_NR_UARTS=32
2251 2252
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
2252 2253
 CONFIG_SERIAL_8250_EXTENDED=y
2253 2254
 CONFIG_SERIAL_8250_MANY_PORTS=y
2255
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
2254 2256
 CONFIG_SERIAL_8250_SHARE_IRQ=y
2255 2257
 # CONFIG_SERIAL_8250_DETECT_IRQ is not set
2256 2258
 CONFIG_SERIAL_8250_RSA=y
... ...
@@ -2289,6 +2492,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
2289 2289
 # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
2290 2290
 # CONFIG_SERIAL_SPRD is not set
2291 2291
 # CONFIG_SERIAL_MVEBU_UART is not set
2292
+# CONFIG_SERIAL_DEV_BUS is not set
2292 2293
 # CONFIG_TTY_PRINTK is not set
2293 2294
 CONFIG_HVC_DRIVER=y
2294 2295
 CONFIG_HVC_IRQ=y
... ...
@@ -2297,6 +2501,7 @@ CONFIG_HVC_XEN_FRONTEND=y
2297 2297
 # CONFIG_HVC_DCC is not set
2298 2298
 CONFIG_VIRTIO_CONSOLE=m
2299 2299
 CONFIG_IPMI_HANDLER=m
2300
+CONFIG_IPMI_DMI_DECODE=y
2300 2301
 CONFIG_IPMI_PANIC_EVENT=y
2301 2302
 CONFIG_IPMI_PANIC_STRING=y
2302 2303
 CONFIG_IPMI_DEVICE_INTERFACE=m
... ...
@@ -2308,14 +2513,15 @@ CONFIG_HW_RANDOM=m
2308 2308
 CONFIG_HW_RANDOM_TIMERIOMEM=m
2309 2309
 CONFIG_HW_RANDOM_BCM2835=m
2310 2310
 CONFIG_HW_RANDOM_IPROC_RNG200=m
2311
+# CONFIG_HW_RANDOM_OMAP is not set
2311 2312
 CONFIG_HW_RANDOM_VIRTIO=m
2312
-CONFIG_HW_RANDOM_EXYNOS=m
2313 2313
 CONFIG_HW_RANDOM_TPM=m
2314 2314
 CONFIG_HW_RANDOM_HISI=m
2315 2315
 CONFIG_HW_RANDOM_MSM=m
2316 2316
 CONFIG_HW_RANDOM_XGENE=m
2317 2317
 CONFIG_HW_RANDOM_MESON=m
2318 2318
 CONFIG_HW_RANDOM_CAVIUM=m
2319
+# CONFIG_HW_RANDOM_MTK is not set
2319 2320
 # CONFIG_R3964 is not set
2320 2321
 # CONFIG_APPLICOM is not set
2321 2322
 
... ...
@@ -2326,6 +2532,7 @@ CONFIG_RAW_DRIVER=m
2326 2326
 CONFIG_MAX_RAW_DEVS=8192
2327 2327
 # CONFIG_HPET is not set
2328 2328
 CONFIG_TCG_TPM=m
2329
+# CONFIG_TCG_TIS is not set
2329 2330
 # CONFIG_TCG_TIS_SPI is not set
2330 2331
 CONFIG_TCG_TIS_I2C_ATMEL=m
2331 2332
 CONFIG_TCG_TIS_I2C_INFINEON=m
... ...
@@ -2333,6 +2540,7 @@ CONFIG_TCG_TIS_I2C_NUVOTON=m
2333 2333
 CONFIG_TCG_ATMEL=m
2334 2334
 CONFIG_TCG_INFINEON=m
2335 2335
 CONFIG_TCG_XEN=m
2336
+# CONFIG_TCG_CRB is not set
2336 2337
 # CONFIG_TCG_VTPM_PROXY is not set
2337 2338
 # CONFIG_TCG_TIS_ST33ZP24_I2C is not set
2338 2339
 # CONFIG_TCG_TIS_ST33ZP24_SPI is not set
... ...
@@ -2347,7 +2555,21 @@ CONFIG_ACPI_I2C_OPREGION=y
2347 2347
 CONFIG_I2C_BOARDINFO=y
2348 2348
 # CONFIG_I2C_COMPAT is not set
2349 2349
 # CONFIG_I2C_CHARDEV is not set
2350
-# CONFIG_I2C_MUX is not set
2350
+CONFIG_I2C_MUX=m
2351
+
2352
+#
2353
+# Multiplexer I2C Chip support
2354
+#
2355
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
2356
+# CONFIG_I2C_MUX_GPIO is not set
2357
+# CONFIG_I2C_MUX_GPMUX is not set
2358
+# CONFIG_I2C_MUX_LTC4306 is not set
2359
+# CONFIG_I2C_MUX_PCA9541 is not set
2360
+# CONFIG_I2C_MUX_PCA954x is not set
2361
+# CONFIG_I2C_MUX_PINCTRL is not set
2362
+# CONFIG_I2C_MUX_REG is not set
2363
+# CONFIG_I2C_DEMUX_PINCTRL is not set
2364
+# CONFIG_I2C_MUX_MLXCPLD is not set
2351 2365
 CONFIG_I2C_HELPER_AUTO=y
2352 2366
 CONFIG_I2C_SMBUS=m
2353 2367
 CONFIG_I2C_ALGOBIT=y
... ...
@@ -2400,15 +2622,16 @@ CONFIG_I2C_MV64XXX=m
2400 2400
 # CONFIG_I2C_NOMADIK is not set
2401 2401
 # CONFIG_I2C_OCORES is not set
2402 2402
 # CONFIG_I2C_PCA_PLATFORM is not set
2403
+# CONFIG_I2C_PXA is not set
2403 2404
 # CONFIG_I2C_PXA_PCI is not set
2404 2405
 CONFIG_I2C_QUP=m
2405 2406
 CONFIG_I2C_RK3X=m
2406 2407
 # CONFIG_I2C_SIMTEC is not set
2408
+# CONFIG_I2C_SPRD is not set
2407 2409
 CONFIG_I2C_TEGRA=m
2408 2410
 # CONFIG_I2C_VERSATILE is not set
2409 2411
 CONFIG_I2C_THUNDERX=m
2410 2412
 # CONFIG_I2C_XILINX is not set
2411
-# CONFIG_I2C_XLP9XX is not set
2412 2413
 
2413 2414
 #
2414 2415
 # External I2C/SMBus adapter drivers
... ...
@@ -2436,6 +2659,7 @@ CONFIG_SPI_MASTER=y
2436 2436
 # SPI Master Controller Drivers
2437 2437
 #
2438 2438
 # CONFIG_SPI_ALTERA is not set
2439
+# CONFIG_SPI_ARMADA_3700 is not set
2439 2440
 # CONFIG_SPI_AXI_SPI_ENGINE is not set
2440 2441
 CONFIG_SPI_BCM2835=m
2441 2442
 CONFIG_SPI_BCM2835AUX=m
... ...
@@ -2446,6 +2670,7 @@ CONFIG_SPI_CADENCE=m
2446 2446
 # CONFIG_SPI_GPIO is not set
2447 2447
 # CONFIG_SPI_FSL_SPI is not set
2448 2448
 # CONFIG_SPI_FSL_DSPI is not set
2449
+# CONFIG_SPI_MESON_SPICC is not set
2449 2450
 # CONFIG_SPI_MESON_SPIFC is not set
2450 2451
 # CONFIG_SPI_MT65XX is not set
2451 2452
 # CONFIG_SPI_OC_TINY is not set
... ...
@@ -2463,7 +2688,6 @@ CONFIG_SPI_QUP=m
2463 2463
 CONFIG_SPI_THUNDERX=m
2464 2464
 # CONFIG_SPI_XCOMM is not set
2465 2465
 # CONFIG_SPI_XILINX is not set
2466
-# CONFIG_SPI_XLP is not set
2467 2466
 # CONFIG_SPI_ZYNQMP_GQSPI is not set
2468 2467
 
2469 2468
 #
... ...
@@ -2472,12 +2696,9 @@ CONFIG_SPI_THUNDERX=m
2472 2472
 # CONFIG_SPI_SPIDEV is not set
2473 2473
 # CONFIG_SPI_LOOPBACK_TEST is not set
2474 2474
 # CONFIG_SPI_TLE62X0 is not set
2475
+# CONFIG_SPI_SLAVE is not set
2475 2476
 # CONFIG_SPMI is not set
2476 2477
 # CONFIG_HSI is not set
2477
-
2478
-#
2479
-# PPS support
2480
-#
2481 2478
 CONFIG_PPS=y
2482 2479
 # CONFIG_PPS_DEBUG is not set
2483 2480
 
... ...
@@ -2496,6 +2717,7 @@ CONFIG_PPS=y
2496 2496
 # PTP clock support
2497 2497
 #
2498 2498
 CONFIG_PTP_1588_CLOCK=y
2499
+CONFIG_PTP_1588_CLOCK_DTE=y
2499 2500
 # CONFIG_DP83640_PHY is not set
2500 2501
 CONFIG_PINCTRL=y
2501 2502
 
... ...
@@ -2507,9 +2729,11 @@ CONFIG_PINCONF=y
2507 2507
 CONFIG_GENERIC_PINCONF=y
2508 2508
 # CONFIG_DEBUG_PINCTRL is not set
2509 2509
 # CONFIG_PINCTRL_AMD is not set
2510
+# CONFIG_PINCTRL_MCP23S08 is not set
2510 2511
 CONFIG_PINCTRL_MESON=y
2511 2512
 CONFIG_PINCTRL_ROCKCHIP=y
2512 2513
 # CONFIG_PINCTRL_SINGLE is not set
2514
+# CONFIG_PINCTRL_SX150X is not set
2513 2515
 CONFIG_PINCTRL_BCM2835=y
2514 2516
 CONFIG_PINCTRL_IPROC_GPIO=y
2515 2517
 CONFIG_PINCTRL_NS2_MUX=y
... ...
@@ -2517,53 +2741,52 @@ CONFIG_PINCTRL_NS2_MUX=y
2517 2517
 # CONFIG_PINCTRL_BERLIN_BG2CD is not set
2518 2518
 # CONFIG_PINCTRL_BERLIN_BG2Q is not set
2519 2519
 # CONFIG_PINCTRL_BERLIN_BG4CT is not set
2520
-# CONFIG_PINCTRL_BAYTRAIL is not set
2521
-# CONFIG_PINCTRL_CHERRYVIEW is not set
2522
-# CONFIG_PINCTRL_BROXTON is not set
2523
-# CONFIG_PINCTRL_SUNRISEPOINT is not set
2520
+CONFIG_PINCTRL_MVEBU=y
2521
+CONFIG_PINCTRL_ARMADA_AP806=y
2522
+CONFIG_PINCTRL_ARMADA_CP110=y
2523
+CONFIG_PINCTRL_ARMADA_37XX=y
2524 2524
 # CONFIG_PINCTRL_APQ8064 is not set
2525 2525
 # CONFIG_PINCTRL_APQ8084 is not set
2526 2526
 # CONFIG_PINCTRL_IPQ4019 is not set
2527 2527
 # CONFIG_PINCTRL_IPQ8064 is not set
2528
+# CONFIG_PINCTRL_IPQ8074 is not set
2528 2529
 # CONFIG_PINCTRL_MSM8660 is not set
2529 2530
 # CONFIG_PINCTRL_MSM8960 is not set
2530 2531
 # CONFIG_PINCTRL_MDM9615 is not set
2531 2532
 # CONFIG_PINCTRL_MSM8X74 is not set
2532 2533
 # CONFIG_PINCTRL_MSM8916 is not set
2534
+# CONFIG_PINCTRL_MSM8994 is not set
2533 2535
 # CONFIG_PINCTRL_MSM8996 is not set
2534 2536
 # CONFIG_PINCTRL_QDF2XXX is not set
2535 2537
 # CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
2536 2538
 CONFIG_PINCTRL_SAMSUNG=y
2537 2539
 CONFIG_PINCTRL_EXYNOS=y
2540
+CONFIG_PINCTRL_EXYNOS_ARM64=y
2541
+# CONFIG_PINCTRL_SPRD is not set
2538 2542
 CONFIG_PINCTRL_SUNXI=y
2539 2543
 # CONFIG_PINCTRL_SUN4I_A10 is not set
2540
-# CONFIG_PINCTRL_SUN5I_A10S is not set
2541
-# CONFIG_PINCTRL_SUN5I_A13 is not set
2542
-# CONFIG_PINCTRL_GR8 is not set
2544
+# CONFIG_PINCTRL_SUN5I is not set
2543 2545
 # CONFIG_PINCTRL_SUN6I_A31 is not set
2544
-# CONFIG_PINCTRL_SUN6I_A31S is not set
2545 2546
 # CONFIG_PINCTRL_SUN6I_A31_R is not set
2546
-# CONFIG_PINCTRL_SUN7I_A20 is not set
2547 2547
 # CONFIG_PINCTRL_SUN8I_A23 is not set
2548 2548
 # CONFIG_PINCTRL_SUN8I_A33 is not set
2549 2549
 # CONFIG_PINCTRL_SUN8I_A83T is not set
2550
+# CONFIG_PINCTRL_SUN8I_A83T_R is not set
2550 2551
 # CONFIG_PINCTRL_SUN8I_A23_R is not set
2551 2552
 # CONFIG_PINCTRL_SUN8I_H3 is not set
2552
-# CONFIG_PINCTRL_SUN8I_H3_R is not set
2553
+CONFIG_PINCTRL_SUN8I_H3_R=y
2554
+# CONFIG_PINCTRL_SUN8I_V3S is not set
2553 2555
 # CONFIG_PINCTRL_SUN9I_A80 is not set
2554 2556
 # CONFIG_PINCTRL_SUN9I_A80_R is not set
2555 2557
 CONFIG_PINCTRL_SUN50I_A64=y
2558
+CONFIG_PINCTRL_SUN50I_A64_R=y
2559
+CONFIG_PINCTRL_SUN50I_H5=y
2556 2560
 CONFIG_PINCTRL_TEGRA=y
2557 2561
 CONFIG_PINCTRL_TEGRA124=y
2558 2562
 CONFIG_PINCTRL_TEGRA210=y
2559 2563
 CONFIG_PINCTRL_TEGRA_XUSB=y
2560 2564
 CONFIG_PINCTRL_MTK=y
2561
-# CONFIG_PINCTRL_MT2701 is not set
2562
-# CONFIG_PINCTRL_MT7623 is not set
2563
-# CONFIG_PINCTRL_MT8135 is not set
2564
-# CONFIG_PINCTRL_MT8127 is not set
2565 2565
 CONFIG_PINCTRL_MT8173=y
2566
-# CONFIG_PINCTRL_MT6397 is not set
2567 2566
 CONFIG_GPIOLIB=y
2568 2567
 CONFIG_OF_GPIO=y
2569 2568
 CONFIG_GPIO_ACPI=y
... ...
@@ -2580,20 +2803,20 @@ CONFIG_GPIO_GENERIC=y
2580 2580
 # CONFIG_GPIO_AMDPT is not set
2581 2581
 CONFIG_GPIO_BRCMSTB=y
2582 2582
 # CONFIG_GPIO_DWAPB is not set
2583
+# CONFIG_GPIO_FTGPIO010 is not set
2583 2584
 CONFIG_GPIO_GENERIC_PLATFORM=y
2584 2585
 # CONFIG_GPIO_GRGPIO is not set
2585 2586
 # CONFIG_GPIO_MOCKUP is not set
2586 2587
 # CONFIG_GPIO_MPC8XXX is not set
2588
+CONFIG_GPIO_MVEBU=y
2587 2589
 # CONFIG_GPIO_PL061 is not set
2588 2590
 # CONFIG_GPIO_SYSCON is not set
2589 2591
 CONFIG_GPIO_TEGRA=y
2590
-# CONFIG_GPIO_VX855 is not set
2592
+# CONFIG_GPIO_THUNDERX is not set
2591 2593
 # CONFIG_GPIO_XGENE is not set
2592 2594
 # CONFIG_GPIO_XGENE_SB is not set
2593 2595
 # CONFIG_GPIO_XILINX is not set
2594
-# CONFIG_GPIO_XLP is not set
2595 2596
 # CONFIG_GPIO_ZYNQ is not set
2596
-# CONFIG_GPIO_ZX is not set
2597 2597
 
2598 2598
 #
2599 2599
 # I2C GPIO expanders
... ...
@@ -2606,7 +2829,6 @@ CONFIG_GPIO_TEGRA=y
2606 2606
 # CONFIG_GPIO_PCF857X is not set
2607 2607
 # CONFIG_GPIO_SX150X is not set
2608 2608
 # CONFIG_GPIO_TPIC2810 is not set
2609
-# CONFIG_GPIO_TS4900 is not set
2610 2609
 
2611 2610
 #
2612 2611
 # MFD GPIO expanders
... ...
@@ -2615,9 +2837,8 @@ CONFIG_GPIO_TEGRA=y
2615 2615
 #
2616 2616
 # PCI GPIO expanders
2617 2617
 #
2618
-# CONFIG_GPIO_AMD8111 is not set
2619 2618
 # CONFIG_GPIO_BT8XX is not set
2620
-# CONFIG_GPIO_ML_IOH is not set
2619
+# CONFIG_GPIO_PCI_IDIO_16 is not set
2621 2620
 # CONFIG_GPIO_RDC321X is not set
2622 2621
 
2623 2622
 #
... ...
@@ -2627,11 +2848,7 @@ CONFIG_GPIO_TEGRA=y
2627 2627
 # CONFIG_GPIO_MAX7301 is not set
2628 2628
 # CONFIG_GPIO_MC33880 is not set
2629 2629
 # CONFIG_GPIO_PISOSR is not set
2630
-
2631
-#
2632
-# SPI or I2C GPIO expanders
2633
-#
2634
-# CONFIG_GPIO_MCP23S08 is not set
2630
+# CONFIG_GPIO_XRA1403 is not set
2635 2631
 
2636 2632
 #
2637 2633
 # USB GPIO expanders
... ...
@@ -2639,6 +2856,7 @@ CONFIG_GPIO_TEGRA=y
2639 2639
 # CONFIG_W1 is not set
2640 2640
 # CONFIG_POWER_AVS is not set
2641 2641
 CONFIG_POWER_RESET=y
2642
+CONFIG_POWER_RESET_BRCMSTB=y
2642 2643
 # CONFIG_POWER_RESET_GPIO is not set
2643 2644
 # CONFIG_POWER_RESET_GPIO_RESTART is not set
2644 2645
 # CONFIG_POWER_RESET_HISI is not set
... ...
@@ -2658,6 +2876,7 @@ CONFIG_POWER_SUPPLY=y
2658 2658
 # CONFIG_BATTERY_DS2781 is not set
2659 2659
 # CONFIG_BATTERY_DS2782 is not set
2660 2660
 # CONFIG_BATTERY_SBS is not set
2661
+# CONFIG_CHARGER_SBS is not set
2661 2662
 # CONFIG_BATTERY_BQ27XXX is not set
2662 2663
 # CONFIG_BATTERY_MAX17040 is not set
2663 2664
 # CONFIG_BATTERY_MAX17042 is not set
... ...
@@ -2665,8 +2884,9 @@ CONFIG_POWER_SUPPLY=y
2665 2665
 # CONFIG_CHARGER_LP8727 is not set
2666 2666
 # CONFIG_CHARGER_GPIO is not set
2667 2667
 # CONFIG_CHARGER_MANAGER is not set
2668
+# CONFIG_CHARGER_LTC3651 is not set
2669
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
2668 2670
 # CONFIG_CHARGER_BQ2415X is not set
2669
-# CONFIG_CHARGER_BQ24190 is not set
2670 2671
 # CONFIG_CHARGER_BQ24257 is not set
2671 2672
 # CONFIG_CHARGER_BQ24735 is not set
2672 2673
 # CONFIG_CHARGER_BQ25890 is not set
... ...
@@ -2697,6 +2917,7 @@ CONFIG_HWMON=m
2697 2697
 # CONFIG_SENSORS_ADT7475 is not set
2698 2698
 # CONFIG_SENSORS_ASC7621 is not set
2699 2699
 # CONFIG_SENSORS_ARM_SCPI is not set
2700
+# CONFIG_SENSORS_ASPEED is not set
2700 2701
 # CONFIG_SENSORS_ATXP1 is not set
2701 2702
 # CONFIG_SENSORS_DS620 is not set
2702 2703
 # CONFIG_SENSORS_DS1621 is not set
... ...
@@ -2737,6 +2958,7 @@ CONFIG_HWMON=m
2737 2737
 # CONFIG_SENSORS_MAX6697 is not set
2738 2738
 # CONFIG_SENSORS_MAX31790 is not set
2739 2739
 # CONFIG_SENSORS_MCP3021 is not set
2740
+# CONFIG_SENSORS_TC654 is not set
2740 2741
 # CONFIG_SENSORS_ADCXX is not set
2741 2742
 # CONFIG_SENSORS_LM63 is not set
2742 2743
 # CONFIG_SENSORS_LM70 is not set
... ...
@@ -2779,6 +3001,7 @@ CONFIG_HWMON=m
2779 2779
 # CONFIG_SENSORS_SCH56XX_COMMON is not set
2780 2780
 # CONFIG_SENSORS_SCH5627 is not set
2781 2781
 # CONFIG_SENSORS_SCH5636 is not set
2782
+# CONFIG_SENSORS_STTS751 is not set
2782 2783
 # CONFIG_SENSORS_SMM665 is not set
2783 2784
 # CONFIG_SENSORS_ADC128D818 is not set
2784 2785
 # CONFIG_SENSORS_ADS1015 is not set
... ...
@@ -2792,6 +3015,7 @@ CONFIG_HWMON=m
2792 2792
 # CONFIG_SENSORS_THMC50 is not set
2793 2793
 # CONFIG_SENSORS_TMP102 is not set
2794 2794
 # CONFIG_SENSORS_TMP103 is not set
2795
+# CONFIG_SENSORS_TMP108 is not set
2795 2796
 # CONFIG_SENSORS_TMP401 is not set
2796 2797
 # CONFIG_SENSORS_TMP421 is not set
2797 2798
 # CONFIG_SENSORS_VEXPRESS is not set
... ...
@@ -2814,6 +3038,7 @@ CONFIG_HWMON=m
2814 2814
 #
2815 2815
 # CONFIG_SENSORS_ACPI_POWER is not set
2816 2816
 CONFIG_THERMAL=y
2817
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
2817 2818
 CONFIG_THERMAL_OF=y
2818 2819
 CONFIG_THERMAL_WRITABLE_TRIPS=y
2819 2820
 CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
... ...
@@ -2829,6 +3054,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
2829 2829
 # CONFIG_CLOCK_THERMAL is not set
2830 2830
 # CONFIG_DEVFREQ_THERMAL is not set
2831 2831
 # CONFIG_THERMAL_EMULATION is not set
2832
+# CONFIG_HISI_THERMAL is not set
2832 2833
 # CONFIG_QORIQ_THERMAL is not set
2833 2834
 CONFIG_ROCKCHIP_THERMAL=m
2834 2835
 # CONFIG_ARMADA_THERMAL is not set
... ...
@@ -2854,6 +3080,7 @@ CONFIG_MTK_THERMAL=y
2854 2854
 CONFIG_WATCHDOG=y
2855 2855
 CONFIG_WATCHDOG_CORE=y
2856 2856
 # CONFIG_WATCHDOG_NOWAYOUT is not set
2857
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
2857 2858
 CONFIG_WATCHDOG_SYSFS=y
2858 2859
 
2859 2860
 #
... ...
@@ -2907,28 +3134,35 @@ CONFIG_SSB_POSSIBLE=y
2907 2907
 #
2908 2908
 CONFIG_SSB=m
2909 2909
 CONFIG_SSB_SPROM=y
2910
+CONFIG_SSB_BLOCKIO=y
2910 2911
 CONFIG_SSB_PCIHOST_POSSIBLE=y
2911 2912
 CONFIG_SSB_PCIHOST=y
2912
-# CONFIG_SSB_B43_PCI_BRIDGE is not set
2913
+CONFIG_SSB_B43_PCI_BRIDGE=y
2913 2914
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
2914
-# CONFIG_SSB_SDIOHOST is not set
2915
+CONFIG_SSB_SDIOHOST=y
2915 2916
 # CONFIG_SSB_SILENT is not set
2916 2917
 # CONFIG_SSB_DEBUG is not set
2917 2918
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
2918 2919
 CONFIG_SSB_DRIVER_PCICORE=y
2919 2920
 # CONFIG_SSB_DRIVER_GPIO is not set
2920 2921
 CONFIG_BCMA_POSSIBLE=y
2921
-
2922
-#
2923
-# Broadcom specific AMBA
2924
-#
2925
-# CONFIG_BCMA is not set
2922
+CONFIG_BCMA=m
2923
+CONFIG_BCMA_BLOCKIO=y
2924
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
2925
+CONFIG_BCMA_HOST_PCI=y
2926
+CONFIG_BCMA_HOST_SOC=y
2927
+CONFIG_BCMA_DRIVER_PCI=y
2928
+CONFIG_BCMA_SFLASH=y
2929
+# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
2930
+# CONFIG_BCMA_DRIVER_GPIO is not set
2931
+# CONFIG_BCMA_DEBUG is not set
2926 2932
 
2927 2933
 #
2928 2934
 # Multifunction device drivers
2929 2935
 #
2930 2936
 CONFIG_MFD_CORE=y
2931 2937
 # CONFIG_MFD_ACT8945A is not set
2938
+# CONFIG_MFD_SUN4I_GPADC is not set
2932 2939
 # CONFIG_MFD_AS3711 is not set
2933 2940
 # CONFIG_MFD_AS3722 is not set
2934 2941
 # CONFIG_PMIC_ADP5520 is not set
... ...
@@ -2936,6 +3170,7 @@ CONFIG_MFD_CORE=y
2936 2936
 # CONFIG_MFD_ATMEL_FLEXCOM is not set
2937 2937
 # CONFIG_MFD_ATMEL_HLCDC is not set
2938 2938
 # CONFIG_MFD_BCM590XX is not set
2939
+# CONFIG_MFD_BD9571MWV is not set
2939 2940
 # CONFIG_MFD_AC100 is not set
2940 2941
 # CONFIG_MFD_AXP20X_I2C is not set
2941 2942
 # CONFIG_MFD_AXP20X_RSB is not set
... ...
@@ -2957,7 +3192,6 @@ CONFIG_MFD_CORE=y
2957 2957
 # CONFIG_HTC_I2CPLD is not set
2958 2958
 CONFIG_LPC_ICH=m
2959 2959
 # CONFIG_LPC_SCH is not set
2960
-# CONFIG_INTEL_SOC_PMIC is not set
2961 2960
 # CONFIG_MFD_JANZ_CMODIO is not set
2962 2961
 # CONFIG_MFD_KEMPLD is not set
2963 2962
 # CONFIG_MFD_88PM800 is not set
... ...
@@ -2975,6 +3209,7 @@ CONFIG_LPC_ICH=m
2975 2975
 # CONFIG_MFD_MT6397 is not set
2976 2976
 # CONFIG_MFD_MENF21BMC is not set
2977 2977
 # CONFIG_EZX_PCAP is not set
2978
+# CONFIG_MFD_CPCAP is not set
2978 2979
 # CONFIG_MFD_VIPERBOARD is not set
2979 2980
 # CONFIG_MFD_RETU is not set
2980 2981
 # CONFIG_MFD_PCF50633 is not set
... ...
@@ -2999,6 +3234,7 @@ CONFIG_MFD_SYSCON=y
2999 2999
 # CONFIG_MFD_TI_AM335X_TSCADC is not set
3000 3000
 # CONFIG_MFD_LP3943 is not set
3001 3001
 # CONFIG_MFD_LP8788 is not set
3002
+# CONFIG_MFD_TI_LMU is not set
3002 3003
 # CONFIG_MFD_PALMAS is not set
3003 3004
 # CONFIG_TPS6105X is not set
3004 3005
 # CONFIG_TPS65010 is not set
... ...
@@ -3006,7 +3242,9 @@ CONFIG_MFD_SYSCON=y
3006 3006
 # CONFIG_MFD_TPS65086 is not set
3007 3007
 # CONFIG_MFD_TPS65090 is not set
3008 3008
 # CONFIG_MFD_TPS65217 is not set
3009
+# CONFIG_MFD_TPS68470 is not set
3009 3010
 # CONFIG_MFD_TI_LP873X is not set
3011
+# CONFIG_MFD_TI_LP87565 is not set
3010 3012
 # CONFIG_MFD_TPS65218 is not set
3011 3013
 # CONFIG_MFD_TPS6586X is not set
3012 3014
 # CONFIG_MFD_TPS65910 is not set
... ...
@@ -3063,9 +3301,237 @@ CONFIG_REGULATOR=y
3063 3063
 # CONFIG_REGULATOR_TPS62360 is not set
3064 3064
 # CONFIG_REGULATOR_TPS65023 is not set
3065 3065
 # CONFIG_REGULATOR_TPS6507X is not set
3066
+# CONFIG_REGULATOR_TPS65132 is not set
3066 3067
 # CONFIG_REGULATOR_TPS6524X is not set
3068
+# CONFIG_REGULATOR_VCTRL is not set
3067 3069
 # CONFIG_REGULATOR_VEXPRESS is not set
3068
-# CONFIG_MEDIA_SUPPORT is not set
3070
+CONFIG_CEC_CORE=m
3071
+# CONFIG_RC_CORE is not set
3072
+CONFIG_MEDIA_SUPPORT=m
3073
+
3074
+#
3075
+# Multimedia core support
3076
+#
3077
+CONFIG_MEDIA_CAMERA_SUPPORT=y
3078
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
3079
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
3080
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
3081
+# CONFIG_MEDIA_SDR_SUPPORT is not set
3082
+# CONFIG_MEDIA_CEC_SUPPORT is not set
3083
+# CONFIG_MEDIA_CONTROLLER is not set
3084
+CONFIG_VIDEO_DEV=m
3085
+CONFIG_VIDEO_V4L2=m
3086
+# CONFIG_VIDEO_ADV_DEBUG is not set
3087
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
3088
+CONFIG_VIDEOBUF2_CORE=m
3089
+CONFIG_VIDEOBUF2_MEMOPS=m
3090
+CONFIG_VIDEOBUF2_VMALLOC=m
3091
+# CONFIG_TTPCI_EEPROM is not set
3092
+
3093
+#
3094
+# Media drivers
3095
+#
3096
+CONFIG_MEDIA_USB_SUPPORT=y
3097
+
3098
+#
3099
+# Webcam devices
3100
+#
3101
+CONFIG_USB_VIDEO_CLASS=m
3102
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
3103
+CONFIG_USB_GSPCA=m
3104
+# CONFIG_USB_M5602 is not set
3105
+# CONFIG_USB_STV06XX is not set
3106
+# CONFIG_USB_GL860 is not set
3107
+# CONFIG_USB_GSPCA_BENQ is not set
3108
+# CONFIG_USB_GSPCA_CONEX is not set
3109
+# CONFIG_USB_GSPCA_CPIA1 is not set
3110
+# CONFIG_USB_GSPCA_DTCS033 is not set
3111
+# CONFIG_USB_GSPCA_ETOMS is not set
3112
+# CONFIG_USB_GSPCA_FINEPIX is not set
3113
+# CONFIG_USB_GSPCA_JEILINJ is not set
3114
+# CONFIG_USB_GSPCA_JL2005BCD is not set
3115
+# CONFIG_USB_GSPCA_KINECT is not set
3116
+# CONFIG_USB_GSPCA_KONICA is not set
3117
+# CONFIG_USB_GSPCA_MARS is not set
3118
+# CONFIG_USB_GSPCA_MR97310A is not set
3119
+# CONFIG_USB_GSPCA_NW80X is not set
3120
+# CONFIG_USB_GSPCA_OV519 is not set
3121
+# CONFIG_USB_GSPCA_OV534 is not set
3122
+# CONFIG_USB_GSPCA_OV534_9 is not set
3123
+# CONFIG_USB_GSPCA_PAC207 is not set
3124
+# CONFIG_USB_GSPCA_PAC7302 is not set
3125
+# CONFIG_USB_GSPCA_PAC7311 is not set
3126
+# CONFIG_USB_GSPCA_SE401 is not set
3127
+# CONFIG_USB_GSPCA_SN9C2028 is not set
3128
+# CONFIG_USB_GSPCA_SN9C20X is not set
3129
+# CONFIG_USB_GSPCA_SONIXB is not set
3130
+# CONFIG_USB_GSPCA_SONIXJ is not set
3131
+# CONFIG_USB_GSPCA_SPCA500 is not set
3132
+# CONFIG_USB_GSPCA_SPCA501 is not set
3133
+# CONFIG_USB_GSPCA_SPCA505 is not set
3134
+# CONFIG_USB_GSPCA_SPCA506 is not set
3135
+# CONFIG_USB_GSPCA_SPCA508 is not set
3136
+# CONFIG_USB_GSPCA_SPCA561 is not set
3137
+# CONFIG_USB_GSPCA_SPCA1528 is not set
3138
+# CONFIG_USB_GSPCA_SQ905 is not set
3139
+# CONFIG_USB_GSPCA_SQ905C is not set
3140
+# CONFIG_USB_GSPCA_SQ930X is not set
3141
+# CONFIG_USB_GSPCA_STK014 is not set
3142
+# CONFIG_USB_GSPCA_STK1135 is not set
3143
+# CONFIG_USB_GSPCA_STV0680 is not set
3144
+# CONFIG_USB_GSPCA_SUNPLUS is not set
3145
+# CONFIG_USB_GSPCA_T613 is not set
3146
+# CONFIG_USB_GSPCA_TOPRO is not set
3147
+# CONFIG_USB_GSPCA_TOUPTEK is not set
3148
+# CONFIG_USB_GSPCA_TV8532 is not set
3149
+# CONFIG_USB_GSPCA_VC032X is not set
3150
+# CONFIG_USB_GSPCA_VICAM is not set
3151
+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
3152
+# CONFIG_USB_GSPCA_ZC3XX is not set
3153
+# CONFIG_USB_PWC is not set
3154
+# CONFIG_VIDEO_CPIA2 is not set
3155
+# CONFIG_USB_ZR364XX is not set
3156
+# CONFIG_USB_STKWEBCAM is not set
3157
+# CONFIG_USB_S2255 is not set
3158
+# CONFIG_VIDEO_USBTV is not set
3159
+
3160
+#
3161
+# Webcam, TV (analog/digital) USB devices
3162
+#
3163
+# CONFIG_VIDEO_EM28XX is not set
3164
+# CONFIG_MEDIA_PCI_SUPPORT is not set
3165
+# CONFIG_V4L_PLATFORM_DRIVERS is not set
3166
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
3167
+# CONFIG_V4L_TEST_DRIVERS is not set
3168
+
3169
+#
3170
+# Supported MMC/SDIO adapters
3171
+#
3172
+# CONFIG_CYPRESS_FIRMWARE is not set
3173
+
3174
+#
3175
+# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
3176
+#
3177
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
3178
+
3179
+#
3180
+# I2C Encoders, decoders, sensors and other helper chips
3181
+#
3182
+
3183
+#
3184
+# Audio decoders, processors and mixers
3185
+#
3186
+# CONFIG_VIDEO_TVAUDIO is not set
3187
+# CONFIG_VIDEO_TDA7432 is not set
3188
+# CONFIG_VIDEO_TDA9840 is not set
3189
+# CONFIG_VIDEO_TEA6415C is not set
3190
+# CONFIG_VIDEO_TEA6420 is not set
3191
+# CONFIG_VIDEO_MSP3400 is not set
3192
+# CONFIG_VIDEO_CS3308 is not set
3193
+# CONFIG_VIDEO_CS5345 is not set
3194
+# CONFIG_VIDEO_CS53L32A is not set
3195
+# CONFIG_VIDEO_TLV320AIC23B is not set
3196
+# CONFIG_VIDEO_UDA1342 is not set
3197
+# CONFIG_VIDEO_WM8775 is not set
3198
+# CONFIG_VIDEO_WM8739 is not set
3199
+# CONFIG_VIDEO_VP27SMPX is not set
3200
+# CONFIG_VIDEO_SONY_BTF_MPX is not set
3201
+
3202
+#
3203
+# RDS decoders
3204
+#
3205
+# CONFIG_VIDEO_SAA6588 is not set
3206
+
3207
+#
3208
+# Video decoders
3209
+#
3210
+# CONFIG_VIDEO_ADV7183 is not set
3211
+# CONFIG_VIDEO_BT819 is not set
3212
+# CONFIG_VIDEO_BT856 is not set
3213
+# CONFIG_VIDEO_BT866 is not set
3214
+# CONFIG_VIDEO_KS0127 is not set
3215
+# CONFIG_VIDEO_ML86V7667 is not set
3216
+# CONFIG_VIDEO_SAA7110 is not set
3217
+# CONFIG_VIDEO_SAA711X is not set
3218
+# CONFIG_VIDEO_TVP514X is not set
3219
+# CONFIG_VIDEO_TVP5150 is not set
3220
+# CONFIG_VIDEO_TVP7002 is not set
3221
+# CONFIG_VIDEO_TW2804 is not set
3222
+# CONFIG_VIDEO_TW9903 is not set
3223
+# CONFIG_VIDEO_TW9906 is not set
3224
+# CONFIG_VIDEO_VPX3220 is not set
3225
+
3226
+#
3227
+# Video and audio decoders
3228
+#
3229
+# CONFIG_VIDEO_SAA717X is not set
3230
+# CONFIG_VIDEO_CX25840 is not set
3231
+
3232
+#
3233
+# Video encoders
3234
+#
3235
+# CONFIG_VIDEO_SAA7127 is not set
3236
+# CONFIG_VIDEO_SAA7185 is not set
3237
+# CONFIG_VIDEO_ADV7170 is not set
3238
+# CONFIG_VIDEO_ADV7175 is not set
3239
+# CONFIG_VIDEO_ADV7343 is not set
3240
+# CONFIG_VIDEO_ADV7393 is not set
3241
+# CONFIG_VIDEO_AK881X is not set
3242
+# CONFIG_VIDEO_THS8200 is not set
3243
+
3244
+#
3245
+# Camera sensor devices
3246
+#
3247
+# CONFIG_VIDEO_OV2640 is not set
3248
+# CONFIG_VIDEO_OV2659 is not set
3249
+# CONFIG_VIDEO_OV6650 is not set
3250
+# CONFIG_VIDEO_OV7640 is not set
3251
+# CONFIG_VIDEO_OV7670 is not set
3252
+# CONFIG_VIDEO_VS6624 is not set
3253
+# CONFIG_VIDEO_MT9M111 is not set
3254
+# CONFIG_VIDEO_MT9V011 is not set
3255
+# CONFIG_VIDEO_SR030PC30 is not set
3256
+
3257
+#
3258
+# Flash devices
3259
+#
3260
+
3261
+#
3262
+# Video improvement chips
3263
+#
3264
+# CONFIG_VIDEO_UPD64031A is not set
3265
+# CONFIG_VIDEO_UPD64083 is not set
3266
+
3267
+#
3268
+# Audio/Video compression chips
3269
+#
3270
+# CONFIG_VIDEO_SAA6752HS is not set
3271
+
3272
+#
3273
+# SDR tuner chips
3274
+#
3275
+
3276
+#
3277
+# Miscellaneous helper chips
3278
+#
3279
+# CONFIG_VIDEO_THS7303 is not set
3280
+# CONFIG_VIDEO_M52790 is not set
3281
+
3282
+#
3283
+# Sensors used on soc_camera driver
3284
+#
3285
+
3286
+#
3287
+# SPI helper chips
3288
+#
3289
+
3290
+#
3291
+# Customise DVB Frontends
3292
+#
3293
+
3294
+#
3295
+# Tools to develop new frontends
3296
+#
3069 3297
 
3070 3298
 #
3071 3299
 # Graphics support
... ...
@@ -3076,11 +3542,16 @@ CONFIG_VGA_ARB_MAX_GPUS=16
3076 3076
 CONFIG_DRM=y
3077 3077
 CONFIG_DRM_MIPI_DSI=y
3078 3078
 # CONFIG_DRM_DP_AUX_CHARDEV is not set
3079
+# CONFIG_DRM_DEBUG_MM is not set
3080
+# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
3079 3081
 CONFIG_DRM_KMS_HELPER=y
3080 3082
 CONFIG_DRM_KMS_FB_HELPER=y
3081 3083
 CONFIG_DRM_FBDEV_EMULATION=y
3084
+CONFIG_DRM_FBDEV_OVERALLOC=100
3082 3085
 # CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
3083 3086
 CONFIG_DRM_TTM=m
3087
+CONFIG_DRM_GEM_CMA_HELPER=y
3088
+CONFIG_DRM_KMS_CMA_HELPER=y
3084 3089
 
3085 3090
 #
3086 3091
 # I2C encoder or helper chips
... ...
@@ -3103,6 +3574,7 @@ CONFIG_DRM_TTM=m
3103 3103
 # CONFIG_DRM_AST is not set
3104 3104
 # CONFIG_DRM_MGAG200 is not set
3105 3105
 CONFIG_DRM_CIRRUS_QEMU=m
3106
+# CONFIG_DRM_RCAR_DW_HDMI is not set
3106 3107
 # CONFIG_DRM_QXL is not set
3107 3108
 # CONFIG_DRM_BOCHS is not set
3108 3109
 # CONFIG_DRM_VIRTIO_GPU is not set
... ...
@@ -3114,37 +3586,54 @@ CONFIG_DRM_MSM_DSI_PLL=y
3114 3114
 CONFIG_DRM_MSM_DSI_28NM_PHY=y
3115 3115
 CONFIG_DRM_MSM_DSI_20NM_PHY=y
3116 3116
 CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
3117
+# CONFIG_DRM_MSM_DSI_14NM_PHY is not set
3117 3118
 # CONFIG_DRM_TEGRA is not set
3118 3119
 CONFIG_DRM_PANEL=y
3119 3120
 
3120 3121
 #
3121 3122
 # Display Panels
3122 3123
 #
3124
+# CONFIG_DRM_PANEL_LVDS is not set
3123 3125
 # CONFIG_DRM_PANEL_SIMPLE is not set
3126
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
3124 3127
 # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
3125 3128
 # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
3126 3129
 # CONFIG_DRM_PANEL_LG_LG4573 is not set
3127 3130
 # CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
3131
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
3128 3132
 # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
3129 3133
 # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
3130 3134
 # CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
3135
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
3131 3136
 CONFIG_DRM_BRIDGE=y
3137
+CONFIG_DRM_PANEL_BRIDGE=y
3132 3138
 
3133 3139
 #
3134 3140
 # Display Interface Bridges
3135 3141
 #
3136 3142
 # CONFIG_DRM_ANALOGIX_ANX78XX is not set
3137 3143
 # CONFIG_DRM_DUMB_VGA_DAC is not set
3144
+# CONFIG_DRM_LVDS_ENCODER is not set
3145
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
3138 3146
 # CONFIG_DRM_NXP_PTN3460 is not set
3139 3147
 # CONFIG_DRM_PARADE_PS8622 is not set
3148
+# CONFIG_DRM_SIL_SII8620 is not set
3140 3149
 # CONFIG_DRM_SII902X is not set
3141 3150
 # CONFIG_DRM_TOSHIBA_TC358767 is not set
3151
+# CONFIG_DRM_TI_TFP410 is not set
3142 3152
 # CONFIG_DRM_I2C_ADV7511 is not set
3143
-# CONFIG_DRM_VC4 is not set
3153
+CONFIG_DRM_VC4=m
3154
+CONFIG_DRM_VC4_HDMI_CEC=y
3144 3155
 # CONFIG_DRM_ARCPGU is not set
3156
+# CONFIG_DRM_HISI_HIBMC is not set
3145 3157
 # CONFIG_DRM_HISI_KIRIN is not set
3146 3158
 # CONFIG_DRM_MEDIATEK is not set
3159
+# CONFIG_DRM_MXSFB is not set
3160
+# CONFIG_DRM_MESON is not set
3161
+# CONFIG_DRM_TINYDRM is not set
3162
+# CONFIG_DRM_PL111 is not set
3147 3163
 # CONFIG_DRM_LEGACY is not set
3164
+# CONFIG_DRM_LIB_RANDOM is not set
3148 3165
 
3149 3166
 #
3150 3167
 # Frame buffer Devices
... ...
@@ -3162,6 +3651,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
3162 3162
 CONFIG_FB_SYS_FILLRECT=y
3163 3163
 CONFIG_FB_SYS_COPYAREA=y
3164 3164
 CONFIG_FB_SYS_IMAGEBLIT=y
3165
+# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
3165 3166
 # CONFIG_FB_FOREIGN_ENDIAN is not set
3166 3167
 CONFIG_FB_SYS_FOPS=y
3167 3168
 CONFIG_FB_DEFERRED_IO=y
... ...
@@ -3213,6 +3703,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y
3213 3213
 # CONFIG_FB_SMSCUFX is not set
3214 3214
 # CONFIG_FB_UDL is not set
3215 3215
 # CONFIG_FB_IBM_GXT4500 is not set
3216
+# CONFIG_FB_XILINX is not set
3216 3217
 # CONFIG_FB_VIRTUAL is not set
3217 3218
 CONFIG_XEN_FBDEV_FRONTEND=m
3218 3219
 # CONFIG_FB_METRONOME is not set
... ...
@@ -3236,6 +3727,7 @@ CONFIG_BACKLIGHT_GENERIC=y
3236 3236
 # CONFIG_BACKLIGHT_GPIO is not set
3237 3237
 # CONFIG_BACKLIGHT_LV5207LP is not set
3238 3238
 # CONFIG_BACKLIGHT_BD6107 is not set
3239
+# CONFIG_BACKLIGHT_ARCXCNN is not set
3239 3240
 CONFIG_VGASTATE=m
3240 3241
 CONFIG_HDMI=y
3241 3242
 
... ...
@@ -3254,12 +3746,13 @@ CONFIG_SOUND=m
3254 3254
 CONFIG_SND=m
3255 3255
 CONFIG_SND_TIMER=m
3256 3256
 CONFIG_SND_PCM=m
3257
+CONFIG_SND_PCM_ELD=y
3258
+CONFIG_SND_PCM_IEC958=y
3259
+CONFIG_SND_DMAENGINE_PCM=m
3257 3260
 CONFIG_SND_RAWMIDI=m
3258 3261
 CONFIG_SND_JACK=y
3259 3262
 CONFIG_SND_JACK_INPUT_DEV=y
3260
-# CONFIG_SND_SEQUENCER is not set
3261
-# CONFIG_SND_MIXER_OSS is not set
3262
-# CONFIG_SND_PCM_OSS is not set
3263
+# CONFIG_SND_OSSEMUL is not set
3263 3264
 CONFIG_SND_PCM_TIMER=y
3264 3265
 # CONFIG_SND_HRTIMER is not set
3265 3266
 # CONFIG_SND_DYNAMIC_MINORS is not set
... ...
@@ -3269,11 +3762,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
3269 3269
 # CONFIG_SND_VERBOSE_PRINTK is not set
3270 3270
 # CONFIG_SND_DEBUG is not set
3271 3271
 CONFIG_SND_VMASTER=y
3272
-# CONFIG_SND_RAWMIDI_SEQ is not set
3272
+# CONFIG_SND_SEQUENCER is not set
3273 3273
 # CONFIG_SND_OPL3_LIB_SEQ is not set
3274 3274
 # CONFIG_SND_OPL4_LIB_SEQ is not set
3275
-# CONFIG_SND_SBAWE_SEQ is not set
3276
-# CONFIG_SND_EMU10K1_SEQ is not set
3277 3275
 CONFIG_SND_AC97_CODEC=m
3278 3276
 CONFIG_SND_DRIVERS=y
3279 3277
 # CONFIG_SND_DUMMY is not set
... ...
@@ -3315,6 +3806,7 @@ CONFIG_SND_PCI=y
3315 3315
 # CONFIG_SND_INDIGOIOX is not set
3316 3316
 # CONFIG_SND_INDIGODJX is not set
3317 3317
 # CONFIG_SND_EMU10K1 is not set
3318
+# CONFIG_SND_EMU10K1_SEQ is not set
3318 3319
 # CONFIG_SND_EMU10K1X is not set
3319 3320
 # CONFIG_SND_ENS1370 is not set
3320 3321
 CONFIG_SND_ENS1371=m
... ...
@@ -3384,8 +3876,153 @@ CONFIG_SND_USB=y
3384 3384
 # CONFIG_SND_USB_PODHD is not set
3385 3385
 # CONFIG_SND_USB_TONEPORT is not set
3386 3386
 # CONFIG_SND_USB_VARIAX is not set
3387
-# CONFIG_SND_SOC is not set
3388
-# CONFIG_SOUND_PRIME is not set
3387
+CONFIG_SND_SOC=m
3388
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
3389
+# CONFIG_SND_SOC_AMD_ACP is not set
3390
+# CONFIG_SND_ATMEL_SOC is not set
3391
+CONFIG_SND_BCM2835_SOC_I2S=m
3392
+# CONFIG_SND_DESIGNWARE_I2S is not set
3393
+
3394
+#
3395
+# SoC Audio for Freescale CPUs
3396
+#
3397
+
3398
+#
3399
+# Common SoC Audio options for Freescale CPUs:
3400
+#
3401
+# CONFIG_SND_SOC_FSL_ASRC is not set
3402
+# CONFIG_SND_SOC_FSL_SAI is not set
3403
+# CONFIG_SND_SOC_FSL_SSI is not set
3404
+# CONFIG_SND_SOC_FSL_SPDIF is not set
3405
+# CONFIG_SND_SOC_FSL_ESAI is not set
3406
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
3407
+# CONFIG_SND_I2S_HI6210_I2S is not set
3408
+# CONFIG_SND_KIRKWOOD_SOC is not set
3409
+# CONFIG_SND_SOC_IMG is not set
3410
+# CONFIG_SND_SOC_MT2701 is not set
3411
+# CONFIG_SND_SOC_MT8173 is not set
3412
+# CONFIG_SND_SOC_QCOM is not set
3413
+# CONFIG_SND_SOC_ROCKCHIP is not set
3414
+# CONFIG_SND_SOC_SAMSUNG is not set
3415
+
3416
+#
3417
+# STMicroelectronics STM32 SOC audio support
3418
+#
3419
+
3420
+#
3421
+# Allwinner SoC Audio support
3422
+#
3423
+# CONFIG_SND_SUN4I_CODEC is not set
3424
+# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
3425
+# CONFIG_SND_SUN4I_I2S is not set
3426
+# CONFIG_SND_SUN4I_SPDIF is not set
3427
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
3428
+# CONFIG_ZX_TDM is not set
3429
+CONFIG_SND_SOC_I2C_AND_SPI=m
3430
+
3431
+#
3432
+# CODEC drivers
3433
+#
3434
+# CONFIG_SND_SOC_AC97_CODEC is not set
3435
+# CONFIG_SND_SOC_ADAU1701 is not set
3436
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
3437
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
3438
+# CONFIG_SND_SOC_ADAU7002 is not set
3439
+# CONFIG_SND_SOC_AK4104 is not set
3440
+# CONFIG_SND_SOC_AK4554 is not set
3441
+# CONFIG_SND_SOC_AK4613 is not set
3442
+# CONFIG_SND_SOC_AK4642 is not set
3443
+# CONFIG_SND_SOC_AK5386 is not set
3444
+# CONFIG_SND_SOC_ALC5623 is not set
3445
+# CONFIG_SND_SOC_BT_SCO is not set
3446
+# CONFIG_SND_SOC_CS35L32 is not set
3447
+# CONFIG_SND_SOC_CS35L33 is not set
3448
+# CONFIG_SND_SOC_CS35L34 is not set
3449
+# CONFIG_SND_SOC_CS35L35 is not set
3450
+# CONFIG_SND_SOC_CS42L42 is not set
3451
+# CONFIG_SND_SOC_CS42L51_I2C is not set
3452
+# CONFIG_SND_SOC_CS42L52 is not set
3453
+# CONFIG_SND_SOC_CS42L56 is not set
3454
+# CONFIG_SND_SOC_CS42L73 is not set
3455
+# CONFIG_SND_SOC_CS4265 is not set
3456
+# CONFIG_SND_SOC_CS4270 is not set
3457
+# CONFIG_SND_SOC_CS4271_I2C is not set
3458
+# CONFIG_SND_SOC_CS4271_SPI is not set
3459
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
3460
+# CONFIG_SND_SOC_CS43130 is not set
3461
+# CONFIG_SND_SOC_CS4349 is not set
3462
+# CONFIG_SND_SOC_CS53L30 is not set
3463
+# CONFIG_SND_SOC_DIO2125 is not set
3464
+CONFIG_SND_SOC_HDMI_CODEC=m
3465
+# CONFIG_SND_SOC_ES7134 is not set
3466
+# CONFIG_SND_SOC_ES8316 is not set
3467
+# CONFIG_SND_SOC_ES8328_I2C is not set
3468
+# CONFIG_SND_SOC_ES8328_SPI is not set
3469
+# CONFIG_SND_SOC_GTM601 is not set
3470
+# CONFIG_SND_SOC_INNO_RK3036 is not set
3471
+# CONFIG_SND_SOC_MAX98504 is not set
3472
+# CONFIG_SND_SOC_MAX98927 is not set
3473
+# CONFIG_SND_SOC_MAX9860 is not set
3474
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
3475
+# CONFIG_SND_SOC_PCM1681 is not set
3476
+# CONFIG_SND_SOC_PCM179X_I2C is not set
3477
+# CONFIG_SND_SOC_PCM179X_SPI is not set
3478
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
3479
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
3480
+# CONFIG_SND_SOC_PCM512x_I2C is not set
3481
+# CONFIG_SND_SOC_PCM512x_SPI is not set
3482
+# CONFIG_SND_SOC_RT5616 is not set
3483
+# CONFIG_SND_SOC_RT5631 is not set
3484
+# CONFIG_SND_SOC_RT5677_SPI is not set
3485
+# CONFIG_SND_SOC_SGTL5000 is not set
3486
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
3487
+# CONFIG_SND_SOC_SPDIF is not set
3488
+# CONFIG_SND_SOC_SSM2602_SPI is not set
3489
+# CONFIG_SND_SOC_SSM2602_I2C is not set
3490
+# CONFIG_SND_SOC_SSM4567 is not set
3491
+# CONFIG_SND_SOC_STA32X is not set
3492
+# CONFIG_SND_SOC_STA350 is not set
3493
+# CONFIG_SND_SOC_STI_SAS is not set
3494
+# CONFIG_SND_SOC_TAS2552 is not set
3495
+# CONFIG_SND_SOC_TAS5086 is not set
3496
+# CONFIG_SND_SOC_TAS571X is not set
3497
+# CONFIG_SND_SOC_TAS5720 is not set
3498
+# CONFIG_SND_SOC_TFA9879 is not set
3499
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
3500
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
3501
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
3502
+# CONFIG_SND_SOC_TLV320AIC3X is not set
3503
+# CONFIG_SND_SOC_TS3A227E is not set
3504
+# CONFIG_SND_SOC_WM8510 is not set
3505
+# CONFIG_SND_SOC_WM8523 is not set
3506
+# CONFIG_SND_SOC_WM8524 is not set
3507
+# CONFIG_SND_SOC_WM8580 is not set
3508
+# CONFIG_SND_SOC_WM8711 is not set
3509
+# CONFIG_SND_SOC_WM8728 is not set
3510
+# CONFIG_SND_SOC_WM8731 is not set
3511
+# CONFIG_SND_SOC_WM8737 is not set
3512
+# CONFIG_SND_SOC_WM8741 is not set
3513
+# CONFIG_SND_SOC_WM8750 is not set
3514
+# CONFIG_SND_SOC_WM8753 is not set
3515
+# CONFIG_SND_SOC_WM8770 is not set
3516
+# CONFIG_SND_SOC_WM8776 is not set
3517
+# CONFIG_SND_SOC_WM8804_I2C is not set
3518
+# CONFIG_SND_SOC_WM8804_SPI is not set
3519
+# CONFIG_SND_SOC_WM8903 is not set
3520
+# CONFIG_SND_SOC_WM8960 is not set
3521
+# CONFIG_SND_SOC_WM8962 is not set
3522
+# CONFIG_SND_SOC_WM8974 is not set
3523
+# CONFIG_SND_SOC_WM8978 is not set
3524
+# CONFIG_SND_SOC_WM8985 is not set
3525
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
3526
+# CONFIG_SND_SOC_NAU8540 is not set
3527
+# CONFIG_SND_SOC_NAU8810 is not set
3528
+# CONFIG_SND_SOC_NAU8824 is not set
3529
+# CONFIG_SND_SOC_TPA6130A2 is not set
3530
+# CONFIG_SND_SIMPLE_CARD is not set
3531
+# CONFIG_SND_SIMPLE_SCU_CARD is not set
3532
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
3533
+# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
3389 3534
 CONFIG_AC97_BUS=m
3390 3535
 
3391 3536
 #
... ...
@@ -3401,6 +4038,7 @@ CONFIG_HID_GENERIC=m
3401 3401
 # Special HID drivers
3402 3402
 #
3403 3403
 CONFIG_HID_A4TECH=m
3404
+# CONFIG_HID_ACCUTOUCH is not set
3404 3405
 # CONFIG_HID_ACRUX is not set
3405 3406
 CONFIG_HID_APPLE=m
3406 3407
 # CONFIG_HID_APPLEIR is not set
... ...
@@ -3427,6 +4065,7 @@ CONFIG_HID_EZKEY=m
3427 3427
 # CONFIG_HID_WALTOP is not set
3428 3428
 # CONFIG_HID_GYRATION is not set
3429 3429
 # CONFIG_HID_ICADE is not set
3430
+# CONFIG_HID_ITE is not set
3430 3431
 # CONFIG_HID_TWINHAN is not set
3431 3432
 # CONFIG_HID_KENSINGTON is not set
3432 3433
 # CONFIG_HID_LCPOWER is not set
... ...
@@ -3438,9 +4077,11 @@ CONFIG_HID_LOGITECH=m
3438 3438
 # CONFIG_LOGIG940_FF is not set
3439 3439
 # CONFIG_LOGIWHEELS_FF is not set
3440 3440
 # CONFIG_HID_MAGICMOUSE is not set
3441
+# CONFIG_HID_MAYFLASH is not set
3441 3442
 CONFIG_HID_MICROSOFT=m
3442 3443
 CONFIG_HID_MONTEREY=m
3443 3444
 # CONFIG_HID_MULTITOUCH is not set
3445
+# CONFIG_HID_NTI is not set
3444 3446
 # CONFIG_HID_NTRIG is not set
3445 3447
 # CONFIG_HID_ORTEK is not set
3446 3448
 # CONFIG_HID_PANTHERLORD is not set
... ...
@@ -3449,6 +4090,7 @@ CONFIG_HID_MONTEREY=m
3449 3449
 # CONFIG_HID_PICOLCD is not set
3450 3450
 # CONFIG_HID_PLANTRONICS is not set
3451 3451
 # CONFIG_HID_PRIMAX is not set
3452
+# CONFIG_HID_RETRODE is not set
3452 3453
 # CONFIG_HID_ROCCAT is not set
3453 3454
 # CONFIG_HID_SAITEK is not set
3454 3455
 # CONFIG_HID_SAMSUNG is not set
... ...
@@ -3461,6 +4103,7 @@ CONFIG_HID_MONTEREY=m
3461 3461
 # CONFIG_HID_TIVO is not set
3462 3462
 # CONFIG_HID_TOPSEED is not set
3463 3463
 # CONFIG_HID_THRUSTMASTER is not set
3464
+# CONFIG_HID_UDRAW_PS3 is not set
3464 3465
 # CONFIG_HID_WACOM is not set
3465 3466
 # CONFIG_HID_XINMO is not set
3466 3467
 # CONFIG_HID_ZEROPLUS is not set
... ...
@@ -3490,6 +4133,7 @@ CONFIG_USB_SUPPORT=y
3490 3490
 CONFIG_USB_COMMON=m
3491 3491
 CONFIG_USB_ARCH_HAS_HCD=y
3492 3492
 CONFIG_USB=m
3493
+# CONFIG_USB_PCI is not set
3493 3494
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
3494 3495
 
3495 3496
 #
... ...
@@ -3508,14 +4152,13 @@ CONFIG_USB_DEFAULT_PERSIST=y
3508 3508
 #
3509 3509
 # CONFIG_USB_C67X00_HCD is not set
3510 3510
 CONFIG_USB_XHCI_HCD=m
3511
-CONFIG_USB_XHCI_PCI=m
3512 3511
 # CONFIG_USB_XHCI_PLATFORM is not set
3513 3512
 # CONFIG_USB_XHCI_MTK is not set
3514 3513
 # CONFIG_USB_XHCI_MVEBU is not set
3515 3514
 CONFIG_USB_EHCI_HCD=m
3516 3515
 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set
3517 3516
 CONFIG_USB_EHCI_TT_NEWSCHED=y
3518
-CONFIG_USB_EHCI_PCI=m
3517
+# CONFIG_USB_EHCI_HCD_ORION is not set
3519 3518
 # CONFIG_USB_EHCI_MSM is not set
3520 3519
 # CONFIG_USB_EHCI_TEGRA is not set
3521 3520
 # CONFIG_USB_EHCI_EXYNOS is not set
... ...
@@ -3526,13 +4169,12 @@ CONFIG_USB_EHCI_HCD_PLATFORM=m
3526 3526
 # CONFIG_USB_FOTG210_HCD is not set
3527 3527
 # CONFIG_USB_MAX3421_HCD is not set
3528 3528
 CONFIG_USB_OHCI_HCD=m
3529
-CONFIG_USB_OHCI_HCD_PCI=m
3530 3529
 CONFIG_USB_OHCI_HCD_SSB=y
3531 3530
 # CONFIG_USB_OHCI_EXYNOS is not set
3532 3531
 CONFIG_USB_OHCI_HCD_PLATFORM=m
3533
-CONFIG_USB_UHCI_HCD=m
3534 3532
 # CONFIG_USB_SL811_HCD is not set
3535 3533
 # CONFIG_USB_R8A66597_HCD is not set
3534
+# CONFIG_USB_HCD_BCMA is not set
3536 3535
 CONFIG_USB_HCD_SSB=m
3537 3536
 # CONFIG_USB_HCD_TEST_MODE is not set
3538 3537
 
... ...
@@ -3584,7 +4226,6 @@ CONFIG_USB_DWC2=m
3584 3584
 #
3585 3585
 # CONFIG_USB_DWC2_PERIPHERAL is not set
3586 3586
 CONFIG_USB_DWC2_DUAL_ROLE=y
3587
-# CONFIG_USB_DWC2_PCI is not set
3588 3587
 # CONFIG_USB_DWC2_DEBUG is not set
3589 3588
 # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
3590 3589
 # CONFIG_USB_CHIPIDEA is not set
... ...
@@ -3612,6 +4253,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3612 3612
 # CONFIG_USB_SERIAL_EDGEPORT is not set
3613 3613
 # CONFIG_USB_SERIAL_EDGEPORT_TI is not set
3614 3614
 # CONFIG_USB_SERIAL_F81232 is not set
3615
+# CONFIG_USB_SERIAL_F8153X is not set
3615 3616
 # CONFIG_USB_SERIAL_GARMIN is not set
3616 3617
 # CONFIG_USB_SERIAL_IPW is not set
3617 3618
 # CONFIG_USB_SERIAL_IUU is not set
... ...
@@ -3643,6 +4285,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3643 3643
 # CONFIG_USB_SERIAL_WISHBONE is not set
3644 3644
 # CONFIG_USB_SERIAL_SSU100 is not set
3645 3645
 # CONFIG_USB_SERIAL_QT2 is not set
3646
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
3646 3647
 # CONFIG_USB_SERIAL_DEBUG is not set
3647 3648
 
3648 3649
 #
... ...
@@ -3669,11 +4312,11 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3669 3669
 # CONFIG_USB_ISIGHTFW is not set
3670 3670
 # CONFIG_USB_YUREX is not set
3671 3671
 # CONFIG_USB_EZUSB_FX2 is not set
3672
+# CONFIG_USB_HUB_USB251XB is not set
3672 3673
 # CONFIG_USB_HSIC_USB3503 is not set
3673 3674
 # CONFIG_USB_HSIC_USB4604 is not set
3674 3675
 # CONFIG_USB_LINK_LAYER_TEST is not set
3675 3676
 # CONFIG_USB_CHAOSKEY is not set
3676
-# CONFIG_UCSI is not set
3677 3677
 
3678 3678
 #
3679 3679
 # USB Physical Layer drivers
... ...
@@ -3682,6 +4325,8 @@ CONFIG_USB_SERIAL_FTDI_SIO=m
3682 3682
 # CONFIG_NOP_USB_XCEIV is not set
3683 3683
 # CONFIG_USB_GPIO_VBUS is not set
3684 3684
 # CONFIG_USB_ISP1301 is not set
3685
+# CONFIG_USB_MSM_OTG is not set
3686
+# CONFIG_USB_QCOM_8X16_PHY is not set
3685 3687
 # CONFIG_USB_ULPI is not set
3686 3688
 CONFIG_USB_GADGET=m
3687 3689
 # CONFIG_USB_GADGET_DEBUG is not set
... ...
@@ -3699,35 +4344,32 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
3699 3699
 # CONFIG_USB_PXA27X is not set
3700 3700
 # CONFIG_USB_MV_UDC is not set
3701 3701
 # CONFIG_USB_MV_U3D is not set
3702
+# CONFIG_USB_SNP_UDC_PLAT is not set
3702 3703
 # CONFIG_USB_M66592 is not set
3703 3704
 # CONFIG_USB_BDC_UDC is not set
3704
-# CONFIG_USB_AMD5536UDC is not set
3705 3705
 # CONFIG_USB_NET2272 is not set
3706
-# CONFIG_USB_NET2280 is not set
3707
-# CONFIG_USB_GOKU is not set
3708
-# CONFIG_USB_EG20T is not set
3709 3706
 # CONFIG_USB_GADGET_XILINX is not set
3710 3707
 # CONFIG_USB_DUMMY_HCD is not set
3711 3708
 # CONFIG_USB_CONFIGFS is not set
3709
+
3710
+#
3711
+# USB Power Delivery and Type-C drivers
3712
+#
3713
+# CONFIG_TYPEC_UCSI is not set
3712 3714
 # CONFIG_USB_ULPI_BUS is not set
3713 3715
 # CONFIG_UWB is not set
3714 3716
 CONFIG_MMC=y
3715
-# CONFIG_MMC_DEBUG is not set
3716 3717
 CONFIG_PWRSEQ_EMMC=m
3717 3718
 CONFIG_PWRSEQ_SIMPLE=m
3718
-
3719
-#
3720
-# MMC/SD/SDIO Card Drivers
3721
-#
3722 3719
 CONFIG_MMC_BLOCK=y
3723 3720
 CONFIG_MMC_BLOCK_MINORS=16
3724
-CONFIG_MMC_BLOCK_BOUNCE=y
3725 3721
 # CONFIG_SDIO_UART is not set
3726 3722
 # CONFIG_MMC_TEST is not set
3727 3723
 
3728 3724
 #
3729 3725
 # MMC/SD/SDIO Host Controller Drivers
3730 3726
 #
3727
+# CONFIG_MMC_DEBUG is not set
3731 3728
 # CONFIG_MMC_ARMMMCI is not set
3732 3729
 CONFIG_MMC_SDHCI=y
3733 3730
 CONFIG_MMC_SDHCI_IO_ACCESSORS=y
... ...
@@ -3738,15 +4380,18 @@ CONFIG_MMC_SDHCI_PLTFM=y
3738 3738
 # CONFIG_MMC_SDHCI_OF_ARASAN is not set
3739 3739
 # CONFIG_MMC_SDHCI_OF_AT91 is not set
3740 3740
 # CONFIG_MMC_SDHCI_OF_ESDHC is not set
3741
+# CONFIG_MMC_SDHCI_CADENCE is not set
3741 3742
 # CONFIG_MMC_SDHCI_TEGRA is not set
3742 3743
 # CONFIG_MMC_SDHCI_PXAV3 is not set
3743 3744
 # CONFIG_MMC_SDHCI_F_SDH30 is not set
3744 3745
 CONFIG_MMC_SDHCI_IPROC=y
3746
+# CONFIG_MMC_MESON_GX is not set
3745 3747
 CONFIG_MMC_SDHCI_MSM=m
3746 3748
 # CONFIG_MMC_TIFM_SD is not set
3747 3749
 # CONFIG_MMC_SPI is not set
3748 3750
 # CONFIG_MMC_CB710 is not set
3749 3751
 # CONFIG_MMC_VIA_SDMMC is not set
3752
+# CONFIG_MMC_CAVIUM_THUNDERX is not set
3750 3753
 # CONFIG_MMC_DW is not set
3751 3754
 # CONFIG_MMC_VUB300 is not set
3752 3755
 # CONFIG_MMC_USHC is not set
... ...
@@ -3756,6 +4401,7 @@ CONFIG_MMC_SDHCI_MSM=m
3756 3756
 CONFIG_MMC_BCM2835=y
3757 3757
 # CONFIG_MMC_MTK is not set
3758 3758
 CONFIG_MMC_SDHCI_BRCMSTB=m
3759
+# CONFIG_MMC_SDHCI_XENON is not set
3759 3760
 # CONFIG_MEMSTICK is not set
3760 3761
 # CONFIG_NEW_LEDS is not set
3761 3762
 # CONFIG_ACCESSIBILITY is not set
... ...
@@ -3764,8 +4410,8 @@ CONFIG_EDAC_SUPPORT=y
3764 3764
 CONFIG_EDAC=y
3765 3765
 # CONFIG_EDAC_LEGACY_SYSFS is not set
3766 3766
 # CONFIG_EDAC_DEBUG is not set
3767
-CONFIG_EDAC_MM_EDAC=m
3768 3767
 # CONFIG_EDAC_LAYERSCAPE is not set
3768
+# CONFIG_EDAC_THUNDERX is not set
3769 3769
 # CONFIG_EDAC_XGENE is not set
3770 3770
 CONFIG_RTC_LIB=y
3771 3771
 CONFIG_RTC_CLASS=y
... ...
@@ -3774,6 +4420,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
3774 3774
 CONFIG_RTC_SYSTOHC=y
3775 3775
 CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
3776 3776
 # CONFIG_RTC_DEBUG is not set
3777
+# CONFIG_RTC_NVMEM is not set
3777 3778
 
3778 3779
 #
3779 3780
 # RTC interfaces
... ...
@@ -3789,6 +4436,7 @@ CONFIG_RTC_INTF_DEV=y
3789 3789
 #
3790 3790
 # CONFIG_RTC_DRV_ABB5ZES3 is not set
3791 3791
 # CONFIG_RTC_DRV_ABX80X is not set
3792
+CONFIG_RTC_DRV_BRCMSTB=y
3792 3793
 # CONFIG_RTC_DRV_DS1307 is not set
3793 3794
 # CONFIG_RTC_DRV_DS1374 is not set
3794 3795
 # CONFIG_RTC_DRV_DS1672 is not set
... ...
@@ -3869,9 +4517,11 @@ CONFIG_HAVE_S3C_RTC=y
3869 3869
 # CONFIG_RTC_DRV_SUN6I is not set
3870 3870
 # CONFIG_RTC_DRV_MV is not set
3871 3871
 # CONFIG_RTC_DRV_ARMADA38X is not set
3872
+# CONFIG_RTC_DRV_FTRTC010 is not set
3872 3873
 # CONFIG_RTC_DRV_TEGRA is not set
3873 3874
 # CONFIG_RTC_DRV_SNVS is not set
3874 3875
 # CONFIG_RTC_DRV_XGENE is not set
3876
+# CONFIG_RTC_DRV_R7301 is not set
3875 3877
 
3876 3878
 #
3877 3879
 # HID Sensor RTC drivers
... ...
@@ -3887,8 +4537,11 @@ CONFIG_DMA_ENGINE=y
3887 3887
 CONFIG_DMA_VIRTUAL_CHANNELS=m
3888 3888
 CONFIG_DMA_ACPI=y
3889 3889
 CONFIG_DMA_OF=y
3890
+# CONFIG_ALTERA_MSGDMA is not set
3890 3891
 # CONFIG_AMBA_PL08X is not set
3892
+# CONFIG_BCM_SBA_RAID is not set
3891 3893
 CONFIG_DMA_BCM2835=m
3894
+# CONFIG_DMA_SUN6I is not set
3892 3895
 # CONFIG_FSL_EDMA is not set
3893 3896
 # CONFIG_INTEL_IDMA64 is not set
3894 3897
 # CONFIG_K3_DMA is not set
... ...
@@ -3936,6 +4589,7 @@ CONFIG_VFIO_PCI=m
3936 3936
 CONFIG_VFIO_PCI_MMAP=y
3937 3937
 CONFIG_VFIO_PCI_INTX=y
3938 3938
 # CONFIG_VFIO_PLATFORM is not set
3939
+# CONFIG_VFIO_MDEV is not set
3939 3940
 CONFIG_IRQ_BYPASS_MANAGER=m
3940 3941
 CONFIG_VIRT_DRIVERS=y
3941 3942
 CONFIG_VIRTIO=y
... ...
@@ -3953,6 +4607,7 @@ CONFIG_VIRTIO_MMIO=y
3953 3953
 #
3954 3954
 # Microsoft Hyper-V guest support
3955 3955
 #
3956
+# CONFIG_HYPERV_TSCPAGE is not set
3956 3957
 
3957 3958
 #
3958 3959
 # Xen driver support
... ...
@@ -3968,10 +4623,61 @@ CONFIG_XEN_XENBUS_FRONTEND=y
3968 3968
 CONFIG_XEN_GNTDEV=m
3969 3969
 CONFIG_XEN_GRANT_DEV_ALLOC=m
3970 3970
 CONFIG_SWIOTLB_XEN=y
3971
+# CONFIG_XEN_PVCALLS_BACKEND is not set
3971 3972
 CONFIG_XEN_PRIVCMD=m
3972 3973
 CONFIG_XEN_EFI=y
3973 3974
 CONFIG_XEN_AUTO_XLATE=y
3974
-# CONFIG_STAGING is not set
3975
+CONFIG_STAGING=y
3976
+# CONFIG_IRDA is not set
3977
+# CONFIG_PRISM2_USB is not set
3978
+# CONFIG_COMEDI is not set
3979
+# CONFIG_RTL8192U is not set
3980
+# CONFIG_RTLLIB is not set
3981
+# CONFIG_RTL8723BS is not set
3982
+# CONFIG_R8712U is not set
3983
+# CONFIG_R8188EU is not set
3984
+# CONFIG_R8822BE is not set
3985
+# CONFIG_RTS5208 is not set
3986
+# CONFIG_VT6655 is not set
3987
+# CONFIG_VT6656 is not set
3988
+# CONFIG_FB_SM750 is not set
3989
+# CONFIG_FB_XGI is not set
3990
+
3991
+#
3992
+# Speakup console speech
3993
+#
3994
+# CONFIG_SPEAKUP is not set
3995
+# CONFIG_MFD_NVEC is not set
3996
+# CONFIG_STAGING_MEDIA is not set
3997
+
3998
+#
3999
+# Android
4000
+#
4001
+# CONFIG_STAGING_BOARD is not set
4002
+# CONFIG_LTE_GDM724X is not set
4003
+# CONFIG_LNET is not set
4004
+# CONFIG_DGNC is not set
4005
+# CONFIG_GS_FPGABOOT is not set
4006
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
4007
+# CONFIG_FB_TFT is not set
4008
+# CONFIG_FSL_MC_BUS is not set
4009
+# CONFIG_WILC1000_SDIO is not set
4010
+# CONFIG_WILC1000_SPI is not set
4011
+# CONFIG_MOST is not set
4012
+# CONFIG_KS7010 is not set
4013
+# CONFIG_GREYBUS is not set
4014
+CONFIG_BCM_VIDEOCORE=y
4015
+CONFIG_BCM2835_VCHIQ=m
4016
+# CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP is not set
4017
+CONFIG_SND_BCM2835=m
4018
+CONFIG_VIDEO_BCM2835=m
4019
+# CONFIG_CRYPTO_DEV_CCREE is not set
4020
+
4021
+#
4022
+# USB Power Delivery and Type-C drivers
4023
+#
4024
+# CONFIG_TYPEC_TCPM is not set
4025
+# CONFIG_PI433 is not set
3975 4026
 # CONFIG_GOLDFISH is not set
3976 4027
 # CONFIG_CHROME_PLATFORMS is not set
3977 4028
 CONFIG_CLKDEV_LOOKUP=y
... ...
@@ -3984,6 +4690,7 @@ CONFIG_COMMON_CLK=y
3984 3984
 CONFIG_COMMON_CLK_VERSATILE=y
3985 3985
 CONFIG_CLK_SP810=y
3986 3986
 CONFIG_CLK_VEXPRESS_OSC=y
3987
+# CONFIG_CLK_HSDK is not set
3987 3988
 # CONFIG_COMMON_CLK_SCPI is not set
3988 3989
 # CONFIG_COMMON_CLK_SI5351 is not set
3989 3990
 # CONFIG_COMMON_CLK_SI514 is not set
... ...
@@ -3997,14 +4704,19 @@ CONFIG_COMMON_CLK_XGENE=y
3997 3997
 # CONFIG_COMMON_CLK_PWM is not set
3998 3998
 # CONFIG_COMMON_CLK_PXA is not set
3999 3999
 # CONFIG_COMMON_CLK_PIC32 is not set
4000
+# CONFIG_COMMON_CLK_VC5 is not set
4000 4001
 CONFIG_COMMON_CLK_IPROC=y
4001 4002
 CONFIG_CLK_BCM_NS2=y
4003
+# CONFIG_CLK_BCM_SR is not set
4004
+# CONFIG_COMMON_CLK_HI3516CV300 is not set
4002 4005
 CONFIG_COMMON_CLK_HI3519=y
4006
+# CONFIG_COMMON_CLK_HI3660 is not set
4007
+# CONFIG_COMMON_CLK_HI3798CV200 is not set
4003 4008
 CONFIG_COMMON_CLK_HI6220=y
4004 4009
 CONFIG_RESET_HISI=y
4005 4010
 # CONFIG_STUB_CLK_HI6220 is not set
4006 4011
 CONFIG_COMMON_CLK_MEDIATEK=y
4007
-CONFIG_COMMON_CLK_MT8135=y
4012
+# CONFIG_COMMON_CLK_MT6797 is not set
4008 4013
 CONFIG_COMMON_CLK_MT8173=y
4009 4014
 CONFIG_COMMON_CLK_AMLOGIC=y
4010 4015
 CONFIG_COMMON_CLK_GXBB=y
... ...
@@ -4016,27 +4728,27 @@ CONFIG_COMMON_CLK_SAMSUNG=y
4016 4016
 CONFIG_EXYNOS_ARM64_COMMON_CLK=y
4017 4017
 CONFIG_EXYNOS_AUDSS_CLK_CON=y
4018 4018
 CONFIG_SUNXI_CCU=y
4019
-# CONFIG_SUN6I_A31_CCU is not set
4020
-# CONFIG_SUN8I_A23_CCU is not set
4021
-# CONFIG_SUN8I_A33_CCU is not set
4019
+# CONFIG_SUN50I_A64_CCU is not set
4020
+# CONFIG_SUN8I_A83T_CCU is not set
4022 4021
 # CONFIG_SUN8I_H3_CCU is not set
4023
-
4024
-#
4025
-# Hardware Spinlock drivers
4026
-#
4027
-# CONFIG_HWSPINLOCK_QCOM is not set
4022
+# CONFIG_SUN8I_DE2_CCU is not set
4023
+# CONFIG_SUN8I_R_CCU is not set
4024
+# CONFIG_HWSPINLOCK is not set
4028 4025
 
4029 4026
 #
4030 4027
 # Clock Source drivers
4031 4028
 #
4032
-CONFIG_CLKSRC_OF=y
4033
-CONFIG_CLKSRC_ACPI=y
4034
-CONFIG_CLKSRC_PROBE=y
4029
+CONFIG_TIMER_OF=y
4030
+CONFIG_TIMER_ACPI=y
4031
+CONFIG_TIMER_PROBE=y
4035 4032
 CONFIG_CLKSRC_MMIO=y
4036 4033
 CONFIG_ROCKCHIP_TIMER=y
4037 4034
 CONFIG_ARM_ARCH_TIMER=y
4038 4035
 CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
4036
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
4039 4037
 CONFIG_FSL_ERRATUM_A008585=y
4038
+# CONFIG_HISILICON_ERRATUM_161010101 is not set
4039
+CONFIG_ARM64_ERRATUM_858921=y
4040 4040
 CONFIG_ARM_TIMER_SP804=y
4041 4041
 # CONFIG_ATMEL_PIT is not set
4042 4042
 CONFIG_MTK_TIMER=y
... ...
@@ -4055,8 +4767,10 @@ CONFIG_PCC=y
4055 4055
 CONFIG_BCM2835_MBOX=y
4056 4056
 # CONFIG_HI6220_MBOX is not set
4057 4057
 # CONFIG_MAILBOX_TEST is not set
4058
+# CONFIG_QCOM_APCS_IPC is not set
4058 4059
 CONFIG_XGENE_SLIMPRO_MBOX=y
4059 4060
 CONFIG_BCM_PDC_MBOX=y
4061
+CONFIG_BCM_FLEXRM_MBOX=y
4060 4062
 CONFIG_IOMMU_API=y
4061 4063
 CONFIG_IOMMU_SUPPORT=y
4062 4064
 
... ...
@@ -4068,37 +4782,62 @@ CONFIG_IOMMU_SUPPORT=y
4068 4068
 CONFIG_IOMMU_IOVA=y
4069 4069
 CONFIG_OF_IOMMU=y
4070 4070
 CONFIG_IOMMU_DMA=y
4071
+# CONFIG_ROCKCHIP_IOMMU is not set
4071 4072
 # CONFIG_EXYNOS_IOMMU is not set
4072 4073
 # CONFIG_ARM_SMMU is not set
4073 4074
 # CONFIG_ARM_SMMU_V3 is not set
4074 4075
 # CONFIG_MTK_IOMMU is not set
4076
+# CONFIG_QCOM_IOMMU is not set
4075 4077
 
4076 4078
 #
4077 4079
 # Remoteproc drivers
4078 4080
 #
4079
-# CONFIG_STE_MODEM_RPROC is not set
4081
+# CONFIG_REMOTEPROC is not set
4080 4082
 
4081 4083
 #
4082 4084
 # Rpmsg drivers
4083 4085
 #
4086
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
4084 4087
 
4085 4088
 #
4086 4089
 # SOC (System On Chip) specific Drivers
4087 4090
 #
4088 4091
 
4089 4092
 #
4093
+# Amlogic SoC drivers
4094
+#
4095
+# CONFIG_MESON_GX_SOCINFO is not set
4096
+
4097
+#
4090 4098
 # Broadcom SoC drivers
4091 4099
 #
4092 4100
 CONFIG_RASPBERRYPI_POWER=y
4101
+# CONFIG_SOC_BRCMSTB is not set
4102
+
4103
+#
4104
+# i.MX SoC drivers
4105
+#
4093 4106
 CONFIG_MTK_INFRACFG=y
4094 4107
 # CONFIG_MTK_PMIC_WRAP is not set
4095 4108
 # CONFIG_MTK_SCPSYS is not set
4109
+
4110
+#
4111
+# Qualcomm SoC drivers
4112
+#
4096 4113
 CONFIG_QCOM_GSBI=y
4114
+CONFIG_QCOM_MDT_LOADER=y
4115
+CONFIG_ROCKCHIP_GRF=y
4097 4116
 CONFIG_ROCKCHIP_PM_DOMAINS=y
4098 4117
 CONFIG_SOC_SAMSUNG=y
4118
+CONFIG_EXYNOS_PMU=y
4119
+CONFIG_EXYNOS_PM_DOMAINS=y
4099 4120
 CONFIG_SUNXI_SRAM=y
4100 4121
 CONFIG_ARCH_TEGRA_132_SOC=y
4101 4122
 CONFIG_ARCH_TEGRA_210_SOC=y
4123
+# CONFIG_ARCH_TEGRA_186_SOC is not set
4124
+CONFIG_SOC_TEGRA_FUSE=y
4125
+CONFIG_SOC_TEGRA_FLOWCTRL=y
4126
+CONFIG_SOC_TEGRA_PMC=y
4102 4127
 # CONFIG_SOC_TI is not set
4103 4128
 CONFIG_PM_DEVFREQ=y
4104 4129
 
... ...
@@ -4129,8 +4868,10 @@ CONFIG_PWM_BCM2835=m
4129 4129
 # CONFIG_PWM_BERLIN is not set
4130 4130
 # CONFIG_PWM_BRCMSTB is not set
4131 4131
 # CONFIG_PWM_FSL_FTM is not set
4132
+# CONFIG_PWM_HIBVT is not set
4132 4133
 # CONFIG_PWM_MESON is not set
4133 4134
 # CONFIG_PWM_MTK_DISP is not set
4135
+# CONFIG_PWM_MEDIATEK is not set
4134 4136
 # CONFIG_PWM_PCA9685 is not set
4135 4137
 CONFIG_PWM_ROCKCHIP=m
4136 4138
 # CONFIG_PWM_SAMSUNG is not set
... ...
@@ -4145,59 +4886,72 @@ CONFIG_ARM_GIC_V3_ITS=y
4145 4145
 CONFIG_BRCMSTB_L2_IRQ=y
4146 4146
 CONFIG_DW_APB_ICTL=y
4147 4147
 CONFIG_HISILICON_IRQ_MBIGEN=y
4148
+CONFIG_MVEBU_GICP=y
4149
+CONFIG_MVEBU_ICU=y
4148 4150
 CONFIG_MVEBU_ODMI=y
4149 4151
 CONFIG_MVEBU_PIC=y
4150 4152
 CONFIG_LS_SCFG_MSI=y
4151 4153
 CONFIG_PARTITION_PERCPU=y
4154
+# CONFIG_QCOM_IRQ_COMBINER is not set
4152 4155
 # CONFIG_IPACK_BUS is not set
4153 4156
 CONFIG_ARCH_HAS_RESET_CONTROLLER=y
4154 4157
 CONFIG_RESET_CONTROLLER=y
4155 4158
 # CONFIG_RESET_ATH79 is not set
4156 4159
 CONFIG_RESET_BERLIN=y
4160
+# CONFIG_RESET_IMX7 is not set
4161
+# CONFIG_RESET_LANTIQ is not set
4157 4162
 # CONFIG_RESET_LPC18XX is not set
4158 4163
 CONFIG_RESET_MESON=y
4159 4164
 # CONFIG_RESET_PISTACHIO is not set
4160 4165
 # CONFIG_RESET_SOCFPGA is not set
4161 4166
 # CONFIG_RESET_STM32 is not set
4162 4167
 CONFIG_RESET_SUNXI=y
4163
-# CONFIG_TI_SYSCON_RESET is not set
4168
+# CONFIG_RESET_TI_SYSCON is not set
4164 4169
 # CONFIG_RESET_ZYNQ is not set
4170
+# CONFIG_COMMON_RESET_HI3660 is not set
4165 4171
 CONFIG_COMMON_RESET_HI6220=y
4172
+# CONFIG_RESET_TEGRA_BPMP is not set
4166 4173
 # CONFIG_FMC is not set
4167 4174
 
4168 4175
 #
4169 4176
 # PHY Subsystem
4170 4177
 #
4171 4178
 CONFIG_GENERIC_PHY=y
4179
+# CONFIG_PHY_XGENE is not set
4180
+# CONFIG_PHY_SUN9I_USB is not set
4181
+# CONFIG_PHY_MESON8B_USB2 is not set
4182
+# CONFIG_PHY_MESON_GXL_USB2 is not set
4183
+# CONFIG_BCM_KONA_USB2_PHY is not set
4172 4184
 # CONFIG_PHY_BCM_NS_USB2 is not set
4173 4185
 # CONFIG_PHY_BCM_NS_USB3 is not set
4174
-# CONFIG_PHY_BERLIN_USB is not set
4186
+CONFIG_PHY_NS2_PCIE=y
4187
+# CONFIG_PHY_NS2_USB_DRD is not set
4188
+CONFIG_PHY_BRCM_SATA=y
4189
+# CONFIG_PHY_HI6220_USB is not set
4175 4190
 # CONFIG_PHY_BERLIN_SATA is not set
4176
-CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
4191
+# CONFIG_PHY_BERLIN_USB is not set
4192
+# CONFIG_PHY_MVEBU_CP110_COMPHY is not set
4177 4193
 # CONFIG_PHY_PXA_28NM_HSIC is not set
4178 4194
 # CONFIG_PHY_PXA_28NM_USB2 is not set
4179
-CONFIG_PHY_EXYNOS_DP_VIDEO=y
4180
-# CONFIG_BCM_KONA_USB2_PHY is not set
4181
-# CONFIG_PHY_MT65XX_USB3 is not set
4182
-# CONFIG_PHY_HI6220_USB is not set
4183
-# CONFIG_PHY_SUN9I_USB is not set
4184
-CONFIG_PHY_SAMSUNG_USB2=m
4185
-# CONFIG_PHY_EXYNOS4210_USB2 is not set
4186
-# CONFIG_PHY_EXYNOS4X12_USB2 is not set
4187
-# CONFIG_PHY_EXYNOS5250_USB2 is not set
4195
+# CONFIG_PHY_MTK_TPHY is not set
4188 4196
 # CONFIG_PHY_QCOM_APQ8064_SATA is not set
4189 4197
 # CONFIG_PHY_QCOM_IPQ806X_SATA is not set
4190
-# CONFIG_PHY_ROCKCHIP_USB is not set
4191
-# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set
4192
-# CONFIG_PHY_ROCKCHIP_EMMC is not set
4198
+# CONFIG_PHY_QCOM_QMP is not set
4199
+# CONFIG_PHY_QCOM_QUSB2 is not set
4200
+# CONFIG_PHY_QCOM_UFS is not set
4193 4201
 # CONFIG_PHY_ROCKCHIP_DP is not set
4202
+# CONFIG_PHY_ROCKCHIP_EMMC is not set
4194 4203
 # CONFIG_PHY_ROCKCHIP_PCIE is not set
4195 4204
 # CONFIG_PHY_ROCKCHIP_TYPEC is not set
4196
-# CONFIG_PHY_XGENE is not set
4197
-# CONFIG_PHY_QCOM_UFS is not set
4198
-CONFIG_PHY_BRCM_SATA=y
4205
+# CONFIG_PHY_ROCKCHIP_USB is not set
4206
+CONFIG_PHY_EXYNOS_DP_VIDEO=y
4207
+CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
4208
+# CONFIG_PHY_EXYNOS_PCIE is not set
4209
+CONFIG_PHY_SAMSUNG_USB2=m
4210
+# CONFIG_PHY_EXYNOS4210_USB2 is not set
4211
+# CONFIG_PHY_EXYNOS4X12_USB2 is not set
4212
+# CONFIG_PHY_EXYNOS5250_USB2 is not set
4199 4213
 # CONFIG_PHY_TEGRA_XUSB is not set
4200
-CONFIG_PHY_NS2_PCIE=y
4201 4214
 # CONFIG_POWERCAP is not set
4202 4215
 # CONFIG_MCB is not set
4203 4216
 
... ...
@@ -4205,9 +4959,11 @@ CONFIG_PHY_NS2_PCIE=y
4205 4205
 # Performance monitor support
4206 4206
 #
4207 4207
 CONFIG_ARM_PMU=y
4208
+CONFIG_ARM_PMU_ACPI=y
4209
+# CONFIG_QCOM_L2_PMU is not set
4210
+# CONFIG_QCOM_L3_PMU is not set
4208 4211
 # CONFIG_XGENE_PMU is not set
4209 4212
 CONFIG_RAS=y
4210
-# CONFIG_THUNDERBOLT is not set
4211 4213
 
4212 4214
 #
4213 4215
 # Android
... ...
@@ -4219,21 +4975,24 @@ CONFIG_ND_BLK=y
4219 4219
 CONFIG_ND_CLAIM=y
4220 4220
 CONFIG_ND_BTT=y
4221 4221
 CONFIG_BTT=y
4222
+CONFIG_DAX=y
4222 4223
 CONFIG_DEV_DAX=m
4223
-CONFIG_NR_DEV_DAX=32768
4224 4224
 # CONFIG_NVMEM is not set
4225 4225
 # CONFIG_STM is not set
4226 4226
 # CONFIG_INTEL_TH is not set
4227
+# CONFIG_FPGA is not set
4227 4228
 
4228 4229
 #
4229
-# FPGA Configuration Support
4230
+# FSI support
4230 4231
 #
4231
-# CONFIG_FPGA is not set
4232
+# CONFIG_FSI is not set
4233
+# CONFIG_TEE is not set
4232 4234
 
4233 4235
 #
4234 4236
 # Firmware Drivers
4235 4237
 #
4236 4238
 CONFIG_ARM_PSCI_FW=y
4239
+# CONFIG_ARM_PSCI_CHECKER is not set
4237 4240
 CONFIG_ARM_SCPI_PROTOCOL=y
4238 4241
 CONFIG_ARM_SCPI_POWER_DOMAIN=y
4239 4242
 CONFIG_FIRMWARE_MEMMAP=y
... ...
@@ -4244,6 +5003,7 @@ CONFIG_RASPBERRYPI_FIRMWARE=y
4244 4244
 CONFIG_QCOM_SCM=y
4245 4245
 CONFIG_QCOM_SCM_64=y
4246 4246
 CONFIG_HAVE_ARM_SMCCC=y
4247
+# CONFIG_GOOGLE_FIRMWARE is not set
4247 4248
 
4248 4249
 #
4249 4250
 # EFI (Extensible Firmware Interface) Support
... ...
@@ -4255,7 +5015,14 @@ CONFIG_EFI_RUNTIME_WRAPPERS=y
4255 4255
 CONFIG_EFI_ARMSTUB=y
4256 4256
 # CONFIG_EFI_CAPSULE_LOADER is not set
4257 4257
 # CONFIG_EFI_TEST is not set
4258
+# CONFIG_RESET_ATTACK_MITIGATION is not set
4259
+# CONFIG_EFI_DEV_PATH_PARSER is not set
4258 4260
 CONFIG_MESON_SM=y
4261
+
4262
+#
4263
+# Tegra firmware driver
4264
+#
4265
+# CONFIG_TEGRA_IVC is not set
4259 4266
 CONFIG_ACPI=y
4260 4267
 CONFIG_ACPI_GENERIC_GSI=y
4261 4268
 CONFIG_ACPI_CCA_REQUIRED=y
... ...
@@ -4281,10 +5048,14 @@ CONFIG_ACPI_PCI_SLOT=y
4281 4281
 CONFIG_ACPI_CONTAINER=y
4282 4282
 CONFIG_ACPI_HED=y
4283 4283
 # CONFIG_ACPI_CUSTOM_METHOD is not set
4284
+# CONFIG_ACPI_BGRT is not set
4284 4285
 CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
4286
+CONFIG_HAVE_ACPI_APEI=y
4287
+# CONFIG_ACPI_APEI is not set
4285 4288
 CONFIG_PMIC_OPREGION=y
4286 4289
 # CONFIG_ACPI_CONFIGFS is not set
4287 4290
 CONFIG_ACPI_IORT=y
4291
+CONFIG_ACPI_GTDT=y
4288 4292
 
4289 4293
 #
4290 4294
 # File systems
... ...
@@ -4344,6 +5115,8 @@ CONFIG_AUTOFS4_FS=m
4344 4344
 CONFIG_FUSE_FS=m
4345 4345
 # CONFIG_CUSE is not set
4346 4346
 CONFIG_OVERLAY_FS=m
4347
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
4348
+# CONFIG_OVERLAY_FS_INDEX is not set
4347 4349
 
4348 4350
 #
4349 4351
 # Caches
... ...
@@ -4403,7 +5176,6 @@ CONFIG_MISC_FILESYSTEMS=y
4403 4403
 # CONFIG_BEFS_FS is not set
4404 4404
 # CONFIG_BFS_FS is not set
4405 4405
 # CONFIG_EFS_FS is not set
4406
-# CONFIG_LOGFS is not set
4407 4406
 CONFIG_CRAMFS=m
4408 4407
 CONFIG_SQUASHFS=m
4409 4408
 CONFIG_SQUASHFS_FILE_CACHE=y
... ...
@@ -4416,6 +5188,7 @@ CONFIG_SQUASHFS_ZLIB=y
4416 4416
 # CONFIG_SQUASHFS_LZ4 is not set
4417 4417
 CONFIG_SQUASHFS_LZO=y
4418 4418
 CONFIG_SQUASHFS_XZ=y
4419
+# CONFIG_SQUASHFS_ZSTD is not set
4419 4420
 # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
4420 4421
 # CONFIG_SQUASHFS_EMBEDDED is not set
4421 4422
 CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
... ...
@@ -4436,7 +5209,6 @@ CONFIG_PSTORE_ZLIB_COMPRESS=y
4436 4436
 # CONFIG_SYSV_FS is not set
4437 4437
 # CONFIG_UFS_FS is not set
4438 4438
 # CONFIG_EXOFS_FS is not set
4439
-CONFIG_ORE=m
4440 4439
 CONFIG_NETWORK_FILESYSTEMS=y
4441 4440
 CONFIG_NFS_FS=m
4442 4441
 CONFIG_NFS_V2=m
... ...
@@ -4448,7 +5220,6 @@ CONFIG_NFS_V4_1=y
4448 4448
 CONFIG_NFS_V4_2=y
4449 4449
 CONFIG_PNFS_FILE_LAYOUT=m
4450 4450
 CONFIG_PNFS_BLOCK=m
4451
-CONFIG_PNFS_OBJLAYOUT=m
4452 4451
 CONFIG_PNFS_FLEXFILE_LAYOUT=m
4453 4452
 CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
4454 4453
 # CONFIG_NFS_V4_1_MIGRATION is not set
... ...
@@ -4491,8 +5262,8 @@ CONFIG_CIFS_POSIX=y
4491 4491
 CONFIG_CIFS_ACL=y
4492 4492
 CONFIG_CIFS_DEBUG=y
4493 4493
 # CONFIG_CIFS_DEBUG2 is not set
4494
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
4494 4495
 CONFIG_CIFS_DFS_UPCALL=y
4495
-CONFIG_CIFS_SMB2=y
4496 4496
 # CONFIG_CIFS_SMB311 is not set
4497 4497
 # CONFIG_CIFS_FSCACHE is not set
4498 4498
 # CONFIG_NCP_FS is not set
... ...
@@ -4570,6 +5341,7 @@ CONFIG_VHOST=m
4570 4570
 # printk and dmesg options
4571 4571
 #
4572 4572
 CONFIG_PRINTK_TIME=y
4573
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
4573 4574
 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
4574 4575
 # CONFIG_BOOT_PRINTK_DELAY is not set
4575 4576
 CONFIG_DYNAMIC_DEBUG=y
... ...
@@ -4598,6 +5370,7 @@ CONFIG_FRAME_POINTER=y
4598 4598
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
4599 4599
 CONFIG_MAGIC_SYSRQ=y
4600 4600
 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
4601
+# CONFIG_MAGIC_SYSRQ_SERIAL is not set
4601 4602
 CONFIG_DEBUG_KERNEL=y
4602 4603
 
4603 4604
 #
... ...
@@ -4607,12 +5380,15 @@ CONFIG_DEBUG_KERNEL=y
4607 4607
 # CONFIG_DEBUG_PAGEALLOC is not set
4608 4608
 # CONFIG_PAGE_POISONING is not set
4609 4609
 # CONFIG_DEBUG_PAGE_REF is not set
4610
+# CONFIG_DEBUG_RODATA_TEST is not set
4610 4611
 # CONFIG_DEBUG_OBJECTS is not set
4611 4612
 # CONFIG_DEBUG_SLAB is not set
4612 4613
 CONFIG_HAVE_DEBUG_KMEMLEAK=y
4613 4614
 # CONFIG_DEBUG_KMEMLEAK is not set
4614 4615
 # CONFIG_DEBUG_STACK_USAGE is not set
4615 4616
 # CONFIG_DEBUG_VM is not set
4617
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
4618
+# CONFIG_DEBUG_VIRTUAL is not set
4616 4619
 # CONFIG_DEBUG_MEMORY_INIT is not set
4617 4620
 # CONFIG_DEBUG_PER_CPU_MAPS is not set
4618 4621
 CONFIG_HAVE_ARCH_KASAN=y
... ...
@@ -4624,9 +5400,7 @@ CONFIG_ARCH_HAS_KCOV=y
4624 4624
 #
4625 4625
 # Debug Lockups and Hangs
4626 4626
 #
4627
-CONFIG_LOCKUP_DETECTOR=y
4628
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
4629
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
4627
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
4630 4628
 CONFIG_DETECT_HUNG_TASK=y
4631 4629
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=0
4632 4630
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
... ...
@@ -4640,7 +5414,6 @@ CONFIG_SCHED_INFO=y
4640 4640
 CONFIG_SCHEDSTATS=y
4641 4641
 # CONFIG_SCHED_STACK_END_CHECK is not set
4642 4642
 # CONFIG_DEBUG_TIMEKEEPING is not set
4643
-CONFIG_TIMER_STATS=y
4644 4643
 
4645 4644
 #
4646 4645
 # Lock Debugging (spinlocks, mutexes, etc...)
... ...
@@ -4655,7 +5428,9 @@ CONFIG_TIMER_STATS=y
4655 4655
 # CONFIG_DEBUG_ATOMIC_SLEEP is not set
4656 4656
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
4657 4657
 # CONFIG_LOCK_TORTURE_TEST is not set
4658
+# CONFIG_WW_MUTEX_SELFTEST is not set
4658 4659
 CONFIG_STACKTRACE=y
4660
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
4659 4661
 # CONFIG_DEBUG_KOBJECT is not set
4660 4662
 CONFIG_HAVE_DEBUG_BUGVERBOSE=y
4661 4663
 CONFIG_DEBUG_BUGVERBOSE=y
... ...
@@ -4669,7 +5444,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
4669 4669
 # RCU Debugging
4670 4670
 #
4671 4671
 # CONFIG_PROVE_RCU is not set
4672
-# CONFIG_SPARSE_RCU_POINTER is not set
4673 4672
 # CONFIG_TORTURE_TEST is not set
4674 4673
 # CONFIG_RCU_PERF_TEST is not set
4675 4674
 # CONFIG_RCU_TORTURE_TEST is not set
... ...
@@ -4708,20 +5482,23 @@ CONFIG_BRANCH_PROFILE_NONE=y
4708 4708
 # CONFIG_PROFILE_ALL_BRANCHES is not set
4709 4709
 # CONFIG_STACK_TRACER is not set
4710 4710
 CONFIG_BLK_DEV_IO_TRACE=y
4711
-CONFIG_KPROBE_EVENT=y
4712
-CONFIG_PROBE_EVENTS=y
4711
+# CONFIG_KPROBE_EVENTS is not set
4712
+# CONFIG_UPROBE_EVENTS is not set
4713
+# CONFIG_PROBE_EVENTS is not set
4713 4714
 # CONFIG_FTRACE_STARTUP_TEST is not set
4714 4715
 # CONFIG_TRACEPOINT_BENCHMARK is not set
4715 4716
 # CONFIG_RING_BUFFER_BENCHMARK is not set
4716 4717
 # CONFIG_RING_BUFFER_STARTUP_TEST is not set
4717
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
4718
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
4718 4719
 CONFIG_TRACING_EVENTS_GPIO=y
4720
+# CONFIG_DMA_API_DEBUG is not set
4719 4721
 
4720 4722
 #
4721 4723
 # Runtime Testing
4722 4724
 #
4723 4725
 # CONFIG_LKDTM is not set
4724 4726
 # CONFIG_TEST_LIST_SORT is not set
4727
+# CONFIG_TEST_SORT is not set
4725 4728
 # CONFIG_KPROBES_SANITY_TEST is not set
4726 4729
 # CONFIG_BACKTRACE_SELF_TEST is not set
4727 4730
 # CONFIG_RBTREE_TEST is not set
... ...
@@ -4737,14 +5514,16 @@ CONFIG_TRACING_EVENTS_GPIO=y
4737 4737
 # CONFIG_TEST_UUID is not set
4738 4738
 # CONFIG_TEST_RHASHTABLE is not set
4739 4739
 # CONFIG_TEST_HASH is not set
4740
-# CONFIG_DMA_API_DEBUG is not set
4741 4740
 # CONFIG_TEST_LKM is not set
4742 4741
 # CONFIG_TEST_USER_COPY is not set
4743 4742
 # CONFIG_TEST_BPF is not set
4744 4743
 # CONFIG_TEST_FIRMWARE is not set
4744
+# CONFIG_TEST_SYSCTL is not set
4745 4745
 # CONFIG_TEST_UDELAY is not set
4746
-CONFIG_MEMTEST=y
4747 4746
 # CONFIG_TEST_STATIC_KEYS is not set
4747
+# CONFIG_TEST_KMOD is not set
4748
+CONFIG_MEMTEST=y
4749
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
4748 4750
 # CONFIG_SAMPLES is not set
4749 4751
 CONFIG_HAVE_ARCH_KGDB=y
4750 4752
 # CONFIG_KGDB is not set
... ...
@@ -4754,17 +5533,21 @@ CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
4754 4754
 CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
4755 4755
 CONFIG_STRICT_DEVMEM=y
4756 4756
 # CONFIG_IO_STRICT_DEVMEM is not set
4757
-# CONFIG_ARM64_PTDUMP is not set
4757
+# CONFIG_ARM64_PTDUMP_CORE is not set
4758
+# CONFIG_ARM64_PTDUMP_DEBUGFS is not set
4758 4759
 # CONFIG_PID_IN_CONTEXTIDR is not set
4759 4760
 # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
4760
-CONFIG_DEBUG_SET_MODULE_RONX=y
4761
+# CONFIG_DEBUG_WX is not set
4761 4762
 # CONFIG_DEBUG_ALIGN_RODATA is not set
4763
+# CONFIG_DEBUG_EFI is not set
4764
+# CONFIG_ARM64_RELOC_TEST is not set
4762 4765
 # CONFIG_CORESIGHT is not set
4763 4766
 
4764 4767
 #
4765 4768
 # Security options
4766 4769
 #
4767 4770
 CONFIG_KEYS=y
4771
+CONFIG_KEYS_COMPAT=y
4768 4772
 # CONFIG_PERSISTENT_KEYRINGS is not set
4769 4773
 # CONFIG_BIG_KEYS is not set
4770 4774
 CONFIG_TRUSTED_KEYS=m
... ...
@@ -4772,15 +5555,17 @@ CONFIG_ENCRYPTED_KEYS=m
4772 4772
 # CONFIG_KEY_DH_OPERATIONS is not set
4773 4773
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
4774 4774
 CONFIG_SECURITY=y
4775
+# CONFIG_SECURITY_WRITABLE_HOOKS is not set
4775 4776
 CONFIG_SECURITYFS=y
4776 4777
 CONFIG_SECURITY_NETWORK=y
4777 4778
 # CONFIG_SECURITY_NETWORK_XFRM is not set
4778 4779
 CONFIG_SECURITY_PATH=y
4779 4780
 CONFIG_LSM_MMAP_MIN_ADDR=65536
4780 4781
 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
4781
-CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
4782 4782
 CONFIG_HARDENED_USERCOPY=y
4783 4783
 # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
4784
+# CONFIG_FORTIFY_SOURCE is not set
4785
+# CONFIG_STATIC_USERMODEHELPER is not set
4784 4786
 CONFIG_SECURITY_SELINUX=y
4785 4787
 # CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
4786 4788
 # CONFIG_SECURITY_SELINUX_DISABLE is not set
... ...
@@ -4796,6 +5581,7 @@ CONFIG_SECURITY_APPARMOR=y
4796 4796
 CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
4797 4797
 CONFIG_SECURITY_APPARMOR_HASH=y
4798 4798
 CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
4799
+# CONFIG_SECURITY_APPARMOR_DEBUG is not set
4799 4800
 # CONFIG_SECURITY_LOADPIN is not set
4800 4801
 CONFIG_SECURITY_YAMA=y
4801 4802
 CONFIG_INTEGRITY=y
... ...
@@ -4834,6 +5620,7 @@ CONFIG_CRYPTO_RNG_DEFAULT=m
4834 4834
 CONFIG_CRYPTO_AKCIPHER2=y
4835 4835
 CONFIG_CRYPTO_AKCIPHER=y
4836 4836
 CONFIG_CRYPTO_KPP2=y
4837
+CONFIG_CRYPTO_ACOMP2=y
4837 4838
 CONFIG_CRYPTO_RSA=y
4838 4839
 # CONFIG_CRYPTO_DH is not set
4839 4840
 # CONFIG_CRYPTO_ECDH is not set
... ...
@@ -4906,6 +5693,7 @@ CONFIG_CRYPTO_SHA512=y
4906 4906
 # Ciphers
4907 4907
 #
4908 4908
 CONFIG_CRYPTO_AES=y
4909
+# CONFIG_CRYPTO_AES_TI is not set
4909 4910
 # CONFIG_CRYPTO_ANUBIS is not set
4910 4911
 CONFIG_CRYPTO_ARC4=m
4911 4912
 # CONFIG_CRYPTO_BLOWFISH is not set
... ...
@@ -4950,11 +5738,19 @@ CONFIG_CRYPTO_HASH_INFO=y
4950 4950
 CONFIG_CRYPTO_HW=y
4951 4951
 # CONFIG_CRYPTO_DEV_MARVELL_CESA is not set
4952 4952
 # CONFIG_CRYPTO_DEV_FSL_CAAM is not set
4953
+# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set
4954
+# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set
4953 4955
 # CONFIG_CRYPTO_DEV_S5P is not set
4954 4956
 # CONFIG_CRYPTO_DEV_CCP is not set
4957
+# CONFIG_CAVIUM_CPT is not set
4958
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
4959
+# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
4955 4960
 # CONFIG_CRYPTO_DEV_QCE is not set
4956 4961
 # CONFIG_CRYPTO_DEV_ROCKCHIP is not set
4957 4962
 # CONFIG_CRYPTO_DEV_CHELSIO is not set
4963
+# CONFIG_CRYPTO_DEV_VIRTIO is not set
4964
+# CONFIG_CRYPTO_DEV_BCM_SPU is not set
4965
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
4958 4966
 CONFIG_ASYMMETRIC_KEY_TYPE=y
4959 4967
 CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
4960 4968
 CONFIG_X509_CERTIFICATE_PARSER=y
... ...
@@ -4970,6 +5766,7 @@ CONFIG_SYSTEM_TRUSTED_KEYRING=y
4970 4970
 CONFIG_SYSTEM_TRUSTED_KEYS=""
4971 4971
 # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
4972 4972
 # CONFIG_SECONDARY_TRUSTED_KEYRING is not set
4973
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
4973 4974
 # CONFIG_ARM64_CRYPTO is not set
4974 4975
 CONFIG_BINARY_PRINTF=y
4975 4976
 
... ...
@@ -4996,9 +5793,11 @@ CONFIG_CRC32_SLICEBY8=y
4996 4996
 # CONFIG_CRC32_SLICEBY4 is not set
4997 4997
 # CONFIG_CRC32_SARWATE is not set
4998 4998
 # CONFIG_CRC32_BIT is not set
4999
+# CONFIG_CRC4 is not set
4999 5000
 # CONFIG_CRC7 is not set
5000 5001
 CONFIG_LIBCRC32C=y
5001 5002
 # CONFIG_CRC8 is not set
5003
+CONFIG_XXHASH=m
5002 5004
 CONFIG_AUDIT_GENERIC=y
5003 5005
 CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
5004 5006
 CONFIG_AUDIT_COMPAT_GENERIC=y
... ...
@@ -5008,6 +5807,8 @@ CONFIG_ZLIB_DEFLATE=y
5008 5008
 CONFIG_LZO_COMPRESS=y
5009 5009
 CONFIG_LZO_DECOMPRESS=y
5010 5010
 CONFIG_LZ4_DECOMPRESS=y
5011
+CONFIG_ZSTD_COMPRESS=m
5012
+CONFIG_ZSTD_DECOMPRESS=m
5011 5013
 CONFIG_XZ_DEC=y
5012 5014
 CONFIG_XZ_DEC_X86=y
5013 5015
 CONFIG_XZ_DEC_POWERPC=y
... ...
@@ -5028,11 +5829,14 @@ CONFIG_TEXTSEARCH=y
5028 5028
 CONFIG_TEXTSEARCH_KMP=m
5029 5029
 CONFIG_TEXTSEARCH_BM=m
5030 5030
 CONFIG_TEXTSEARCH_FSM=m
5031
+CONFIG_BTREE=y
5031 5032
 CONFIG_RADIX_TREE_MULTIORDER=y
5032 5033
 CONFIG_ASSOCIATIVE_ARRAY=y
5033 5034
 CONFIG_HAS_IOMEM=y
5034 5035
 CONFIG_HAS_IOPORT_MAP=y
5035 5036
 CONFIG_HAS_DMA=y
5037
+# CONFIG_DMA_NOOP_OPS is not set
5038
+# CONFIG_DMA_VIRT_OPS is not set
5036 5039
 CONFIG_CHECK_SIGNATURE=y
5037 5040
 CONFIG_CPU_RMAP=y
5038 5041
 CONFIG_DQL=y
... ...
@@ -5055,3 +5859,4 @@ CONFIG_FONT_8x16=y
5055 5055
 CONFIG_SG_POOL=y
5056 5056
 CONFIG_ARCH_HAS_SG_CHAIN=y
5057 5057
 CONFIG_SBITMAP=y
5058
+# CONFIG_STRING_SELFTEST is not set
5058 5059
new file mode 100644
... ...
@@ -0,0 +1,197 @@
0
+From 5da729255406ae4da5bc539569b8d7a10407dcbf Mon Sep 17 00:00:00 2001
1
+From: Alexey Makhalov <amakhalov@vmware.com>
2
+Date: Fri, 22 Dec 2017 14:59:28 -0800
3
+Subject: [PATCH] Log kmsg dump on panic
4
+
5
+In case of panic kmsg will be dumped to vmware.log file
6
+---
7
+ arch/x86/kernel/cpu/vmware.c | 145 ++++++++++++++++++++++++++++++++++++++++++-
8
+ 1 file changed, 142 insertions(+), 3 deletions(-)
9
+
10
+diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
11
+index 40ed2685..50ed5769 100644
12
+--- a/arch/x86/kernel/cpu/vmware.c
13
+@@ -30,19 +30,24 @@
14
+ #include <asm/hypervisor.h>
15
+ #include <asm/timer.h>
16
+ #include <asm/apic.h>
17
++#include <linux/kmsg_dump.h>
18
++#include <linux/frame.h>
19
+ 
20
+ #undef pr_fmt
21
+ #define pr_fmt(fmt)	"vmware: " fmt
22
+ 
23
+-#define CPUID_VMWARE_INFO_LEAF	0x40000000
24
+-#define VMWARE_HYPERVISOR_MAGIC	0x564D5868
25
+-#define VMWARE_HYPERVISOR_PORT	0x5658
26
++#define CPUID_VMWARE_INFO_LEAF		0x40000000
27
++#define VMWARE_HYPERVISOR_MAGIC		0x564D5868
28
++#define VMWARE_HYPERVISOR_PORT		0x5658
29
++#define VMWARE_HYPERVISOR_HB_PORT	0x5659
30
+ 
31
+ #define VMWARE_PORT_CMD_GETVERSION	10
32
+ #define VMWARE_PORT_CMD_GETHZ		45
33
+ #define VMWARE_PORT_CMD_GETVCPU_INFO	68
34
+ #define VMWARE_PORT_CMD_LEGACY_X2APIC	3
35
+ #define VMWARE_PORT_CMD_VCPU_RESERVED	31
36
++#define VMWARE_PORT_CMD_MESSAGE		30
37
++#define VMWARE_HB_PORT_CMD_MESSAGE	0
38
+ 
39
+ #define VMWARE_PORT(cmd, eax, ebx, ecx, edx)				\
40
+ 	__asm__("inl (%%dx)" :						\
41
+@@ -66,6 +71,13 @@ static unsigned long vmware_get_tsc_khz(void)
42
+ 	return vmware_tsc_khz;
43
+ }
44
+ 
45
++static void kmsg_dumper_vmware_log(struct kmsg_dumper *dumper,
46
++				enum kmsg_dump_reason reason);
47
++
48
++static struct kmsg_dumper kmsg_dumper = {
49
++	.dump = kmsg_dumper_vmware_log
50
++};
51
++
52
+ #ifdef CONFIG_PARAVIRT
53
+ static struct cyc2ns_data vmware_cyc2ns __ro_after_init;
54
+ static int vmw_sched_clock __initdata = 1;
55
+@@ -172,6 +184,8 @@ static void __init vmware_platform_setup(void)
56
+ #endif
57
+ 
58
+ 	vmware_set_capabilities();
59
++
60
++	kmsg_dump_register(&kmsg_dumper);
61
+ }
62
+ 
63
+ /*
64
+@@ -212,3 +226,128 @@ const __refconst struct hypervisor_x86 x86_hyper_vmware = {
65
+ 	.x2apic_available	= vmware_legacy_x2apic_available,
66
+ };
67
+ EXPORT_SYMBOL(x86_hyper_vmware);
68
++
69
++#define MESSAGE_STATUS_SUCCESS  (0x01 << 16)
70
++#define MESSAGE_STATUS_CPT      (0x10 << 16)
71
++#define MESSAGE_STATUS_HB       (0x80 << 16)
72
++
73
++#define RPCI_PROTOCOL_NUM       0x49435052 /* 'RPCI' */
74
++#define GUESTMSG_FLAG_COOKIE    0x80000000
75
++
76
++#define MESSAGE_TYPE_OPEN	(0 << 16)
77
++#define MESSAGE_TYPE_SENDSIZE	(1 << 16)
78
++#define MESSAGE_TYPE_CLOSE	(6 << 16)
79
++
80
++typedef struct {
81
++	uint32_t id;
82
++	uint32_t cookieHigh;
83
++	uint32_t cookieLow;
84
++} vmw_msg;
85
++
86
++static int
87
++vmware_log_open(vmw_msg *msg) {
88
++	uint32_t result, info, dx, si, di;
89
++	__asm__ __volatile__ ("inl (%%dx)"
90
++		:	"=a" (result),
91
++			"=c" (info),
92
++			"=d" (dx),
93
++			"=S" (si),
94
++			"=D" (di)
95
++		:       "a"  (VMWARE_HYPERVISOR_MAGIC),
96
++			"c"  (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_OPEN),
97
++			"d"  (VMWARE_HYPERVISOR_PORT),
98
++			"b"  (RPCI_PROTOCOL_NUM | GUESTMSG_FLAG_COOKIE));
99
++
100
++	if ((info & MESSAGE_STATUS_SUCCESS) == 0)
101
++		return 1;
102
++
103
++	msg->id = dx & 0xffff0000;
104
++	msg->cookieHigh = si;
105
++	msg->cookieLow = di;
106
++	return 0;
107
++}
108
++
109
++static int
110
++vmware_log_close(vmw_msg *msg) {
111
++	uint32_t result, info;
112
++	__asm__ __volatile__ ("inl (%%dx)"
113
++		:	"=a" (result),
114
++			"=c" (info)
115
++		:       "a"  (VMWARE_HYPERVISOR_MAGIC),
116
++			"c"  (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_CLOSE),
117
++			"d"  (VMWARE_HYPERVISOR_PORT | msg->id),
118
++			"b"  (0),
119
++			"S"  (msg->cookieHigh),
120
++			"D"  (msg->cookieLow));
121
++
122
++	if ((info & MESSAGE_STATUS_SUCCESS) == 0)
123
++		return 1;
124
++	return 0;
125
++}
126
++
127
++static int
128
++vmware_log_send(vmw_msg *msg, const char *string) {
129
++	uint32_t result, info;
130
++	uint32_t len = strlen(string);
131
++
132
++retry:
133
++	__asm__ __volatile__ ("inl (%%dx)"
134
++		:	"=a" (result),
135
++			"=c" (info)
136
++		:       "a"  (VMWARE_HYPERVISOR_MAGIC),
137
++			"c"  (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_SENDSIZE),
138
++			"d"  (VMWARE_HYPERVISOR_PORT | msg->id),
139
++			"b"  (len),
140
++			"S"  (msg->cookieHigh),
141
++			"D"  (msg->cookieLow));
142
++
143
++	if ((info & MESSAGE_STATUS_SUCCESS) == 0 ||
144
++	    (info & MESSAGE_STATUS_HB) == 0)
145
++		/* Expected success + high-bandwidth. Give up. */
146
++		return 1;
147
++
148
++	__asm__ __volatile__ ("pushq %%rbp\n\t"
149
++			      "movl %[rbp], %%ebp\n\t"
150
++			      "cld\n\t"
151
++			      "rep; outsb\n\t"
152
++			      "popq %%rbp\n\t"
153
++		:	"=a" (result),
154
++			"=b" (info)
155
++		:       "a"  (VMWARE_HYPERVISOR_MAGIC),
156
++			"c"  (len),
157
++			"d"  (VMWARE_HYPERVISOR_HB_PORT | msg->id),
158
++			"b"  (VMWARE_HB_PORT_CMD_MESSAGE | MESSAGE_STATUS_SUCCESS),
159
++			"S"  (string),
160
++		  [rbp] "r"  (msg->cookieHigh),
161
++			"D"  (msg->cookieLow));
162
++
163
++	if ((info & MESSAGE_STATUS_SUCCESS) == 0) {
164
++		if (info & MESSAGE_STATUS_CPT)
165
++			/* A checkpoint occurred. Retry. */
166
++			goto retry;
167
++		return 1;
168
++	}
169
++	return 0;
170
++}
171
++STACK_FRAME_NON_STANDARD(vmware_log_send);
172
++
173
++static void kmsg_dumper_vmware_log(struct kmsg_dumper *dumper,
174
++				enum kmsg_dump_reason reason)
175
++{
176
++	vmw_msg msg;
177
++	static char line[1024];
178
++	size_t len = 0;
179
++
180
++	line[0] = 'l';
181
++	line[1] = 'o';
182
++	line[2] = 'g';
183
++	line[3] = ' ';
184
++
185
++	while (kmsg_dump_get_line(dumper, true, line + 4, sizeof(line) - 4, &len)) {
186
++		line[len + 4] = '\0';
187
++		if (vmware_log_open(&msg) ||
188
++		    vmware_log_send(&msg, line) ||
189
++		    vmware_log_close(&msg))
190
++			break;
191
++	}
192
++}
193
+-- 
194
+2.11.0
195
+
... ...
@@ -1,57 +1,40 @@
1 1
 %global security_hardening none
2 2
 Summary:        Kernel
3 3
 Name:           linux
4
-Version:        4.9.66
5
-Release:        4%{?kat_build:.%kat_build}%{?dist}
4
+Version:        4.14.8
5
+Release:        1%{?kat_build:.%kat_build}%{?dist}
6 6
 License:    	GPLv2
7 7
 URL:        	http://www.kernel.org/
8 8
 Group:        	System Environment/Kernel
9 9
 Vendor:         VMware, Inc.
10 10
 Distribution: 	Photon
11 11
 Source0:        http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz
12
-%define sha1 linux=ecb5adfa84ab6f06f2cb07b56517883310710a0b
12
+%define sha1 linux=45f140e0eab08428d78d81d4169d531a3e65a297
13 13
 Source1:	config
14 14
 Source2:	initramfs.trigger
15
-%define ena_version 1.1.3
16
-Source3:       https://github.com/amzn/amzn-drivers/archive/ena_linux_1.1.3.tar.gz
17
-%define sha1 ena_linux=84138e8d7eb230b45cb53835edf03ca08043d471
15
+%define ena_version 1.5.0
16
+Source3:       https://github.com/amzn/amzn-drivers/archive/ena_linux_%{ena_version}.tar.gz
17
+%define sha1 ena_linux=cbbbe8a3bbab6d01a4e38417cb0ead2f7cb8b2ee
18 18
 Source4:	config_aarch64
19 19
 # common
20
-Patch0:         x86-vmware-read-tsc_khz-only-once-at-boot-time.patch
21
-Patch1:         x86-vmware-use-tsc_khz-value-for-calibrate_cpu.patch
22
-Patch2:         x86-vmware-add-basic-paravirt-ops-support.patch
23
-Patch3:         x86-vmware-add-paravirt-sched-clock.patch
24
-Patch4:         x86-vmware-log-kmsg-dump-on-panic.patch
25
-Patch5:         double-tcp_mem-limits.patch
26
-Patch6:         linux-4.9-sysctl-sched_weighted_cpuload_uses_rla.patch
27
-Patch7:         linux-4.9-watchdog-Disable-watchdog-on-virtual-machines.patch
28
-Patch9:         SUNRPC-Do-not-reuse-srcport-for-TIME_WAIT-socket.patch
29
-Patch10:        SUNRPC-xs_bind-uses-ip_local_reserved_ports.patch
30
-Patch11:        net-9p-vsock.patch
31
-Patch12:        x86-vmware-sta.patch
20
+Patch0:         linux-4.14-Log-kmsg-dump-on-panic.patch
21
+Patch1:         double-tcp_mem-limits.patch
22
+# TODO: disable this patch, check for regressions
23
+#Patch2:         linux-4.9-watchdog-Disable-watchdog-on-virtual-machines.patch
24
+Patch3:         SUNRPC-Do-not-reuse-srcport-for-TIME_WAIT-socket.patch
25
+Patch4:         SUNRPC-xs_bind-uses-ip_local_reserved_ports.patch
26
+Patch5:         vsock-transport-for-9p.patch
27
+Patch6:         x86-vmware-STA-support.patch
32 28
 #HyperV patches
33 29
 Patch13:        0004-vmbus-Don-t-spam-the-logs-with-unknown-GUIDs.patch
34
-Patch14:        0005-Drivers-hv-utils-Fix-the-mapping-between-host-versio.patch
35
-Patch15:        0006-Drivers-hv-vss-Improve-log-messages.patch
36
-Patch16:        0007-Drivers-hv-vss-Operation-timeouts-should-match-host-.patch
37
-Patch17:        0008-Drivers-hv-vmbus-Use-all-supported-IC-versions-to-ne.patch
38
-Patch18:        0009-Drivers-hv-Log-the-negotiated-IC-versions.patch
39
-Patch19:        0010-vmbus-fix-missed-ring-events-on-boot.patch
40
-Patch20:        0011-vmbus-remove-goto-error_clean_msglist-in-vmbus_open.patch
41
-Patch21:        0012-vmbus-dynamically-enqueue-dequeue-the-channel-on-vmb.patch
42
-Patch23:        0014-hv_sock-introduce-Hyper-V-Sockets.patch
30
+# TODO: Is CONFIG_HYPERV_VSOCKETS the same?
31
+#Patch23:        0014-hv_sock-introduce-Hyper-V-Sockets.patch
43 32
 #FIPS patches - allow some algorithms
44
-Patch24:        0001-Revert-crypto-testmgr-Disable-fips-allowed-for-authe.patch
45
-Patch25:        0002-allow-also-ecb-cipher_null.patch
33
+Patch24:        Allow-some-algo-tests-for-FIPS.patch
46 34
 Patch26:        add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch
47
-# Fix CVE-2017-11472
48
-Patch27:        ACPICA-Namespace-fix-operand-cache-leak.patch
49 35
 # Fix CVE-2017-1000252
50 36
 Patch28:        kvm-dont-accept-wrong-gsi-values.patch
51 37
 
52
-# RPi3 support
53
-Patch100:       mmc-bcm2835-Add-new-driver-for-the-sdhost-controller.patch
54
-
55 38
 %if 0%{?kat_build:1}
56 39
 Patch1000:	%{kat_build}.patch
57 40
 %endif
... ...
@@ -130,31 +113,14 @@ This package contains the 'perf' performance analysis tools for Linux kernel.
130 130
 %endif
131 131
 %patch0 -p1
132 132
 %patch1 -p1
133
-%patch2 -p1
134 133
 %patch3 -p1
135 134
 %patch4 -p1
136 135
 %patch5 -p1
137 136
 %patch6 -p1
138
-%patch7 -p1
139
-%patch9 -p1
140
-%patch10 -p1
141
-%patch11 -p1
142
-%patch12 -p1
143 137
 %patch13 -p1
144
-%patch14 -p1
145
-%patch15 -p1
146
-%patch16 -p1
147
-%patch17 -p1
148
-%patch19 -p1
149
-%patch20 -p1
150
-%patch21 -p1
151
-%patch23 -p1
152 138
 %patch24 -p1
153
-%patch25 -p1
154 139
 %patch26 -p1
155
-%patch27 -p1
156 140
 %patch28 -p1
157
-%patch100 -p1
158 141
 %if 0%{?kat_build:1}
159 142
 %patch1000 -p1
160 143
 %endif
... ...
@@ -207,7 +173,6 @@ for MODULE in `find %{buildroot}/lib/modules/%{uname_r} -name *.ko` ; do \
207 207
 install -vdm 755 %{buildroot}/etc
208 208
 install -vdm 755 %{buildroot}/boot
209 209
 install -vdm 755 %{buildroot}%{_defaultdocdir}/%{name}-%{uname_r}
210
-install -vdm 755 %{buildroot}/etc/modprobe.d
211 210
 install -vdm 755 %{buildroot}/usr/src/%{name}-headers-%{uname_r}
212 211
 install -vdm 755 %{buildroot}/usr/lib/debug/lib/modules/%{uname_r}
213 212
 make INSTALL_MOD_PATH=%{buildroot} modules_install
... ...
@@ -303,7 +268,6 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg
303 303
 /boot/vmlinuz-%{uname_r}
304 304
 %config(noreplace) /boot/%{name}-%{uname_r}.cfg
305 305
 %config %{_localstatedir}/lib/initramfs/kernel/%{uname_r}
306
-/lib/firmware/*
307 306
 %defattr(0644,root,root)
308 307
 /lib/modules/%{uname_r}/*
309 308
 %exclude /lib/modules/%{uname_r}/build
... ...
@@ -353,6 +317,8 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg
353 353
 /usr/share/doc/*
354 354
 
355 355
 %changelog
356
+*   Fri Dec 22 2017 Alexey Makhalov <amakhalov@vmware.com> 4.14.8-1
357
+-   Version update
356 358
 *   Wed Dec 13 2017 Alexey Makhalov <amakhalov@vmware.com> 4.9.66-4
357 359
 -   KAT build support
358 360
 *   Thu Dec 07 2017 Alexey Makhalov <amakhalov@vmware.com> 4.9.66-3
359 361
new file mode 100644
... ...
@@ -0,0 +1,125 @@
0
+From ae3d2a171fe2f091adf4d084962df7415a6845e8 Mon Sep 17 00:00:00 2001
1
+From: Alexey Makhalov <amakhalov@vmware.com>
2
+Date: Fri, 22 Dec 2017 15:13:17 -0800
3
+Subject: [PATCH] vsock transport for 9p
4
+
5
+This second and correct implementation of 9p support over vsock.
6
+Second implementation addresses the issue, described in PR 2007859.
7
+
8
+Author: Adrian Drzewiecki <adriand@vmware.com>
9
+
10
+Here's a patch which adds a new transport type instead, following the
11
+methods that are used for others. That is, instead of doing
12
+
13
+$ mount -t9p -ovsock=1234 fubar /mnt
14
+
15
+One would do:
16
+
17
+$ mount -t9p -otrans=vsock 1234 /mnt
18
+---
19
+ net/9p/trans_fd.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
20
+ 1 file changed, 68 insertions(+)
21
+
22
+diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
23
+index 985046ae..322a6bc8 100644
24
+--- a/net/9p/trans_fd.c
25
+@@ -37,6 +37,8 @@
26
+ #include <linux/un.h>
27
+ #include <linux/uaccess.h>
28
+ #include <linux/inet.h>
29
++#include <linux/vmw_vmci_defs.h>
30
++#include <uapi/linux/vm_sockets.h>
31
+ #include <linux/idr.h>
32
+ #include <linux/file.h>
33
+ #include <linux/parser.h>
34
+@@ -938,6 +940,59 @@ static int p9_bind_privport(struct socket *sock)
35
+ 	return err;
36
+ }
37
+ 
38
++static int
39
++p9_fd_create_vsock(struct p9_client *client, const char *addr, char *args)
40
++{
41
++	int err;
42
++	struct socket *csocket;
43
++	struct sockaddr_vm vsock_server;
44
++	struct p9_fd_opts opts;
45
++
46
++	err = parse_opts(args, &opts);
47
++	if (err < 0)
48
++		return err;
49
++
50
++	csocket = NULL;
51
++
52
++	memset(&vsock_server, 0, sizeof(struct sockaddr_vm));
53
++	vsock_server.svm_family = AF_VSOCK;
54
++	vsock_server.svm_port = opts.port;
55
++
56
++	err = kstrtou32(addr, 0, &vsock_server.svm_cid);
57
++	if (err < 0)
58
++		return err;
59
++
60
++	err = __sock_create(current->nsproxy->net_ns, PF_VSOCK,
61
++			    SOCK_STREAM, 0, &csocket, 1);
62
++	if (err) {
63
++		pr_err("%s (%d): problem creating socket\n",
64
++		       __func__, task_pid_nr(current));
65
++		return err;
66
++	}
67
++
68
++	/* XXX: applicable? */
69
++	if (opts.privport) {
70
++		err = p9_bind_privport(csocket);
71
++		if (err < 0) {
72
++			pr_err("%s (%d): problem binding to privport\n",
73
++			       __func__, task_pid_nr(current));
74
++			sock_release(csocket);
75
++			return err;
76
++		}
77
++	}
78
++
79
++	err = csocket->ops->connect(csocket,
80
++				    (struct sockaddr *)&vsock_server,
81
++				    sizeof(struct sockaddr_vm), 0);
82
++	if (err < 0) {
83
++		pr_err("%s (%d): problem connecting vmware vsock addr %s\n",
84
++		       __func__, task_pid_nr(current), addr);
85
++		sock_release(csocket);
86
++		return err;
87
++	}
88
++
89
++	return p9_socket_open(client, csocket);
90
++}
91
+ 
92
+ static int
93
+ p9_fd_create_tcp(struct p9_client *client, const char *addr, char *args)
94
+@@ -1053,6 +1108,18 @@ p9_fd_create(struct p9_client *client, const char *addr, char *args)
95
+ 	return 0;
96
+ }
97
+ 
98
++static struct p9_trans_module p9_vsock_trans = {
99
++	.name = "vsock",
100
++	.maxsize = MAX_SOCK_BUF,
101
++	.def = 0,
102
++	.create = p9_fd_create_vsock,
103
++	.close = p9_fd_close,
104
++	.request = p9_fd_request,
105
++	.cancel = p9_fd_cancel,
106
++	.cancelled = p9_fd_cancelled,
107
++	.owner = THIS_MODULE,
108
++};
109
++
110
+ static struct p9_trans_module p9_tcp_trans = {
111
+ 	.name = "tcp",
112
+ 	.maxsize = MAX_SOCK_BUF,
113
+@@ -1126,6 +1193,7 @@ static void p9_poll_workfn(struct work_struct *work)
114
+ 
115
+ int p9_trans_fd_init(void)
116
+ {
117
++	v9fs_register_trans(&p9_vsock_trans);
118
+ 	v9fs_register_trans(&p9_tcp_trans);
119
+ 	v9fs_register_trans(&p9_unix_trans);
120
+ 	v9fs_register_trans(&p9_fd_trans);
121
+-- 
122
+2.11.0
123
+
0 124
new file mode 100644
... ...
@@ -0,0 +1,249 @@
0
+From 3dad5371924736819950b964bbc28ce32e420c12 Mon Sep 17 00:00:00 2001
1
+From: Alexey Makhalov <amakhalov@vmware.com>
2
+Date: Fri, 22 Dec 2017 15:23:06 -0800
3
+Subject: [PATCH] x86/vmware: STA support
4
+
5
+Use callbacks via the state machine ot enable or disable STA per CPU.
6
+local_irq_disable() is used because smp_call_function_single() used to invoke
7
+the function with interrupts disabled.
8
+---
9
+ arch/x86/kernel/cpu/vmware.c | 185 +++++++++++++++++++++++++++++++++++++++++--
10
+ 1 file changed, 179 insertions(+), 6 deletions(-)
11
+
12
+diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
13
+index 50ed5769..fa6ea7dc 100644
14
+--- a/arch/x86/kernel/cpu/vmware.c
15
+@@ -30,8 +30,12 @@
16
+ #include <asm/hypervisor.h>
17
+ #include <asm/timer.h>
18
+ #include <asm/apic.h>
19
++#include <linux/sched.h>
20
++#include <linux/cpu.h>
21
+ #include <linux/kmsg_dump.h>
22
+ #include <linux/frame.h>
23
++#include <linux/notifier.h>
24
++#include <linux/reboot.h>
25
+ 
26
+ #undef pr_fmt
27
+ #define pr_fmt(fmt)	"vmware: " fmt
28
+@@ -48,15 +52,57 @@
29
+ #define VMWARE_PORT_CMD_VCPU_RESERVED	31
30
+ #define VMWARE_PORT_CMD_MESSAGE		30
31
+ #define VMWARE_HB_PORT_CMD_MESSAGE	0
32
++#define VMWARE_PORT_CMD_STEALCLOCK	91
33
++# define STEALCLOCK_IS_NOT_AVALIABLE	-1
34
++# define STEALCLOCK_IS_DISABLED		0
35
++# define STEALCLOCK_IS_ENABLED		1
36
++#define VMWARE_PORT_CMD_MESSAGE		30
37
++#define VMWARE_HB_PORT_CMD_MESSAGE	0
38
+ 
39
+ #define VMWARE_PORT(cmd, eax, ebx, ecx, edx)				\
40
++	VMWARE_PORT2(cmd, eax, ebx, ecx, edx, UINT_MAX)
41
++
42
++#define VMWARE_PORT2(cmd, eax, ebx, ecx, edx, arg)			\
43
+ 	__asm__("inl (%%dx)" :						\
44
+ 			"=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) :	\
45
+ 			"0"(VMWARE_HYPERVISOR_MAGIC),			\
46
+ 			"1"(VMWARE_PORT_CMD_##cmd),			\
47
+-			"2"(VMWARE_HYPERVISOR_PORT), "3"(UINT_MAX) :	\
48
++			"2"(VMWARE_HYPERVISOR_PORT), "3"(arg) :		\
49
+ 			"memory");
50
+ 
51
++struct vmware_steal_time {
52
++	uint64_t clock;	/* stolen time counter in units of vtsc */
53
++	uint64_t reserved[7];
54
++};
55
++static DEFINE_PER_CPU(struct vmware_steal_time, steal_time) __aligned(64);
56
++static int has_steal_clock = 0;
57
++
58
++static int vmware_cmd_stealclock(uint32_t arg1, uint32_t arg2)
59
++{
60
++	uint32_t result, info;
61
++	__asm__ __volatile__ ("inl (%%dx)"
62
++		:	"=a" (result),
63
++			"=c" (info)
64
++		:       "a"  (VMWARE_HYPERVISOR_MAGIC),
65
++			"c"  (VMWARE_PORT_CMD_STEALCLOCK),
66
++			"d"  (VMWARE_HYPERVISOR_PORT),
67
++			"b"  (0),
68
++			"S"  (arg1),
69
++			"D"  (arg2));
70
++	return result;
71
++}
72
++#define STEALCLOCK_ENABLE(pa)					\
73
++	(vmware_cmd_stealclock((pa) >> 32, (pa) & 0xffffffff)   \
74
++			== STEALCLOCK_IS_ENABLED)
75
++
76
++#define STEALCLOCK_DISABLE()					\
77
++	vmware_cmd_stealclock(0, 1)
78
++
79
++static int vmware_is_stealclock_available(void)
80
++{
81
++	return STEALCLOCK_DISABLE() != STEALCLOCK_IS_NOT_AVALIABLE;
82
++}
83
++
84
+ static unsigned long vmware_tsc_khz __ro_after_init;
85
+ 
86
+ static inline int __vmware_platform(void)
87
+@@ -99,7 +145,7 @@ static unsigned long long vmware_sched_clock(void)
88
+ 	return ns;
89
+ }
90
+ 
91
+-static void __init vmware_sched_clock_setup(void)
92
++static void __init vmware_cyc2ns_setup(void)
93
+ {
94
+ 	struct cyc2ns_data *d = &vmware_cyc2ns;
95
+ 	unsigned long long tsc_now = rdtsc();
96
+@@ -109,17 +155,144 @@ static void __init vmware_sched_clock_setup(void)
97
+ 	d->cyc2ns_offset = mul_u64_u32_shr(tsc_now, d->cyc2ns_mul,
98
+ 					   d->cyc2ns_shift);
99
+ 
100
+-	pv_time_ops.sched_clock = vmware_sched_clock;
101
+-	pr_info("using sched offset of %llu ns\n", d->cyc2ns_offset);
102
++	pr_info("using clock offset of %llu ns\n", d->cyc2ns_offset);
103
++}
104
++
105
++static uint64_t vmware_steal_clock(int cpu)
106
++{
107
++	struct vmware_steal_time *steal;
108
++
109
++	steal = &per_cpu(steal_time, cpu);
110
++	return mul_u64_u32_shr(steal->clock, vmware_cyc2ns.cyc2ns_mul,
111
++			     vmware_cyc2ns.cyc2ns_shift);
112
++}
113
++
114
++static void vmware_register_steal_time(void)
115
++{
116
++	int cpu = smp_processor_id();
117
++	struct vmware_steal_time *st = &per_cpu(steal_time, cpu);
118
++
119
++	if (!has_steal_clock)
120
++		return;
121
++
122
++	memset(st, 0, sizeof(*st));
123
++
124
++	if (!STEALCLOCK_ENABLE(slow_virt_to_phys(st))) {
125
++		has_steal_clock = 0;
126
++		return;
127
++	}
128
++
129
++	pr_info("vmware-stealtime: cpu %d, pa %llx\n",
130
++		cpu, (unsigned long long) slow_virt_to_phys(st));
131
++}
132
++
133
++void vmware_disable_steal_time(void)
134
++{
135
++	if (!has_steal_clock)
136
++		return;
137
++
138
++	STEALCLOCK_DISABLE();
139
++}
140
++
141
++static void vmware_guest_cpu_init(void)
142
++{
143
++	if (has_steal_clock)
144
++		vmware_register_steal_time();
145
++}
146
++
147
++static void vmware_pv_guest_cpu_reboot(void *unused)
148
++{
149
++	vmware_disable_steal_time();
150
++}
151
++
152
++static int vmware_pv_reboot_notify(struct notifier_block *nb,
153
++				unsigned long code, void *unused)
154
++{
155
++	if (code == SYS_RESTART)
156
++		on_each_cpu(vmware_pv_guest_cpu_reboot, NULL, 1);
157
++	return NOTIFY_DONE;
158
++}
159
++
160
++static struct notifier_block vmware_pv_reboot_nb = {
161
++	.notifier_call = vmware_pv_reboot_notify,
162
++};
163
++
164
++#ifdef CONFIG_SMP
165
++static void __init vmware_smp_prepare_boot_cpu(void)
166
++{
167
++	vmware_guest_cpu_init();
168
++	native_smp_prepare_boot_cpu();
169
++}
170
++
171
++static int vmware_cpu_online(unsigned int cpu)
172
++{
173
++	local_irq_disable();
174
++	vmware_guest_cpu_init();
175
++	local_irq_enable();
176
++	return 0;
177
+ }
178
+ 
179
++static int vmware_cpu_down_prepare(unsigned int cpu)
180
++{
181
++	local_irq_disable();
182
++	vmware_disable_steal_time();
183
++	local_irq_enable();
184
++	return 0;
185
++}
186
++#endif
187
++
188
++static int sta_enabled __initdata = 1; /* steal time accounting */
189
++static __init int parse_no_vmw_sta(char *arg)
190
++{
191
++        sta_enabled = 0;
192
++        return 0;
193
++}
194
++
195
++early_param("no-vmw-sta", parse_no_vmw_sta);
196
++
197
++static __init int activate_jump_labels(void)
198
++{
199
++	if (has_steal_clock) {
200
++		static_key_slow_inc(&paravirt_steal_enabled);
201
++		if (sta_enabled)
202
++			static_key_slow_inc(&paravirt_steal_rq_enabled);
203
++	}
204
++
205
++	return 0;
206
++}
207
++arch_initcall(activate_jump_labels);
208
++
209
++
210
+ static void __init vmware_paravirt_ops_setup(void)
211
+ {
212
+ 	pv_info.name = "VMware hypervisor";
213
+ 	pv_cpu_ops.io_delay = paravirt_nop;
214
+ 
215
+-	if (vmware_tsc_khz && vmw_sched_clock)
216
+-		vmware_sched_clock_setup();
217
++	if (vmware_tsc_khz == 0)
218
++		return;
219
++
220
++	vmware_cyc2ns_setup();
221
++
222
++	if (vmw_sched_clock)
223
++		pv_time_ops.sched_clock = vmware_sched_clock;
224
++
225
++	if (vmware_is_stealclock_available()) {
226
++		has_steal_clock = 1;
227
++		pv_time_ops.steal_clock = vmware_steal_clock;
228
++	}
229
++
230
++	if (has_steal_clock) {
231
++		/* We use reboot notifier only to disable steal clock */
232
++		register_reboot_notifier(&vmware_pv_reboot_nb);
233
++#ifdef CONFIG_SMP
234
++		smp_ops.smp_prepare_boot_cpu = vmware_smp_prepare_boot_cpu;
235
++		if (cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "x86/vmware:online",
236
++				      vmware_cpu_online, vmware_cpu_down_prepare) < 0)
237
++			pr_err("vmware_guest: Failed to install cpu hotplug callbacks\n");
238
++#else
239
++		vmware_guest_cpu_init();
240
++#endif
241
++	}
242
+ }
243
+ #else
244
+ #define vmware_paravirt_ops_setup() do {} while (0)
245
+-- 
246
+2.11.0
247
+
0 248
new file mode 100644
... ...
@@ -0,0 +1,63 @@
0
+Summary:        Log for C++
1
+Name:           log4cpp
2
+Version:        1.1.1
3
+Release:        1%{?dist}
4
+License:        LGPL
5
+Group:          Development/Libraries
6
+Vendor:         VMware, Inc.
7
+Distribution:   Photon
8
+Url:            http://log4cpp.sourceforge.net/
9
+Source:         ftp://download.sourceforge.net/pub/sourceforge/log4cpp/%{name}-%{version}.tar.gz
10
+%define sha1    log4cpp=23aa5bd7d6f79992c92bad3e1c6d64a34f8fcf68
11
+
12
+%description
13
+Log for C++ is a library of classes for flexible logging to files, syslog,
14
+and other destinations. It is modeled after the Log for Java library and
15
+stays as close to its API as is reasonable.
16
+
17
+%package devel
18
+Summary: development tools for Log for C++
19
+Group: Development/Libraries
20
+Requires: %{name} = %{version}-%{release}
21
+
22
+%description devel
23
+The %name-devel package contains the static libraries and header files
24
+needed for development with %name.
25
+
26
+
27
+%prep
28
+%{__rm} -rf $RPM_BUILD_ROOT
29
+
30
+%setup -q -n log4cpp
31
+CC=%{__cc} CXX=%{__cxx} ./configure --prefix=%{_prefix} 
32
+
33
+%build
34
+%{__make}
35
+
36
+%install
37
+%{__rm} -rf $RPM_BUILD_ROOT
38
+make DESTDIR=%{buildroot} install
39
+
40
+%clean
41
+%{__rm} -rf $RPM_BUILD_ROOT
42
+
43
+%post	-p /sbin/ldconfig
44
+
45
+%postun	-p /sbin/ldconfig
46
+
47
+%files
48
+%defattr(-,root,root)
49
+%_prefix/lib/lib*.so.*
50
+
51
+%files devel
52
+%defattr(-,root,root)
53
+%_prefix/include/*
54
+%_prefix/bin/log4cpp-config
55
+%_prefix/lib/lib*.so
56
+%_prefix/lib/*.*a
57
+%_prefix/lib/pkgconfig/log4cpp.pc
58
+%_prefix/share/aclocal/*.m4
59
+
60
+%changelog
61
+*   Mon Oct 23 2017 Benson Kwok <bkwok@vmware.com> 1.1.1-1
62
+-   Initial build. First version
0 63
\ No newline at end of file
1 64
deleted file mode 100644
... ...
@@ -1,22 +0,0 @@
1
-diff -Naur mesos-1.1.0.orig/src/linux/fs.cpp mesos-1.1.0/src/linux/fs.cpp
2
-+++ mesos-1.1.0/src/linux/fs.cpp	2017-03-24 23:17:15.332465310 -0700
3
-@@ -17,6 +17,7 @@
4
- #include <errno.h>
5
- #include <stdio.h>
6
- #include <string.h>
7
-+#include <sys/sysmacros.h>
8
- 
9
- #include <linux/limits.h>
10
- #include <linux/unistd.h>
11
-diff -Naur mesos-1.1.0.orig/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp mesos-1.1.0/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
12
-+++ mesos-1.1.0/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp	2017-03-25 00:12:23.657869169 -0700
13
-@@ -15,6 +15,7 @@
14
- // limitations under the License.
15
- 
16
- #include <stdint.h>
17
-+#include <sys/sysmacros.h>
18
- 
19
- #include <algorithm>
20
- #include <list>
... ...
@@ -2,7 +2,7 @@
2 2
 
3 3
 Summary:        Mesos
4 4
 Name:           mesos
5
-Version:        1.2.2
5
+Version:        1.4.1
6 6
 Release:        1%{?dist}
7 7
 License:        Apache
8 8
 URL:            http://mesos.apache.org
... ...
@@ -10,8 +10,7 @@ Group:          Applications/System
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
12 12
 Source0:        http://www.apache.org/dist/%{name}/%{version}/%{name}-%{version}.tar.gz
13
-%define sha1    mesos=bbcec6f04bb629a16a5ea24a8cde3f3e9f75300e
14
-Patch0:         mesos-sysmacros.patch
13
+%define sha1    mesos=5a194b3ea8e1a6c30269e9e88c204ba7bfca07e5
15 14
 BuildRequires:  openjre8 >= 1.8.0.45
16 15
 BuildRequires:  openjdk8 >= 1.8.0.45
17 16
 BuildRequires:  curl-devel
... ...
@@ -51,21 +50,15 @@ Requires:   %{name} = %{version}
51 51
 
52 52
 %prep
53 53
 %setup -q
54
-%patch0 -p1
55 54
 
56 55
 %build
57 56
 sed -i 's/gzip -d -c $^ | tar xf -/tar --no-same-owner -xf $^/' 3rdparty/Makefile.am
58 57
 sed -i 's/gzip -d -c $^ | tar xf -/tar --no-same-owner -xf $^/' 3rdparty/libprocess/3rdparty/Makefile.am
59
-sed -i "/xlocale.h/d" 3rdparty/stout/include/stout/jsonify.hpp
60 58
 
61
-./configure \
59
+%configure \
62 60
     CFLAGS="%{optflags} -Wno-deprecated-declarations"  \
63 61
     CXXFLAGS="%{optflags} -Wno-deprecated-declarations -Wno-strict-aliasing" \
64
-    --disable-silent-rules \
65
-    --prefix=%{_prefix} \
66
-    --bindir=%{_bindir} \
67
-    --libdir=%{_libdir} \
68
-    --sysconfdir=%{_sysconfdir}
62
+    --disable-silent-rules
69 63
 make %{?_smp_mflags}
70 64
 
71 65
 #%check
... ...
@@ -105,7 +98,9 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
105 105
 %exclude %{_libdir}/debug/
106 106
 
107 107
 %changelog
108
-*   Tue Oct 11 2017 Dheeraj Shetty <dheerajs@vmware.com> 1.2.2-1
108
+*   Tue Jan 02 2018 Alexey Makhalov <amakhalov@vmware.com> 1.4.1-1
109
+-   Version update. Aarch64 support
110
+*   Wed Oct 11 2017 Dheeraj Shetty <dheerajs@vmware.com> 1.2.2-1
109 111
 -   Updated to version 1.2.2
110 112
 *   Mon Oct 02 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.2.0-7
111 113
 -   Use multiple cores to build mesos.
... ...
@@ -129,7 +124,7 @@ find %{buildroot}%{_libdir} -name '*.la' -delete
129 129
 -   BuildRequires curl-devel.
130 130
 *   Tue Dec 13 2016 Xiaolin Li <xiaolinl@vmware.com> 1.1.0-1
131 131
 -   Updated to version 1.1.0
132
-*   Wed Nov 16 2016 Alexey Makhalov <ppadmavilasom@vmware.com> 0.28.2-3
132
+*   Wed Nov 16 2016 Alexey Makhalov <amakhalov@vmware.com> 0.28.2-3
133 133
 -   Use sqlite-{devel,libs}
134 134
 *   Mon Oct 03 2016 ChangLee <changlee@vmware.com> 0.28.2-2
135 135
 -   Modified check
136 136
deleted file mode 100644
... ...
@@ -1,526 +0,0 @@
1
-diff -up openssl-1.0.2a/apps/s_apps.h.ipv6-apps openssl-1.0.2a/apps/s_apps.h
2
-+++ openssl-1.0.2a/apps/s_apps.h	2015-04-20 15:05:00.353137701 +0200
3
-@@ -151,7 +151,7 @@ typedef fd_mask fd_set;
4
- #define PORT_STR        "4433"
5
- #define PROTOCOL        "tcp"
6
- 
7
--int do_server(int port, int type, int *ret,
8
-+int do_server(char *port, int type, int *ret,
9
-               int (*cb) (char *hostname, int s, int stype,
10
-                          unsigned char *context), unsigned char *context,
11
-               int naccept);
12
-@@ -167,11 +167,10 @@ int ssl_print_point_formats(BIO *out, SS
13
- int ssl_print_curves(BIO *out, SSL *s, int noshared);
14
- #endif
15
- int ssl_print_tmp_key(BIO *out, SSL *s);
16
--int init_client(int *sock, char *server, int port, int type);
17
-+int init_client(int *sock, char *server, char *port, int type);
18
- int should_retry(int i);
19
- int extract_port(char *str, short *port_ptr);
20
--int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
21
--                      short *p);
22
-+int extract_host_port(char *str, char **host_ptr, char **port_ptr);
23
- 
24
- long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
25
-                                    int argi, long argl, long ret);
26
-diff -up openssl-1.0.2a/apps/s_client.c.ipv6-apps openssl-1.0.2a/apps/s_client.c
27
-+++ openssl-1.0.2a/apps/s_client.c	2015-04-20 15:06:42.338503234 +0200
28
-@@ -662,7 +662,7 @@ int MAIN(int argc, char **argv)
29
-     int cbuf_len, cbuf_off;
30
-     int sbuf_len, sbuf_off;
31
-     fd_set readfds, writefds;
32
--    short port = PORT;
33
-+    char *port_str = PORT_STR;
34
-     int full_log = 1;
35
-     char *host = SSL_HOST_NAME;
36
-     char *cert_file = NULL, *key_file = NULL, *chain_file = NULL;
37
-@@ -785,13 +785,11 @@ int MAIN(int argc, char **argv)
38
-         } else if (strcmp(*argv, "-port") == 0) {
39
-             if (--argc < 1)
40
-                 goto bad;
41
--            port = atoi(*(++argv));
42
--            if (port == 0)
43
--                goto bad;
44
-+            port_str = *(++argv);
45
-         } else if (strcmp(*argv, "-connect") == 0) {
46
-             if (--argc < 1)
47
-                 goto bad;
48
--            if (!extract_host_port(*(++argv), &host, NULL, &port))
49
-+            if (!extract_host_port(*(++argv), &host, &port_str))
50
-                 goto bad;
51
-         } else if (strcmp(*argv, "-verify") == 0) {
52
-             verify = SSL_VERIFY_PEER;
53
-@@ -1417,7 +1415,7 @@ int MAIN(int argc, char **argv)
54
- 
55
-  re_start:
56
- 
57
--    if (init_client(&s, host, port, socket_type) == 0) {
58
-+    if (init_client(&s, host, port_str, socket_type) == 0) {
59
-         BIO_printf(bio_err, "connect:errno=%d\n", get_last_socket_error());
60
-         SHUTDOWN(s);
61
-         goto end;
62
-diff -up openssl-1.0.2a/apps/s_server.c.ipv6-apps openssl-1.0.2a/apps/s_server.c
63
-+++ openssl-1.0.2a/apps/s_server.c	2015-04-20 15:10:47.245187746 +0200
64
-@@ -1061,7 +1061,7 @@ int MAIN(int argc, char *argv[])
65
- {
66
-     X509_VERIFY_PARAM *vpm = NULL;
67
-     int badarg = 0;
68
--    short port = PORT;
69
-+    char *port_str = PORT_STR;
70
-     char *CApath = NULL, *CAfile = NULL;
71
-     char *chCApath = NULL, *chCAfile = NULL;
72
-     char *vfyCApath = NULL, *vfyCAfile = NULL;
73
-@@ -1148,7 +1148,8 @@ int MAIN(int argc, char *argv[])
74
-         if ((strcmp(*argv, "-port") == 0) || (strcmp(*argv, "-accept") == 0)) {
75
-             if (--argc < 1)
76
-                 goto bad;
77
--            if (!extract_port(*(++argv), &port))
78
-+            port_str = *(++argv);
79
-+            if (port_str == NULL || *port_str == '\0')
80
-                 goto bad;
81
-         } else if (strcmp(*argv, "-naccept") == 0) {
82
-             if (--argc < 1)
83
-@@ -2020,13 +2021,13 @@ int MAIN(int argc, char *argv[])
84
-     BIO_printf(bio_s_out, "ACCEPT\n");
85
-     (void)BIO_flush(bio_s_out);
86
-     if (rev)
87
--        do_server(port, socket_type, &accept_socket, rev_body, context,
88
-+        do_server(port_str, socket_type, &accept_socket, rev_body, context,
89
-                   naccept);
90
-     else if (www)
91
--        do_server(port, socket_type, &accept_socket, www_body, context,
92
-+        do_server(port_str, socket_type, &accept_socket, www_body, context,
93
-                   naccept);
94
-     else
95
--        do_server(port, socket_type, &accept_socket, sv_body, context,
96
-+        do_server(port_str, socket_type, &accept_socket, sv_body, context,
97
-                   naccept);
98
-     print_stats(bio_s_out, ctx);
99
-     ret = 0;
100
-diff -up openssl-1.0.2a/apps/s_socket.c.ipv6-apps openssl-1.0.2a/apps/s_socket.c
101
-+++ openssl-1.0.2a/apps/s_socket.c	2015-04-20 15:32:53.960079507 +0200
102
-@@ -106,9 +106,7 @@ static struct hostent *GetHostByName(cha
103
- static void ssl_sock_cleanup(void);
104
- # endif
105
- static int ssl_sock_init(void);
106
--static int init_client_ip(int *sock, unsigned char ip[4], int port, int type);
107
--static int init_server(int *sock, int port, int type);
108
--static int init_server_long(int *sock, int port, char *ip, int type);
109
-+static int init_server(int *sock, char *port, int type);
110
- static int do_accept(int acc_sock, int *sock, char **host);
111
- static int host_ip(char *str, unsigned char ip[4]);
112
- 
113
-@@ -231,65 +229,66 @@ static int ssl_sock_init(void)
114
-     return (1);
115
- }
116
- 
117
--int init_client(int *sock, char *host, int port, int type)
118
-+int init_client(int *sock, char *host, char *port, int type)
119
- {
120
--    unsigned char ip[4];
121
--
122
--    memset(ip, '\0', sizeof ip);
123
--    if (!host_ip(host, &(ip[0])))
124
--        return 0;
125
--    return init_client_ip(sock, ip, port, type);
126
--}
127
--
128
--static int init_client_ip(int *sock, unsigned char ip[4], int port, int type)
129
--{
130
--    unsigned long addr;
131
--    struct sockaddr_in them;
132
--    int s, i;
133
-+    struct addrinfo *res, *res0, hints;
134
-+    char *failed_call = NULL;
135
-+    int s;
136
-+    int e;
137
- 
138
-     if (!ssl_sock_init())
139
-         return (0);
140
- 
141
--    memset((char *)&them, 0, sizeof(them));
142
--    them.sin_family = AF_INET;
143
--    them.sin_port = htons((unsigned short)port);
144
--    addr = (unsigned long)
145
--        ((unsigned long)ip[0] << 24L) |
146
--        ((unsigned long)ip[1] << 16L) |
147
--        ((unsigned long)ip[2] << 8L) | ((unsigned long)ip[3]);
148
--    them.sin_addr.s_addr = htonl(addr);
149
--
150
--    if (type == SOCK_STREAM)
151
--        s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
152
--    else                        /* ( type == SOCK_DGRAM) */
153
--        s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
154
--
155
--    if (s == INVALID_SOCKET) {
156
--        perror("socket");
157
-+    memset(&hints, '\0', sizeof(hints));
158
-+    hints.ai_socktype = type;
159
-+    hints.ai_flags = AI_ADDRCONFIG;
160
-+
161
-+    e = getaddrinfo(host, port, &hints, &res);
162
-+    if (e) {
163
-+        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(e));
164
-+        if (e == EAI_SYSTEM)
165
-+            perror("getaddrinfo");
166
-         return (0);
167
-     }
168
-+
169
-+    res0 = res;
170
-+    while (res) {
171
-+        s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
172
-+        if (s == INVALID_SOCKET) {
173
-+            failed_call = "socket";
174
-+            goto nextres;
175
-+        }
176
- # if defined(SO_KEEPALIVE) && !defined(OPENSSL_SYS_MPE)
177
--    if (type == SOCK_STREAM) {
178
--        i = 0;
179
--        i = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&i, sizeof(i));
180
--        if (i < 0) {
181
--            closesocket(s);
182
--            perror("keepalive");
183
--            return (0);
184
-+        if (type == SOCK_STREAM) {
185
-+            int i = 0;
186
-+            i = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE,
187
-+                           (char *)&i, sizeof(i));
188
-+            if (i < 0) {
189
-+                failed_call = "keepalive";
190
-+                goto nextres;
191
-+            }
192
-         }
193
--    }
194
- # endif
195
--
196
--    if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1) {
197
--        closesocket(s);
198
--        perror("connect");
199
--        return (0);
200
-+        if (connect(s, (struct sockaddr *)res->ai_addr, res->ai_addrlen) == 0) {
201
-+            freeaddrinfo(res0);
202
-+            *sock = s;
203
-+            return (1);
204
-+        }
205
-+
206
-+        failed_call = "socket";
207
-+ nextres:
208
-+        if (s != INVALID_SOCKET)
209
-+            close(s);
210
-+        res = res->ai_next;
211
-     }
212
--    *sock = s;
213
--    return (1);
214
-+    freeaddrinfo(res0);
215
-+    closesocket(s);
216
-+
217
-+    perror(failed_call);
218
-+    return (0);
219
- }
220
- 
221
--int do_server(int port, int type, int *ret,
222
-+int do_server(char *port, int type, int *ret,
223
-               int (*cb) (char *hostname, int s, int stype,
224
-                          unsigned char *context), unsigned char *context,
225
-               int naccept)
226
-@@ -328,69 +327,89 @@ int do_server(int port, int type, int *r
227
-     }
228
- }
229
- 
230
--static int init_server_long(int *sock, int port, char *ip, int type)
231
-+static int init_server(int *sock, char *port, int type)
232
- {
233
--    int ret = 0;
234
--    struct sockaddr_in server;
235
--    int s = -1;
236
-+    struct addrinfo *res, *res0 = NULL, hints;
237
-+    char *failed_call = NULL;
238
-+    int s = INVALID_SOCKET;
239
-+    int e;
240
- 
241
-     if (!ssl_sock_init())
242
-         return (0);
243
- 
244
--    memset((char *)&server, 0, sizeof(server));
245
--    server.sin_family = AF_INET;
246
--    server.sin_port = htons((unsigned short)port);
247
--    if (ip == NULL)
248
--        server.sin_addr.s_addr = INADDR_ANY;
249
--    else
250
--/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
251
--# ifndef BIT_FIELD_LIMITS
252
--        memcpy(&server.sin_addr.s_addr, ip, 4);
253
--# else
254
--        memcpy(&server.sin_addr, ip, 4);
255
--# endif
256
--
257
--    if (type == SOCK_STREAM)
258
--        s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
259
--    else                        /* type == SOCK_DGRAM */
260
--        s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
261
-+    memset(&hints, '\0', sizeof(hints));
262
-+    hints.ai_family = AF_INET6;
263
-+ tryipv4:
264
-+    hints.ai_socktype = type;
265
-+    hints.ai_flags = AI_PASSIVE;
266
-+
267
-+    e = getaddrinfo(NULL, port, &hints, &res);
268
-+    if (e) {
269
-+        if (hints.ai_family == AF_INET) {
270
-+            fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(e));
271
-+            if (e == EAI_SYSTEM)
272
-+                perror("getaddrinfo");
273
-+            return (0);
274
-+        } else
275
-+            res = NULL;
276
-+    }
277
- 
278
--    if (s == INVALID_SOCKET)
279
--        goto err;
280
-+    res0 = res;
281
-+    while (res) {
282
-+        s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
283
-+        if (s == INVALID_SOCKET) {
284
-+            failed_call = "socket";
285
-+            goto nextres;
286
-+        }
287
-+        if (hints.ai_family == AF_INET6) {
288
-+            int j = 0;
289
-+            setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&j, sizeof j);
290
-+        }
291
- # if defined SOL_SOCKET && defined SO_REUSEADDR
292
--    {
293
--        int j = 1;
294
--        setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
295
--    }
296
--# endif
297
--    if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) {
298
--# ifndef OPENSSL_SYS_WINDOWS
299
--        perror("bind");
300
-+        {
301
-+            int j = 1;
302
-+            setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
303
-+        }
304
- # endif
305
--        goto err;
306
-+
307
-+        if (bind(s, (struct sockaddr *)res->ai_addr, res->ai_addrlen) == -1) {
308
-+            failed_call = "bind";
309
-+            goto nextres;
310
-+        }
311
-+        if (type == SOCK_STREAM && listen(s, 128) == -1) {
312
-+            failed_call = "listen";
313
-+            goto nextres;
314
-+        }
315
-+
316
-+        *sock = s;
317
-+        return (1);
318
-+
319
-+ nextres:
320
-+        if (s != INVALID_SOCKET)
321
-+            close(s);
322
-+        res = res->ai_next;
323
-     }
324
--    /* Make it 128 for linux */
325
--    if (type == SOCK_STREAM && listen(s, 128) == -1)
326
--        goto err;
327
--    *sock = s;
328
--    ret = 1;
329
-- err:
330
--    if ((ret == 0) && (s != -1)) {
331
--        SHUTDOWN(s);
332
-+    if (res0)
333
-+        freeaddrinfo(res0);
334
-+
335
-+    if (s == INVALID_SOCKET) {
336
-+        if (hints.ai_family == AF_INET6) {
337
-+            hints.ai_family = AF_INET;
338
-+            goto tryipv4;
339
-+        }
340
-+        perror("socket");
341
-+        return (0);
342
-     }
343
--    return (ret);
344
--}
345
- 
346
--static int init_server(int *sock, int port, int type)
347
--{
348
--    return (init_server_long(sock, port, NULL, type));
349
-+    perror(failed_call);
350
-+    return (0);
351
- }
352
- 
353
- static int do_accept(int acc_sock, int *sock, char **host)
354
- {
355
-+    static struct sockaddr_storage from;
356
-+    char buffer[NI_MAXHOST];
357
-     int ret;
358
--    struct hostent *h1, *h2;
359
--    static struct sockaddr_in from;
360
-     int len;
361
- /*      struct linger ling; */
362
- 
363
-@@ -432,134 +451,60 @@ static int do_accept(int acc_sock, int *
364
-     ling.l_onoff=1;
365
-     ling.l_linger=0;
366
-     i=setsockopt(ret,SOL_SOCKET,SO_LINGER,(char *)&ling,sizeof(ling));
367
--    if (i < 0) { perror("linger"); return(0); }
368
-+    if (i < 0) { closesocket(ret); perror("linger"); return(0); }
369
-     i=0;
370
-     i=setsockopt(ret,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
371
--    if (i < 0) { perror("keepalive"); return(0); }
372
-+    if (i < 0) { closesocket(ret); perror("keepalive"); return(0); }
373
- */
374
- 
375
-     if (host == NULL)
376
-         goto end;
377
--# ifndef BIT_FIELD_LIMITS
378
--    /* I should use WSAAsyncGetHostByName() under windows */
379
--    h1 = gethostbyaddr((char *)&from.sin_addr.s_addr,
380
--                       sizeof(from.sin_addr.s_addr), AF_INET);
381
--# else
382
--    h1 = gethostbyaddr((char *)&from.sin_addr,
383
--                       sizeof(struct in_addr), AF_INET);
384
--# endif
385
--    if (h1 == NULL) {
386
--        BIO_printf(bio_err, "bad gethostbyaddr\n");
387
-+
388
-+    if (getnameinfo((struct sockaddr *)&from, sizeof(from),
389
-+                    buffer, sizeof(buffer), NULL, 0, 0)) {
390
-+        BIO_printf(bio_err, "getnameinfo failed\n");
391
-         *host = NULL;
392
-         /* return(0); */
393
-     } else {
394
--        if ((*host = (char *)OPENSSL_malloc(strlen(h1->h_name) + 1)) == NULL) {
395
-+        if ((*host = (char *)OPENSSL_malloc(strlen(buffer) + 1)) == NULL) {
396
-             perror("OPENSSL_malloc");
397
-             closesocket(ret);
398
-             return (0);
399
-         }
400
--        BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
401
--
402
--        h2 = GetHostByName(*host);
403
--        if (h2 == NULL) {
404
--            BIO_printf(bio_err, "gethostbyname failure\n");
405
--            closesocket(ret);
406
--            return (0);
407
--        }
408
--        if (h2->h_addrtype != AF_INET) {
409
--            BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
410
--            closesocket(ret);
411
--            return (0);
412
--        }
413
-+        strcpy(*host, buffer);
414
-     }
415
-  end:
416
-     *sock = ret;
417
-     return (1);
418
- }
419
- 
420
--int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
421
--                      short *port_ptr)
422
-+int extract_host_port(char *str, char **host_ptr, char **port_ptr)
423
- {
424
--    char *h, *p;
425
-+    char *h, *p, *x;
426
- 
427
--    h = str;
428
--    p = strchr(str, ':');
429
-+    x = h = str;
430
-+    if (*h == '[') {
431
-+        h++;
432
-+        p = strchr(h, ']');
433
-+        if (p == NULL) {
434
-+            BIO_printf(bio_err, "no ending bracket for IPv6 address\n");
435
-+            return (0);
436
-+        }
437
-+        *(p++) = '\0';
438
-+        x = p;
439
-+    }
440
-+    p = strchr(x, ':');
441
-     if (p == NULL) {
442
-         BIO_printf(bio_err, "no port defined\n");
443
-         return (0);
444
-     }
445
-     *(p++) = '\0';
446
- 
447
--    if ((ip != NULL) && !host_ip(str, ip))
448
--        goto err;
449
-     if (host_ptr != NULL)
450
-         *host_ptr = h;
451
-+    if (port_ptr != NULL)
452
-+        *port_ptr = p;
453
- 
454
--    if (!extract_port(p, port_ptr))
455
--        goto err;
456
--    return (1);
457
-- err:
458
--    return (0);
459
--}
460
--
461
--static int host_ip(char *str, unsigned char ip[4])
462
--{
463
--    unsigned int in[4];
464
--    int i;
465
--
466
--    if (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) ==
467
--        4) {
468
--        for (i = 0; i < 4; i++)
469
--            if (in[i] > 255) {
470
--                BIO_printf(bio_err, "invalid IP address\n");
471
--                goto err;
472
--            }
473
--        ip[0] = in[0];
474
--        ip[1] = in[1];
475
--        ip[2] = in[2];
476
--        ip[3] = in[3];
477
--    } else {                    /* do a gethostbyname */
478
--        struct hostent *he;
479
--
480
--        if (!ssl_sock_init())
481
--            return (0);
482
--
483
--        he = GetHostByName(str);
484
--        if (he == NULL) {
485
--            BIO_printf(bio_err, "gethostbyname failure\n");
486
--            goto err;
487
--        }
488
--        /* cast to short because of win16 winsock definition */
489
--        if ((short)he->h_addrtype != AF_INET) {
490
--            BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
491
--            return (0);
492
--        }
493
--        ip[0] = he->h_addr_list[0][0];
494
--        ip[1] = he->h_addr_list[0][1];
495
--        ip[2] = he->h_addr_list[0][2];
496
--        ip[3] = he->h_addr_list[0][3];
497
--    }
498
--    return (1);
499
-- err:
500
--    return (0);
501
--}
502
--
503
--int extract_port(char *str, short *port_ptr)
504
--{
505
--    int i;
506
--    struct servent *s;
507
--
508
--    i = atoi(str);
509
--    if (i != 0)
510
--        *port_ptr = (unsigned short)i;
511
--    else {
512
--        s = getservbyname(str, "tcp");
513
--        if (s == NULL) {
514
--            BIO_printf(bio_err, "getservbyname failure for %s\n", str);
515
--            return (0);
516
--        }
517
--        *port_ptr = ntohs((unsigned short)s->s_port);
518
--    }
519
-     return (1);
520
- }
521
- 
522
-
523 1
new file mode 100644
... ...
@@ -0,0 +1,526 @@
0
+diff -up openssl-1.0.2a/apps/s_apps.h.ipv6-apps openssl-1.0.2a/apps/s_apps.h
1
+--- openssl-1.0.2a/apps/s_apps.h.ipv6-apps	2015-04-20 15:01:24.029120104 +0200
2
+@@ -151,7 +151,7 @@ typedef fd_mask fd_set;
3
+ #define PORT_STR        "4433"
4
+ #define PROTOCOL        "tcp"
5
+ 
6
+-int do_server(int port, int type, int *ret,
7
++int do_server(char *port, int type, int *ret,
8
+               int (*cb) (char *hostname, int s, int stype,
9
+                          unsigned char *context), unsigned char *context,
10
+               int naccept);
11
+@@ -167,11 +167,10 @@ int ssl_print_point_formats(BIO *out, SS
12
+ int ssl_print_curves(BIO *out, SSL *s, int noshared);
13
+ #endif
14
+ int ssl_print_tmp_key(BIO *out, SSL *s);
15
+-int init_client(int *sock, char *server, int port, int type);
16
++int init_client(int *sock, char *server, char *port, int type);
17
+ int should_retry(int i);
18
+ int extract_port(char *str, short *port_ptr);
19
+-int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
20
+-                      short *p);
21
++int extract_host_port(char *str, char **host_ptr, char **port_ptr);
22
+ 
23
+ long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
24
+                                    int argi, long argl, long ret);
25
+diff -up openssl-1.0.2a/apps/s_client.c.ipv6-apps openssl-1.0.2a/apps/s_client.c
26
+--- openssl-1.0.2a/apps/s_client.c.ipv6-apps	2015-04-20 15:01:24.022119942 +0200
27
+@@ -662,7 +662,7 @@ int MAIN(int argc, char **argv)
28
+     int cbuf_len, cbuf_off;
29
+     int sbuf_len, sbuf_off;
30
+     fd_set readfds, writefds;
31
+-    short port = PORT;
32
++    char *port_str = PORT_STR;
33
+     int full_log = 1;
34
+     char *host = SSL_HOST_NAME;
35
+     char *cert_file = NULL, *key_file = NULL, *chain_file = NULL;
36
+@@ -785,13 +785,11 @@ int MAIN(int argc, char **argv)
37
+         } else if (strcmp(*argv, "-port") == 0) {
38
+             if (--argc < 1)
39
+                 goto bad;
40
+-            port = atoi(*(++argv));
41
+-            if (port == 0)
42
+-                goto bad;
43
++            port_str = *(++argv);
44
+         } else if (strcmp(*argv, "-connect") == 0) {
45
+             if (--argc < 1)
46
+                 goto bad;
47
+-            if (!extract_host_port(*(++argv), &host, NULL, &port))
48
++            if (!extract_host_port(*(++argv), &host, &port_str))
49
+                 goto bad;
50
+         } else if (strcmp(*argv, "-verify") == 0) {
51
+             verify = SSL_VERIFY_PEER;
52
+@@ -1417,7 +1415,7 @@ int MAIN(int argc, char **argv)
53
+ 
54
+  re_start:
55
+ 
56
+-    if (init_client(&s, host, port, socket_type) == 0) {
57
++    if (init_client(&s, host, port_str, socket_type) == 0) {
58
+         BIO_printf(bio_err, "connect:errno=%d\n", get_last_socket_error());
59
+         SHUTDOWN(s);
60
+         goto end;
61
+diff -up openssl-1.0.2a/apps/s_server.c.ipv6-apps openssl-1.0.2a/apps/s_server.c
62
+--- openssl-1.0.2a/apps/s_server.c.ipv6-apps	2015-04-20 15:01:24.030120127 +0200
63
+@@ -1061,7 +1061,7 @@ int MAIN(int argc, char *argv[])
64
+ {
65
+     X509_VERIFY_PARAM *vpm = NULL;
66
+     int badarg = 0;
67
+-    short port = PORT;
68
++    char *port_str = PORT_STR;
69
+     char *CApath = NULL, *CAfile = NULL;
70
+     char *chCApath = NULL, *chCAfile = NULL;
71
+     char *vfyCApath = NULL, *vfyCAfile = NULL;
72
+@@ -1148,7 +1148,8 @@ int MAIN(int argc, char *argv[])
73
+         if ((strcmp(*argv, "-port") == 0) || (strcmp(*argv, "-accept") == 0)) {
74
+             if (--argc < 1)
75
+                 goto bad;
76
+-            if (!extract_port(*(++argv), &port))
77
++            port_str = *(++argv);
78
++            if (port_str == NULL || *port_str == '\0')
79
+                 goto bad;
80
+         } else if (strcmp(*argv, "-naccept") == 0) {
81
+             if (--argc < 1)
82
+@@ -2020,13 +2021,13 @@ int MAIN(int argc, char *argv[])
83
+     BIO_printf(bio_s_out, "ACCEPT\n");
84
+     (void)BIO_flush(bio_s_out);
85
+     if (rev)
86
+-        do_server(port, socket_type, &accept_socket, rev_body, context,
87
++        do_server(port_str, socket_type, &accept_socket, rev_body, context,
88
+                   naccept);
89
+     else if (www)
90
+-        do_server(port, socket_type, &accept_socket, www_body, context,
91
++        do_server(port_str, socket_type, &accept_socket, www_body, context,
92
+                   naccept);
93
+     else
94
+-        do_server(port, socket_type, &accept_socket, sv_body, context,
95
++        do_server(port_str, socket_type, &accept_socket, sv_body, context,
96
+                   naccept);
97
+     print_stats(bio_s_out, ctx);
98
+     ret = 0;
99
+diff -up openssl-1.0.2a/apps/s_socket.c.ipv6-apps openssl-1.0.2a/apps/s_socket.c
100
+--- openssl-1.0.2a/apps/s_socket.c.ipv6-apps	2015-03-19 14:30:36.000000000 +0100
101
+@@ -106,9 +106,7 @@ static struct hostent *GetHostByName(cha
102
+ static void ssl_sock_cleanup(void);
103
+ # endif
104
+ static int ssl_sock_init(void);
105
+-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type);
106
+-static int init_server(int *sock, int port, int type);
107
+-static int init_server_long(int *sock, int port, char *ip, int type);
108
++static int init_server(int *sock, char *port, int type);
109
+ static int do_accept(int acc_sock, int *sock, char **host);
110
+ static int host_ip(char *str, unsigned char ip[4]);
111
+ 
112
+@@ -231,65 +229,66 @@ static int ssl_sock_init(void)
113
+     return (1);
114
+ }
115
+ 
116
+-int init_client(int *sock, char *host, int port, int type)
117
++int init_client(int *sock, char *host, char *port, int type)
118
+ {
119
+-    unsigned char ip[4];
120
+-
121
+-    memset(ip, '\0', sizeof ip);
122
+-    if (!host_ip(host, &(ip[0])))
123
+-        return 0;
124
+-    return init_client_ip(sock, ip, port, type);
125
+-}
126
+-
127
+-static int init_client_ip(int *sock, unsigned char ip[4], int port, int type)
128
+-{
129
+-    unsigned long addr;
130
+-    struct sockaddr_in them;
131
+-    int s, i;
132
++    struct addrinfo *res, *res0, hints;
133
++    char *failed_call = NULL;
134
++    int s;
135
++    int e;
136
+ 
137
+     if (!ssl_sock_init())
138
+         return (0);
139
+ 
140
+-    memset((char *)&them, 0, sizeof(them));
141
+-    them.sin_family = AF_INET;
142
+-    them.sin_port = htons((unsigned short)port);
143
+-    addr = (unsigned long)
144
+-        ((unsigned long)ip[0] << 24L) |
145
+-        ((unsigned long)ip[1] << 16L) |
146
+-        ((unsigned long)ip[2] << 8L) | ((unsigned long)ip[3]);
147
+-    them.sin_addr.s_addr = htonl(addr);
148
+-
149
+-    if (type == SOCK_STREAM)
150
+-        s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
151
+-    else                        /* ( type == SOCK_DGRAM) */
152
+-        s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
153
+-
154
+-    if (s == INVALID_SOCKET) {
155
+-        perror("socket");
156
++    memset(&hints, '\0', sizeof(hints));
157
++    hints.ai_socktype = type;
158
++    hints.ai_flags = AI_ADDRCONFIG;
159
++
160
++    e = getaddrinfo(host, port, &hints, &res);
161
++    if (e) {
162
++        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(e));
163
++        if (e == EAI_SYSTEM)
164
++            perror("getaddrinfo");
165
+         return (0);
166
+     }
167
++
168
++    res0 = res;
169
++    while (res) {
170
++        s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
171
++        if (s == INVALID_SOCKET) {
172
++            failed_call = "socket";
173
++            goto nextres;
174
++        }
175
+ # if defined(SO_KEEPALIVE) && !defined(OPENSSL_SYS_MPE)
176
+-    if (type == SOCK_STREAM) {
177
+-        i = 0;
178
+-        i = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&i, sizeof(i));
179
+-        if (i < 0) {
180
+-            closesocket(s);
181
+-            perror("keepalive");
182
+-            return (0);
183
++        if (type == SOCK_STREAM) {
184
++            int i = 0;
185
++            i = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE,
186
++                           (char *)&i, sizeof(i));
187
++            if (i < 0) {
188
++                failed_call = "keepalive";
189
++                goto nextres;
190
++            }
191
+         }
192
+-    }
193
+ # endif
194
+-
195
+-    if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1) {
196
+-        closesocket(s);
197
+-        perror("connect");
198
+-        return (0);
199
++        if (connect(s, (struct sockaddr *)res->ai_addr, res->ai_addrlen) == 0) {
200
++            freeaddrinfo(res0);
201
++            *sock = s;
202
++            return (1);
203
++        }
204
++
205
++        failed_call = "socket";
206
++ nextres:
207
++        if (s != INVALID_SOCKET)
208
++            close(s);
209
++        res = res->ai_next;
210
+     }
211
+-    *sock = s;
212
+-    return (1);
213
++    freeaddrinfo(res0);
214
++    closesocket(s);
215
++
216
++    perror(failed_call);
217
++    return (0);
218
+ }
219
+ 
220
+-int do_server(int port, int type, int *ret,
221
++int do_server(char *port, int type, int *ret,
222
+               int (*cb) (char *hostname, int s, int stype,
223
+                          unsigned char *context), unsigned char *context,
224
+               int naccept)
225
+@@ -328,69 +327,89 @@ int do_server(int port, int type, int *r
226
+     }
227
+ }
228
+ 
229
+-static int init_server_long(int *sock, int port, char *ip, int type)
230
++static int init_server(int *sock, char *port, int type)
231
+ {
232
+-    int ret = 0;
233
+-    struct sockaddr_in server;
234
+-    int s = -1;
235
++    struct addrinfo *res, *res0 = NULL, hints;
236
++    char *failed_call = NULL;
237
++    int s = INVALID_SOCKET;
238
++    int e;
239
+ 
240
+     if (!ssl_sock_init())
241
+         return (0);
242
+ 
243
+-    memset((char *)&server, 0, sizeof(server));
244
+-    server.sin_family = AF_INET;
245
+-    server.sin_port = htons((unsigned short)port);
246
+-    if (ip == NULL)
247
+-        server.sin_addr.s_addr = INADDR_ANY;
248
+-    else
249
+-/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
250
+-# ifndef BIT_FIELD_LIMITS
251
+-        memcpy(&server.sin_addr.s_addr, ip, 4);
252
+-# else
253
+-        memcpy(&server.sin_addr, ip, 4);
254
+-# endif
255
+-
256
+-    if (type == SOCK_STREAM)
257
+-        s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
258
+-    else                        /* type == SOCK_DGRAM */
259
+-        s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
260
++    memset(&hints, '\0', sizeof(hints));
261
++    hints.ai_family = AF_INET6;
262
++ tryipv4:
263
++    hints.ai_socktype = type;
264
++    hints.ai_flags = AI_PASSIVE;
265
++
266
++    e = getaddrinfo(NULL, port, &hints, &res);
267
++    if (e) {
268
++        if (hints.ai_family == AF_INET) {
269
++            fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(e));
270
++            if (e == EAI_SYSTEM)
271
++                perror("getaddrinfo");
272
++            return (0);
273
++        } else
274
++            res = NULL;
275
++    }
276
+ 
277
+-    if (s == INVALID_SOCKET)
278
+-        goto err;
279
++    res0 = res;
280
++    while (res) {
281
++        s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
282
++        if (s == INVALID_SOCKET) {
283
++            failed_call = "socket";
284
++            goto nextres;
285
++        }
286
++        if (hints.ai_family == AF_INET6) {
287
++            int j = 0;
288
++            setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&j, sizeof j);
289
++        }
290
+ # if defined SOL_SOCKET && defined SO_REUSEADDR
291
+-    {
292
+-        int j = 1;
293
+-        setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
294
+-    }
295
+-# endif
296
+-    if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) {
297
+-# ifndef OPENSSL_SYS_WINDOWS
298
+-        perror("bind");
299
++        {
300
++            int j = 1;
301
++            setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
302
++        }
303
+ # endif
304
+-        goto err;
305
++
306
++        if (bind(s, (struct sockaddr *)res->ai_addr, res->ai_addrlen) == -1) {
307
++            failed_call = "bind";
308
++            goto nextres;
309
++        }
310
++        if (type == SOCK_STREAM && listen(s, 128) == -1) {
311
++            failed_call = "listen";
312
++            goto nextres;
313
++        }
314
++
315
++        *sock = s;
316
++        return (1);
317
++
318
++ nextres:
319
++        if (s != INVALID_SOCKET)
320
++            close(s);
321
++        res = res->ai_next;
322
+     }
323
+-    /* Make it 128 for linux */
324
+-    if (type == SOCK_STREAM && listen(s, 128) == -1)
325
+-        goto err;
326
+-    *sock = s;
327
+-    ret = 1;
328
+- err:
329
+-    if ((ret == 0) && (s != -1)) {
330
+-        SHUTDOWN(s);
331
++    if (res0)
332
++        freeaddrinfo(res0);
333
++
334
++    if (s == INVALID_SOCKET) {
335
++        if (hints.ai_family == AF_INET6) {
336
++            hints.ai_family = AF_INET;
337
++            goto tryipv4;
338
++        }
339
++        perror("socket");
340
++        return (0);
341
+     }
342
+-    return (ret);
343
+-}
344
+ 
345
+-static int init_server(int *sock, int port, int type)
346
+-{
347
+-    return (init_server_long(sock, port, NULL, type));
348
++    perror(failed_call);
349
++    return (0);
350
+ }
351
+ 
352
+ static int do_accept(int acc_sock, int *sock, char **host)
353
+ {
354
++    static struct sockaddr_storage from;
355
++    char buffer[NI_MAXHOST];
356
+     int ret;
357
+-    struct hostent *h1, *h2;
358
+-    static struct sockaddr_in from;
359
+     int len;
360
+ /*      struct linger ling; */
361
+ 
362
+@@ -432,134 +451,60 @@ static int do_accept(int acc_sock, int *
363
+     ling.l_onoff=1;
364
+     ling.l_linger=0;
365
+     i=setsockopt(ret,SOL_SOCKET,SO_LINGER,(char *)&ling,sizeof(ling));
366
+-    if (i < 0) { perror("linger"); return(0); }
367
++    if (i < 0) { closesocket(ret); perror("linger"); return(0); }
368
+     i=0;
369
+     i=setsockopt(ret,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
370
+-    if (i < 0) { perror("keepalive"); return(0); }
371
++    if (i < 0) { closesocket(ret); perror("keepalive"); return(0); }
372
+ */
373
+ 
374
+     if (host == NULL)
375
+         goto end;
376
+-# ifndef BIT_FIELD_LIMITS
377
+-    /* I should use WSAAsyncGetHostByName() under windows */
378
+-    h1 = gethostbyaddr((char *)&from.sin_addr.s_addr,
379
+-                       sizeof(from.sin_addr.s_addr), AF_INET);
380
+-# else
381
+-    h1 = gethostbyaddr((char *)&from.sin_addr,
382
+-                       sizeof(struct in_addr), AF_INET);
383
+-# endif
384
+-    if (h1 == NULL) {
385
+-        BIO_printf(bio_err, "bad gethostbyaddr\n");
386
++
387
++    if (getnameinfo((struct sockaddr *)&from, sizeof(from),
388
++                    buffer, sizeof(buffer), NULL, 0, 0)) {
389
++        BIO_printf(bio_err, "getnameinfo failed\n");
390
+         *host = NULL;
391
+         /* return(0); */
392
+     } else {
393
+-        if ((*host = (char *)OPENSSL_malloc(strlen(h1->h_name) + 1)) == NULL) {
394
++        if ((*host = (char *)OPENSSL_malloc(strlen(buffer) + 1)) == NULL) {
395
+             perror("OPENSSL_malloc");
396
+             closesocket(ret);
397
+             return (0);
398
+         }
399
+-        BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
400
+-
401
+-        h2 = GetHostByName(*host);
402
+-        if (h2 == NULL) {
403
+-            BIO_printf(bio_err, "gethostbyname failure\n");
404
+-            closesocket(ret);
405
+-            return (0);
406
+-        }
407
+-        if (h2->h_addrtype != AF_INET) {
408
+-            BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
409
+-            closesocket(ret);
410
+-            return (0);
411
+-        }
412
++        strcpy(*host, buffer);
413
+     }
414
+  end:
415
+     *sock = ret;
416
+     return (1);
417
+ }
418
+ 
419
+-int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
420
+-                      short *port_ptr)
421
++int extract_host_port(char *str, char **host_ptr, char **port_ptr)
422
+ {
423
+-    char *h, *p;
424
++    char *h, *p, *x;
425
+ 
426
+-    h = str;
427
+-    p = strchr(str, ':');
428
++    x = h = str;
429
++    if (*h == '[') {
430
++        h++;
431
++        p = strchr(h, ']');
432
++        if (p == NULL) {
433
++            BIO_printf(bio_err, "no ending bracket for IPv6 address\n");
434
++            return (0);
435
++        }
436
++        *(p++) = '\0';
437
++        x = p;
438
++    }
439
++    p = strchr(x, ':');
440
+     if (p == NULL) {
441
+         BIO_printf(bio_err, "no port defined\n");
442
+         return (0);
443
+     }
444
+     *(p++) = '\0';
445
+ 
446
+-    if ((ip != NULL) && !host_ip(str, ip))
447
+-        goto err;
448
+     if (host_ptr != NULL)
449
+         *host_ptr = h;
450
++    if (port_ptr != NULL)
451
++        *port_ptr = p;
452
+ 
453
+-    if (!extract_port(p, port_ptr))
454
+-        goto err;
455
+-    return (1);
456
+- err:
457
+-    return (0);
458
+-}
459
+-
460
+-static int host_ip(char *str, unsigned char ip[4])
461
+-{
462
+-    unsigned int in[4];
463
+-    int i;
464
+-
465
+-    if (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) ==
466
+-        4) {
467
+-        for (i = 0; i < 4; i++)
468
+-            if (in[i] > 255) {
469
+-                BIO_printf(bio_err, "invalid IP address\n");
470
+-                goto err;
471
+-            }
472
+-        ip[0] = in[0];
473
+-        ip[1] = in[1];
474
+-        ip[2] = in[2];
475
+-        ip[3] = in[3];
476
+-    } else {                    /* do a gethostbyname */
477
+-        struct hostent *he;
478
+-
479
+-        if (!ssl_sock_init())
480
+-            return (0);
481
+-
482
+-        he = GetHostByName(str);
483
+-        if (he == NULL) {
484
+-            BIO_printf(bio_err, "gethostbyname failure\n");
485
+-            goto err;
486
+-        }
487
+-        /* cast to short because of win16 winsock definition */
488
+-        if ((short)he->h_addrtype != AF_INET) {
489
+-            BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
490
+-            return (0);
491
+-        }
492
+-        ip[0] = he->h_addr_list[0][0];
493
+-        ip[1] = he->h_addr_list[0][1];
494
+-        ip[2] = he->h_addr_list[0][2];
495
+-        ip[3] = he->h_addr_list[0][3];
496
+-    }
497
+-    return (1);
498
+- err:
499
+-    return (0);
500
+-}
501
+-
502
+-int extract_port(char *str, short *port_ptr)
503
+-{
504
+-    int i;
505
+-    struct servent *s;
506
+-
507
+-    i = atoi(str);
508
+-    if (i != 0)
509
+-        *port_ptr = (unsigned short)i;
510
+-    else {
511
+-        s = getservbyname(str, "tcp");
512
+-        if (s == NULL) {
513
+-            BIO_printf(bio_err, "getservbyname failure for %s\n", str);
514
+-            return (0);
515
+-        }
516
+-        *port_ptr = ntohs((unsigned short)s->s_port);
517
+-    }
518
+     return (1);
519
+ }
520
+ 
521
+
... ...
@@ -1,6 +1,6 @@
1 1
 Summary:        Management tools and libraries relating to cryptography
2 2
 Name:           openssl
3
-Version:        1.0.2m
3
+Version:        1.0.2n
4 4
 Release:        1%{?dist}
5 5
 License:        OpenSSL
6 6
 URL:            http://www.openssl.org
... ...
@@ -8,9 +8,9 @@ Group:          System Environment/Security
8 8
 Vendor:         VMware, Inc.
9 9
 Distribution:   Photon
10 10
 Source0:        http://www.openssl.org/source/%{name}-%{version}.tar.gz
11
-%define sha1    openssl=27fb00641260f97eaa587eb2b80fab3647f6013b
11
+%define sha1    openssl=0ca2957869206de193603eca6d89f532f61680b1
12 12
 Patch0:         c_rehash.patch
13
-Patch1:         openssl-1.0.2m-ipv6apps.patch
13
+Patch1:         openssl-1.0.2n-ipv6apps.patch
14 14
 Patch2:         openssl-init-conslidate.patch
15 15
 Patch3:         openssl-drbg-default-read-system-fips.patch
16 16
 %if %{with_check}
... ...
@@ -115,6 +115,8 @@ rm -rf %{buildroot}/*
115 115
 /%{_bindir}/c_rehash
116 116
 
117 117
 %changelog
118
+*   Tue Jan 02 2018 Xiaolin Li <xiaolinl@vmware.com> 1.0.2n-1
119
+-   Upgrade to 1.0.2n
118 120
 *   Tue Nov 07 2017 Anish Swaminathan <anishs@vmware.com> 1.0.2m-1
119 121
 -   Upgrade to 1.0.2m
120 122
 *   Tue Oct 10 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.0.2l-2
121 123
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+diff -Naur pcstat-master_orig/syscall_linux_arm64.go pcstat-master/syscall_linux_arm64.go
1
+--- pcstat-master_orig/syscall_linux_arm64.go	1970-01-01 00:00:00.000000000 +0000
2
+@@ -0,0 +1,20 @@
3
++package pcstat
4
++
5
++/*
6
++ * Copyright 2018 Alexey Makhalov <amakhalov@vmware.com>
7
++ *
8
++ * Licensed under the Apache License, Version 2.0 (the "License");
9
++ * you may not use this file except in compliance with the License.
10
++ * You may obtain a copy of the License at
11
++ *
12
++ *     http://www.apache.org/licenses/LICENSE-2.0
13
++ *
14
++ * Unless required by applicable law or agreed to in writing, software
15
++ * distributed under the License is distributed on an "AS IS" BASIS,
16
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
++ * See the License for the specific language governing permissions and
18
++ * limitations under the License.
19
++ */
20
++
21
++ // https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/unistd32.h
22
++const SYS_SETNS = 375
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        A tool that inspect which pages of a file or files are being cached by the Linux kernel
2 2
 Name:           pcstat 
3 3
 Version:        1
4
-Release:        5%{?dist}
4
+Release:        6%{?dist}
5 5
 License:        Apache 
6 6
 URL:            https://github.com/tobert/pcstat
7 7
 Group:          Development/Debuggers
... ...
@@ -11,6 +11,7 @@ Source0:        https://github.com/tobert/pcstat/archive/pcstat-1.zip
11 11
 %define sha1    pcstat=cd67c42d291763597dbe3fb19e8e367c54a4a898
12 12
 Source1:        https://github.com/golang/sys/golang-sys-08-02-2017.zip
13 13
 %define sha1    golang-sys=7f713451011d127755448c6603c15dc907bc47bc
14
+Patch0:         pcstat-aarch64-support.patch
14 15
 BuildRequires:  unzip go audit git
15 16
 Requires:       go
16 17
 %description
... ...
@@ -18,6 +19,8 @@ A tool that inspect which pages of a file or files are being cached by the Linux
18 18
 
19 19
 %prep
20 20
 %setup -qn pcstat-master
21
+%patch0 -p1
22
+
21 23
 %build
22 24
 cd ..
23 25
 unzip %{SOURCE1}
... ...
@@ -49,6 +52,8 @@ rm -rf %{buildroot}/*
49 49
 %{_bindir}/pcstat
50 50
 
51 51
 %changelog
52
+*   Wed Jan 03 2018 Alexey Makhalov <amakhalov@vmware.com> 1-6
53
+-   Aarch64 support
52 54
 *   Wed Aug 02 2017 Dheeraj Shetty <dheerajs@vmware.com> 1-5
53 55
 -   Remove the build time dependencies and avoid downloading from github
54 56
 *   Tue Mar 07 2017 XIaolin Li <xiaolinl@vmware.com> 1-4
... ...
@@ -3,16 +3,15 @@
3 3
 %{!?python3_sitelib: %define python3_sitelib %(python3 -c "from distutils.sysconfig import get_python_lib;print(get_python_lib())")}
4 4
 Summary:        PyInstaller bundles a Python application and all its dependencies into a single package.
5 5
 Name:           python-pyinstaller
6
-Version:        3.2.1
7
-Release:        2%{?dist}
8
-Url:            https://pypi.python.org/pypi/PyInstaller/3.2.1
6
+Version:        3.3.1
7
+Release:        1%{?dist}
8
+Url:            https://pypi.python.org/pypi/PyInstaller/3.3.1
9 9
 License:        GPLv2+
10 10
 Group:          Development/Languages/Python
11 11
 Vendor:         VMware, Inc.
12 12
 Distribution:   Photon
13
-Source0:        https://files.pythonhosted.org/packages/source/P/PyInstaller/PyInstaller-%{version}.tar.bz2
14
-%define sha1    PyInstaller=6e8bc52d325a5527402ad574f774ed64c70bf03f
15
-Patch0:         python2-unit-tests.patch
13
+Source0:        https://files.pythonhosted.org/packages/source/P/PyInstaller/PyInstaller-%{version}.tar.gz
14
+%define sha1    PyInstaller=578324d2dfb4edbfca34903dbde404c95a211663
16 15
 BuildRequires:  python2
17 16
 BuildRequires:  python2-libs
18 17
 BuildRequires:  python2-devel
... ...
@@ -58,9 +57,12 @@ Python 3 version.
58 58
 
59 59
 rm -rf ../p3dir
60 60
 cp -a . ../p3dir
61
-%patch0 -p1
62 61
 
63 62
 %build
63
+pushd bootloader
64
+python ./waf distclean all
65
+popd
66
+
64 67
 python2 setup.py build
65 68
 pushd ../p3dir
66 69
 python3 setup.py build
... ...
@@ -79,7 +81,6 @@ mv %{buildroot}/%{_bindir}/pyinstaller        %{buildroot}/%{_bindir}/pyinstalle
79 79
 popd
80 80
 python2 setup.py install --single-version-externally-managed -O1 --root=%{buildroot}
81 81
 
82
-
83 82
 %check
84 83
 # future is required for python2 make check
85 84
 pip2 install -U future
... ...
@@ -110,6 +111,9 @@ LANG=en_US.UTF-8 py.test2 tests/unit tests/functional \
110 110
 %{_bindir}/pyinstaller3
111 111
 %exclude %{python2_sitelib}/PyInstaller/bootloader/Darwin-64bit
112 112
 %exclude %{python2_sitelib}/PyInstaller/bootloader/Linux-32bit
113
+%ifarch aarch64
114
+%exclude %{python2_sitelib}/PyInstaller/bootloader/Linux-64bit
115
+%endif
113 116
 %exclude %{python2_sitelib}/PyInstaller/bootloader/Windows-32bit
114 117
 %exclude %{python2_sitelib}/PyInstaller/bootloader/Windows-64bit
115 118
 
... ...
@@ -119,10 +123,15 @@ LANG=en_US.UTF-8 py.test2 tests/unit tests/functional \
119 119
 %{python3_sitelib}/*
120 120
 %exclude %{python3_sitelib}/PyInstaller/bootloader/Darwin-64bit
121 121
 %exclude %{python3_sitelib}/PyInstaller/bootloader/Linux-32bit
122
+%ifarch aarch64
123
+%exclude %{python3_sitelib}/PyInstaller/bootloader/Linux-64bit
124
+%endif
122 125
 %exclude %{python3_sitelib}/PyInstaller/bootloader/Windows-32bit
123 126
 %exclude %{python3_sitelib}/PyInstaller/bootloader/Windows-64bit
124 127
 
125 128
 %changelog
129
+*   Tue Jan 02 2018 Alexey Makhalov <amakhalov@vmware.com> 3.3.1-1
130
+-   Version update. Build bootloader from sources
126 131
 *   Mon Sep 25 2017 Bo Gan <ganb@vmware.com> 3.2.1-2
127 132
 -   Fix make check issues.
128 133
 *   Tue Feb 14 2017 Xiaolin Li <xiaolinl@vmware.com> 3.2.1-1
129 134
deleted file mode 100644
... ...
@@ -1,27 +0,0 @@
1
-diff --git a/tests/unit/test_hookutils.py b/tests/unit/test_hookutils.py
2
-index a33f5e5..f8908e7
3
-+++ b/tests/unit/test_hookutils.py
4
-@@ -13,7 +13,7 @@ import pytest
5
- import shutil
6
- from os.path import join
7
- from threading import Thread
8
--from queue import Queue
9
-+from multiprocessing import Queue
10
- 
11
- from PyInstaller.utils.hooks import collect_data_files, collect_submodules, \
12
-   get_module_file_attribute, remove_prefix, remove_suffix, \
13
-
14
-diff --git a/tests/unit/test_loader.py b/tests/unit/test_loader.py 
15
-index 67ad04b..127d9ec
16
-+++ b/tests/unit/test_loader.py
17
-@@ -10,7 +10,7 @@
18
- 
19
- import pytest
20
- from threading import Thread
21
--from queue import Queue
22
-+from multiprocessing import Queue
23
- 
24
- from PyInstaller.loader.pyimod02_archive import ArchiveFile
25
- 
... ...
@@ -10,7 +10,6 @@ Type=notify
10 10
 ExecStart=/usr/sbin/rsyslogd -n $RSYSLOGD_PARAMS
11 11
 StandardOutput=null
12 12
 Environment=RSYSLOGD_PARAMS=
13
-ExecReload=/bin/kill -HUP $MAINPID
14 13
 Restart=on-failure
15 14
 
16 15
 [Install]
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        Rocket-fast system for log processing
2 2
 Name:           rsyslog
3 3
 Version:        8.26.0
4
-Release:        3%{?dist}
4
+Release:        4%{?dist}
5 5
 License:        GPLv3+ and ASL 2.0
6 6
 URL:            http://www.rsyslog.com/
7 7
 Source0:        http://www.rsyslog.com/files/download/rsyslog/%{name}-%{version}.tar.gz
... ...
@@ -81,6 +81,8 @@ make %{?_smp_mflags} check
81 81
 %{_sysconfdir}/systemd/journald.conf.d/*
82 82
 %{_sysconfdir}/rsyslog.conf
83 83
 %changelog
84
+*   Fri Dec 15 2017 Anish Swaminathan <anishs@vmware.com>  8.26.0-4
85
+-   Remove kill SIGHUP from service file
84 86
 *   Mon Nov 13 2017 Xiaolin Li <xiaolinl@vmware.com> 8.26.0-3
85 87
 -   Add a default rsyslog.conf.
86 88
 *   Tue Aug 15 2017 Dheeraj Shetty <dheerajs@vmware.com>  8.26.0-2
... ...
@@ -40,6 +40,7 @@ def query_yes_no(question, default="no"):
40 40
 
41 41
 def create_vmdk_and_partition(config, vmdk_path):
42 42
     partitions_data = {}
43
+
43 44
     firmware = "bios"
44 45
     if 'boot' in config and config['boot'] == 'efi':
45 46
         firmware = "efi"
... ...
@@ -47,7 +48,13 @@ def create_vmdk_and_partition(config, vmdk_path):
47 47
                                 config['size']['swap'], '-n', vmdk_path, '-fm', firmware, '-m'],
48 48
                                stdout=subprocess.PIPE)
49 49
     count = 0
50
-    for line in iter(process.stdout.readline, ''):
50
+
51
+    while True:
52
+        line = process.stdout.readline().decode()
53
+        if line == '':
54
+            retval = process.poll()
55
+            if retval is not None:
56
+                break
51 57
         sys.stdout.write(line)
52 58
         if line.startswith("DISK_DEVICE="):
53 59
             partitions_data['disk'] = line.replace("DISK_DEVICE=", "").strip()
... ...
@@ -231,7 +238,6 @@ if __name__ == '__main__':
231 231
 
232 232
             config['iso_system'] = False
233 233
             config['vmdk_install'] = True
234
-
235 234
         else:
236 235
             # Check the arguments
237 236
             if not options.configfile:
... ...
@@ -244,6 +250,7 @@ if __name__ == '__main__':
244 244
             config['vmdk_install'] = False
245 245
 
246 246
         config["pkg_to_rpm_map_file"] = options.pkg_to_rpm_map_file
247
+
247 248
         if 'password' in config:
248 249
             # crypt the password if needed
249 250
             if config['password']['crypted']:
... ...
@@ -11,8 +11,6 @@
11 11
     "public_key":"<ssh-key-here>",
12 12
     "postinstallscripts": ["rpi3-custom-patch.sh"],
13 13
     "additionalfiles": [
14
-                            {"root/boot/grub2/arm64-efi": "/boot/grub2/arm64-efi"},
15
-                            {"root/boot/dtb-4.4.36-8": "/boot/dtb"},
16 14
                             {"photon-dev.repo": "/etc/yum.repos.d/photon-dev.repo"},
17 15
                             {"resizefs.sh": "/usr/local/bin/resizefs.sh"},
18 16
                             {"resizefs.service": "/lib/systemd/system/resizefs.service"}
... ...
@@ -1,47 +1,47 @@
1
+import os.path
1 2
 from Logger import Logger
2 3
 from CommandUtils import CommandUtils
3 4
 from constants import constants
4
-import os.path
5 5
 
6 6
 class ChrootUtils(object):
7
-    
8
-    def __init__(self,logName=None,logPath=None):
7
+
8
+    def __init__(self, logName=None, logPath=None):
9 9
         if logName is None:
10 10
             logName = "ChrootUtils"
11 11
         if logPath is None:
12 12
             logPath = constants.logPath
13
-        self.logName=logName
14
-        self.logPath=logPath
15
-        self.logger=Logger.getLogger(logName,logPath)
16
-        
17
-    def createChroot(self,chrootName):
18
-        chrootID=constants.buildRootPath+"/"+chrootName
13
+        self.logName = logName
14
+        self.logPath = logPath
15
+        self.logger = Logger.getLogger(logName, logPath)
16
+
17
+    def createChroot(self, chrootName):
18
+        chrootID = constants.buildRootPath + "/" + chrootName
19 19
         if os.path.isdir(chrootID):
20 20
             if not self.destroyChroot(chrootID):
21
-                self.logger.error("Given chroot "+chrootID+" is already exists. unable to destroy it ")
22
-                return False,None
21
+                self.logger.error("Given chroot " + chrootID +
22
+                                  " is already exists. unable to destroy it ")
23
+                return False, None
23 24
         # need to add timeout for this step
24 25
         # http://stackoverflow.com/questions/1191374/subprocess-with-timeout
25
-        cmdUtils=CommandUtils()
26
-        returnVal=cmdUtils.runCommandInShell("mkdir -p "+chrootID)
26
+        cmdUtils = CommandUtils()
27
+        returnVal = cmdUtils.runCommandInShell("mkdir -p " + chrootID)
27 28
         if not returnVal:
28
-            self.logger.error("Unable to create chroot:"+ chrootID +".Unknown error.")
29
-            return False,None
30
-        return True,chrootID
31
-    
32
-    def destroyChroot(self,chrootID):
29
+            self.logger.error("Unable to create chroot:" + chrootID + ".Unknown error.")
30
+            return False, None
31
+        return True, chrootID
32
+
33
+    def destroyChroot(self, chrootID):
33 34
         # need to add timeout for this step
34 35
         # http://stackoverflow.com/questions/1191374/subprocess-with-timeout
35
-        cmdUtils=CommandUtils()
36
-        returnVal=cmdUtils.runCommandInShell("./clean-up-chroot.py "+chrootID)
36
+        cmdUtils = CommandUtils()
37
+        returnVal = cmdUtils.runCommandInShell("./clean-up-chroot.py " + chrootID)
37 38
         if not returnVal:
38
-            self.logger.error("Unable to destroy chroot:"+ chrootID +".Unknown error.")
39
+            self.logger.error("Unable to destroy chroot:" + chrootID + ".Unknown error.")
39 40
             return False
40
-        
41
-        returnVal=cmdUtils.runCommandInShell("rm -rf "+chrootID)
41
+
42
+        returnVal = cmdUtils.runCommandInShell("rm -rf " + chrootID)
42 43
         if not returnVal:
43
-            self.logger.error("Unable to destroy chroot:"+ chrootID +".Unknown error.")
44
+            self.logger.error("Unable to destroy chroot:" + chrootID + ".Unknown error.")
44 45
             return False
45
-        self.logger.info("Successfully destroyed chroot:"+chrootID)
46
+        self.logger.info("Successfully destroyed chroot:" + chrootID)
46 47
         return True
47
-    
... ...
@@ -5,9 +5,11 @@ class CommandUtils(object):
5 5
     def __init__(self):
6 6
         self.findBinary = "find"
7 7
 
8
-    def findFile (self, filename, sourcePath):
9
-        process = subprocess.Popen([self.findBinary, "-L", sourcePath, "-name", filename, "-not", "-type", "d"],  stdout=subprocess.PIPE)
10
-        # We don't check the return val here because find could return 1 but still be able to find
8
+    def findFile(self, filename, sourcePath):
9
+        process = subprocess.Popen([self.findBinary, "-L", sourcePath, "-name", filename,
10
+                                    "-not", "-type", "d"], stdout=subprocess.PIPE)
11
+        # We don't check the return val here because find could return 1 but still be
12
+        # able to find
11 13
         # the result. We shouldn't blindly return None without even checking the result.
12 14
         # The reason we want to suppress this is because for built RPMs, we first copy it to
13 15
         # the location with a random name and move it to the real name. find will complain our
... ...
@@ -17,30 +19,30 @@ class CommandUtils(object):
17 17
 
18 18
         #if returnVal != 0:
19 19
         #    return None
20
-        result=process.communicate()[0]
20
+        result = process.communicate()[0]
21 21
         if result is None:
22 22
             return None
23
-        return result.split()
23
+        return result.decode().split()
24 24
 
25
-    def runCommandInShell(self,cmd,logfilePath=None,chrootCmd=None):
25
+    @staticmethod
26
+    def runCommandInShell(cmd, logfilePath=None, chrootCmd=None):
26 27
         if chrootCmd is not None:
27
-            cmd = chrootCmd+" "+cmd
28
+            cmd = chrootCmd + " " + cmd
28 29
         if logfilePath is None:
29
-            logfilePath=os.devnull
30
-        logfile=open(logfilePath,"w")
31
-        process = subprocess.Popen("%s" %cmd,shell=True,stdout=logfile,stderr=logfile)
30
+            logfilePath = os.devnull
31
+        logfile = open(logfilePath, "w")
32
+        process = subprocess.Popen("%s" %cmd, shell=True, stdout=logfile, stderr=logfile)
32 33
         retval = process.wait()
33 34
         logfile.close()
34
-        if retval==0:
35
+        if retval == 0:
35 36
             return True
36 37
         return False
37
-
38
-    def runCommandInShell2(self,cmd,chrootCmd=None):
38
+    @staticmethod
39
+    def runCommandInShell2(cmd, chrootCmd=None):
39 40
         if chrootCmd is not None:
40
-            cmd = chrootCmd+" "+cmd
41
-        process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE)
41
+            cmd = chrootCmd + " " + cmd
42
+        process = subprocess.Popen("%s" %cmd, shell=True, stdout=subprocess.PIPE)
42 43
         retval = process.wait()
43 44
         if retval != 0:
44 45
             return None
45 46
         return process.communicate()[0]
46
-
... ...
@@ -1,22 +1,22 @@
1
-import logging
2 1
 import os
2
+import logging
3 3
 
4 4
 class Logger(object):
5 5
     @staticmethod
6
-    def getLogger (mymodule, logpath=None, resetFile=False):
7
-        logfile=mymodule+".log"
6
+    def getLogger(mymodule, logpath=None, resetFile=False):
7
+        logfile = mymodule + ".log"
8 8
         if logpath is not None:
9 9
             if not os.path.isdir(logpath):
10 10
                 os.makedirs(logpath)
11
-            logfile=logpath+"/"+logfile
11
+            logfile = logpath + "/" + logfile
12 12
         if resetFile:
13 13
             open(logfile, 'w').close()
14
-        logger=logging.getLogger(mymodule)
14
+        logger = logging.getLogger(mymodule)
15 15
         if len(logger.handlers) == 0:
16 16
             #creating file handler
17
-            fhandler=logging.FileHandler(logfile)
17
+            fhandler = logging.FileHandler(logfile)
18 18
             # create console handler
19
-            ch=logging.StreamHandler()
19
+            ch = logging.StreamHandler()
20 20
             formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
21 21
             # add formatter to handler
22 22
             fhandler.setFormatter(formatter)
... ...
@@ -25,15 +25,15 @@ class Logger(object):
25 25
             logger.addHandler(ch)
26 26
             logger.addHandler(fhandler)
27 27
             logger.setLevel(logging.DEBUG)
28
-            logger.info("--------------------------------------------------------------------------")
28
+            logger.info("-" * 75)
29 29
             logger.info("Starting Log")
30
-            logger.info("--------------------------------------------------------------------------")
30
+            logger.info("-" * 75)
31 31
         return logger
32 32
 
33 33
 if __name__ == "__main__":
34 34
     #Logger.getLogger("my module")
35
-    t1 =  Logger.getLogger("my module")
35
+    t1 = Logger.getLogger("my module")
36 36
     t1.info("test1")
37
-    t2  = Logger.getLogger("my module")
37
+    t2 = Logger.getLogger("my module")
38 38
     t2.info("test2")
39 39
     t1.info("test3")
... ...
@@ -1,36 +1,36 @@
1 1
 import os.path
2 2
 
3 3
 class MiscUtils(object):
4
-    
4
+
5 5
     @staticmethod
6
-    def isOutdated(listInputFiles,listOutputFiles):
7
-        thresholdTimeStamp=None
6
+    def isOutdated(listInputFiles, listOutputFiles):
7
+        thresholdTimeStamp = None
8 8
         if len(listInputFiles) == 0:
9 9
             return False
10 10
         if len(listOutputFiles) == 0:
11 11
             return True
12 12
         for f in listOutputFiles:
13
-            t=os.path.getmtime(f)
13
+            t = os.path.getmtime(f)
14 14
             if thresholdTimeStamp is None:
15 15
                 thresholdTimeStamp = t
16 16
             if t < thresholdTimeStamp:
17
-                thresholdTimeStamp = t 
17
+                thresholdTimeStamp = t
18 18
         for f in listInputFiles:
19
-            t=os.path.getmtime(f)
19
+            t = os.path.getmtime(f)
20 20
             if t > thresholdTimeStamp:
21 21
                 return True
22 22
         return False
23
-    
23
+
24 24
     @staticmethod
25
-    def getListSpecFiles(listSpecFiles,path):
25
+    def getListSpecFiles(listSpecFiles, path):
26 26
         for dirEntry in os.listdir(path):
27 27
             dirEntryPath = os.path.join(path, dirEntry)
28 28
             if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".spec"):
29 29
                 listSpecFiles.append(dirEntryPath)
30 30
             elif os.path.isdir(dirEntryPath):
31
-                MiscUtils.getListSpecFiles(listSpecFiles,dirEntryPath)
32
-    
33
-if __name__=="__main__":
34
-    listInputFiles=["SpecParser.py","Logger.py"]
35
-    listOutputFiles=["builder.py"]
36
-    print MiscUtils.isOutdated(listInputFiles, listOutputFiles)
37 31
\ No newline at end of file
32
+                MiscUtils.getListSpecFiles(listSpecFiles, dirEntryPath)
33
+
34
+if __name__ == "__main__":
35
+    listInputFiles = ["SpecParser.py", "Logger.py"]
36
+    listOutputFiles = ["builder.py"]
37
+    print(MiscUtils.isOutdated(listInputFiles, listOutputFiles))
... ...
@@ -1,204 +1,205 @@
1
+import copy
1 2
 from Logger import Logger
2 3
 from constants import constants
3
-from sets import Set
4
-import copy
5 4
 from SpecData import SPECS
6 5
 
7
-
8
-
9 6
 def removeDuplicateEntriesInList(myList):
10
-    myListCopy=[]
7
+    myListCopy = []
11 8
     for p in myList:
12 9
         if p not in myListCopy:
13 10
             myListCopy.append(p)
14 11
     return myListCopy
15
-      
12
+
16 13
 class PackageBuildDataGenerator(object):
17
-    
18
-    cycleCount=0
19
-    
20
-    def __init__(self,logName=None,logPath=None):
14
+
15
+    cycleCount = 0
16
+
17
+    def __init__(self, logName=None, logPath=None):
21 18
         if logName is None:
22 19
             logName = "PackageBuildDataGenerator"
23 20
         if logPath is None:
24 21
             logPath = constants.logPath
25
-        self.logName=logName
26
-        self.logPath=logPath
27
-        self.logger=Logger.getLogger(logName,logPath)
28
-        self.__mapCyclesToPackageList={}
29
-        self.__mapPackageToCycle={}
30
-        self.__buildDependencyGraph={}
31
-        self.__runTimeDependencyGraph={}
32
-        self.__sortedPackageList=[]
33
-        self.__sortedBuildDependencyGraph={}
34
-    
35
-    def getPackageBuildData(self,listPackages):
22
+        self.logName = logName
23
+        self.logPath = logPath
24
+        self.logger = Logger.getLogger(logName, logPath)
25
+        self.__mapCyclesToPackageList = {}
26
+        self.__mapPackageToCycle = {}
27
+        self.__buildDependencyGraph = {}
28
+        self.__runTimeDependencyGraph = {}
29
+        self.__sortedPackageList = []
30
+        self.__sortedBuildDependencyGraph = {}
31
+
32
+    def getPackageBuildData(self, listPackages):
36 33
         self.__readDependencyGraphAndCyclesForGivenPackages(listPackages)
37 34
         self.__getSortedBuildOrderListForGivenPackages(listPackages)
38 35
         return self.__mapCyclesToPackageList, self.__mapPackageToCycle, self.__sortedPackageList
39 36
 
40
-    #todo    
41
-    def findCompleteListOfPackagesRequiredToBuildGivenPackages(self,listPackages):
42
-        return self.__buildDependencyGraph.keys()    
43
- 
44
-    def createSortListForPkg(self,pkg):
45
-        runTimeDepPkgList=self.__runTimeDependencyGraph[pkg]
37
+    #todo
38
+    def findCompleteListOfPackagesRequiredToBuildGivenPackages(self, listPackages):
39
+        return list(self.__buildDependencyGraph.keys())
40
+
41
+    def createSortListForPkg(self, pkg):
42
+        runTimeDepPkgList = self.__runTimeDependencyGraph[pkg]
46 43
         runTimeDepPkgList.append(pkg)
47
-        sortListForPkg=[]
48
-        
44
+        sortListForPkg = []
45
+
49 46
         for p in runTimeDepPkgList:
50
-            basePkg=SPECS.getData().getSpecName(p)
47
+            basePkg = SPECS.getData().getSpecName(p)
51 48
             for bPkg in self.__sortedBuildDependencyGraph[basePkg]:
52 49
                 if bPkg not in sortListForPkg:
53 50
                     sortListForPkg.append(bPkg)
54
-        
51
+
55 52
         return sortListForPkg
56
-    
57
-    def getCircularDependentPackages(self,pkg):
58
-        circularDependentPackages=[]
59
-        if self.__mapPackageToCycle.has_key(pkg):
60
-            circularDependentPackages.extend(self.__mapCyclesToPackageList[self.__mapPackageToCycle[pkg]])
53
+
54
+    def getCircularDependentPackages(self, pkg):
55
+        circularDependentPackages = []
56
+        if pkg in self.__mapPackageToCycle:
57
+            circularDependentPackages.extend(
58
+                self.__mapCyclesToPackageList[self.__mapPackageToCycle[pkg]])
61 59
             circularDependentPackages.remove(pkg)
62 60
         return circularDependentPackages
63
-    
64
-    def __getSortedBuildOrderListForGivenPackages(self,listPackages):
65
-        
66
-        alreadyProcessedPackages=[]
67
-        sortedList=[]
68
-        completeListPackagesToBuild=self.findCompleteListOfPackagesRequiredToBuildGivenPackages(listPackages)
61
+
62
+    def __getSortedBuildOrderListForGivenPackages(self, listPackages):
63
+
64
+        alreadyProcessedPackages = []
65
+        sortedList = []
66
+        completeListPackagesToBuild = self.findCompleteListOfPackagesRequiredToBuildGivenPackages(
67
+            listPackages)
69 68
         packageIndexInSortedList = 0
70
-        prevSortListLen=0
71
-        
69
+        prevSortListLen = 0
70
+
72 71
         while completeListPackagesToBuild:
73
-            
72
+
74 73
             # find next package to process
75
-            pkg=None
76
-            index=-1
77
-            lenList=len(sortedList)
74
+            pkg = None
75
+            index = -1
76
+            lenList = len(sortedList)
78 77
             for  i in range(lenList):
79 78
                 if sortedList[i] in alreadyProcessedPackages:
80 79
                     continue
81 80
                 pkg = sortedList[i]
82 81
                 packageIndexInSortedList = i
83 82
                 break
84
-                
83
+
85 84
             if pkg is None:
86 85
                 pkg = completeListPackagesToBuild.pop()
87 86
                 packageIndexInSortedList = len(sortedList)
88 87
 
89 88
             #creating sort list for package
90
-            sortListForPkg=self.createSortListForPkg(pkg)
91
-            
89
+            sortListForPkg = self.createSortListForPkg(pkg)
90
+
92 91
             #remove any cyclic packages in sortListForPkg if they already exists in sortedList
93
-            circularDependentPackages=self.getCircularDependentPackages(pkg)
92
+            circularDependentPackages = self.getCircularDependentPackages(pkg)
94 93
             for p in circularDependentPackages:
95 94
                 if p in sortedList and p in sortListForPkg:
96 95
                     sortListForPkg.remove(p)
97
-            
96
+
98 97
             # insert sort list of package in global sorted list
99
-            index=packageIndexInSortedList
100
-            subList=[]
98
+            index = packageIndexInSortedList
99
+            subList = []
101 100
             if packageIndexInSortedList > 0:
102
-                subList=sortedList[:packageIndexInSortedList]
101
+                subList = sortedList[:packageIndexInSortedList]
103 102
             for p in sortListForPkg:
104 103
                 if  p not in subList:
105 104
                     sortedList.insert(index, p)
106 105
                     index = index + 1
107
-            
106
+
108 107
             alreadyProcessedPackages.append(p)
109
-        
108
+
110 109
             # Remove duplicate entries in sorted list in intervals
111
-            if (len(sortedList)-prevSortListLen) > 100 :
110
+            if (len(sortedList) - prevSortListLen) > 100:
112 111
                 self.logger.info("Removing duplicates in sortedList")
113 112
                 sortedList = removeDuplicateEntriesInList(sortedList)
114 113
             else:
115
-                prevSortListLen=len(sortedList)
116
-                
114
+                prevSortListLen = len(sortedList)
115
+
117 116
         self.logger.info("Removing duplicates in sorted list")
118 117
         sortedList = removeDuplicateEntriesInList(sortedList)
119
-        
118
+
120 119
         self.logger.info("Sorted list:")
121 120
         self.logger.info(sortedList)
122
-        self.__sortedPackageList=sortedList
123
-    
124
-    def __constructBuildAndRunTimeDependencyGraph(self,package):
125
-        basePackage=SPECS.getData().getSpecName(package)
126
-
127
-        addBuildTimeGraph=True
128
-        addRunTimeGraph=True
129
-        if self.__buildDependencyGraph.has_key(basePackage):
121
+        self.__sortedPackageList = sortedList
122
+
123
+    def __constructBuildAndRunTimeDependencyGraph(self, package):
124
+        basePackage = SPECS.getData().getSpecName(package)
125
+
126
+        addBuildTimeGraph = True
127
+        addRunTimeGraph = True
128
+        if basePackage in self.__buildDependencyGraph:
130 129
             addBuildTimeGraph = False
131
-        if self.__runTimeDependencyGraph.has_key(basePackage):
132
-            addRunTimeGraph=False
133
-        
134
-        nextPackagesToConstructGraph=[]
130
+        if basePackage in self.__runTimeDependencyGraph:
131
+            addRunTimeGraph = False
132
+
133
+        nextPackagesToConstructGraph = []
135 134
         if addBuildTimeGraph:
136
-            listDependentRpmPackages=SPECS.getData().getBuildRequiresForPackage(basePackage)
137
-            listDependentPackages=[]
135
+            listDependentRpmPackages = SPECS.getData().getBuildRequiresForPackage(basePackage)
136
+            listDependentPackages = []
138 137
             for rpmPkg in listDependentRpmPackages:
139
-                basePkg=SPECS.getData().getSpecName(rpmPkg)
138
+                basePkg = SPECS.getData().getSpecName(rpmPkg)
140 139
                 if basePkg not in listDependentPackages:
141 140
                     listDependentPackages.append(basePkg)
142
-            self.__buildDependencyGraph[basePackage]=listDependentPackages
141
+            self.__buildDependencyGraph[basePackage] = listDependentPackages
143 142
             nextPackagesToConstructGraph.extend(listDependentPackages)
144
-        
143
+
145 144
         if addRunTimeGraph:
146
-            listRpmPackages=SPECS.getData().getPackages(basePackage)
145
+            listRpmPackages = SPECS.getData().getPackages(basePackage)
147 146
             for rpmPkg in listRpmPackages:
148
-                listDependentRpmPackages=SPECS.getData().getRequiresAllForPackage(rpmPkg)
149
-                self.__runTimeDependencyGraph[rpmPkg]=listDependentRpmPackages[:]
147
+                listDependentRpmPackages = SPECS.getData().getRequiresAllForPackage(rpmPkg)
148
+                self.__runTimeDependencyGraph[rpmPkg] = listDependentRpmPackages[:]
150 149
                 nextPackagesToConstructGraph.extend(listDependentRpmPackages)
151 150
 
152 151
         for pkg in nextPackagesToConstructGraph:
153 152
             self.__constructBuildAndRunTimeDependencyGraph(pkg)
154
-    
155
-    def __readDependencyGraphAndCyclesForGivenPackages(self,listPackages):
153
+
154
+    def __readDependencyGraphAndCyclesForGivenPackages(self, listPackages):
156 155
         self.logger.info("Reading dependency graph to check for cycles")
157 156
         for pkg in listPackages:
158 157
             self.__constructBuildAndRunTimeDependencyGraph(pkg)
159
-        packagesToBUild=self.__buildDependencyGraph.keys()
160
-        for pkg in packagesToBUild:
161
-            sortedPackageList,circularDependentPackages = self.topologicalSortPackages(self.__buildDependencyGraph,pkg)
162
-            if len(circularDependentPackages) > 0 :
158
+
159
+        for pkg in self.__buildDependencyGraph.keys():
160
+            sortedPackageList, circularDependentPackages = self.topologicalSortPackages(
161
+                self.__buildDependencyGraph, pkg)
162
+            if len(circularDependentPackages) > 0:
163 163
                 self.logger.error("Found circular dependency")
164 164
                 self.logger.error(circularDependentPackages)
165 165
                 raise Exception("Build Time Circular Dependency")
166
-            self.__sortedBuildDependencyGraph[pkg]=sortedPackageList
167
-        sortedPackageList,circularDependentPackages = self.topologicalSortPackages(self.__runTimeDependencyGraph)
168
-        if len(circularDependentPackages) > 0 :
166
+            self.__sortedBuildDependencyGraph[pkg] = sortedPackageList
167
+        sortedPackageList, circularDependentPackages = self.topologicalSortPackages(
168
+            self.__runTimeDependencyGraph)
169
+        if len(circularDependentPackages) > 0:
169 170
             self.__findCircularDependencies(circularDependentPackages)
170
-    
171
+
171 172
     def topologicalSortPackages(self, dependencyGraph, package=None):
172
-        noDepPackages = Set()
173
+        noDepPackages = set()
173 174
         sortedPackageList = []
174 175
         dependentOfPackage = dict()
175
-        
176
-        dependentPackages={}
176
+
177
+        dependentPackages = {}
177 178
         if package is None:
178
-            dependentPackages=copy.deepcopy(dependencyGraph)
179
+            dependentPackages = copy.deepcopy(dependencyGraph)
179 180
         else:
180
-            listDepPkgs= Set()
181
+            listDepPkgs = set()
181 182
             listDepPkgs.add(package)
182 183
             while listDepPkgs:
183 184
                 pkg = listDepPkgs.pop()
184
-                if dependentPackages.has_key(pkg):
185
+                if pkg in dependentPackages:
185 186
                     continue
186
-                dependentPackages[pkg]=dependencyGraph[pkg][:]
187
+                dependentPackages[pkg] = dependencyGraph[pkg][:]
187 188
                 for depPkg in dependencyGraph[pkg]:
188 189
                     listDepPkgs.add(depPkg)
189
-                    
190
+
190 191
         #Find packages with no dependencies and generate dependentof_package edge list
191 192
         for pkg in dependentPackages:
192 193
             if len(dependentPackages[pkg]) == 0:
193 194
                 noDepPackages.add(pkg)
194 195
             else:
195 196
                 for depPkg in dependentPackages[pkg]:
196
-                    if not dependentOfPackage.has_key(depPkg):
197
-                        dependentOfPackage[depPkg]=[pkg]
197
+                    if depPkg not in dependentOfPackage:
198
+                        dependentOfPackage[depPkg] = [pkg]
198 199
                     else:
199 200
                         if pkg not in dependentOfPackage[depPkg]:
200 201
                             dependentOfPackage[depPkg].append(pkg)
201
-        
202
+
202 203
         while noDepPackages:
203 204
             pkg = noDepPackages.pop()
204 205
             sortedPackageList.append(pkg)
... ...
@@ -206,29 +207,27 @@ class PackageBuildDataGenerator(object):
206 206
                 for childPkg in list(dependentOfPackage.get(pkg)):
207 207
                     dependentOfPackage.get(pkg).remove(childPkg)
208 208
                     dependentPackages[childPkg].remove(pkg)
209
-                    if len(dependentPackages[childPkg])==0:
209
+                    if len(dependentPackages[childPkg]) == 0:
210 210
                         noDepPackages.add(childPkg)
211
-        
211
+
212 212
         # creating circular dependency graph for given dependency graph
213
-        circularDependencyGraph={}
214
-        listCircularPkg = dependentPackages.keys()
215
-        for pkg in listCircularPkg:
213
+        circularDependencyGraph = {}
214
+        for pkg in dependentPackages.keys():
216 215
             if len(dependentPackages[pkg]) != 0:
217
-                circularDependencyGraph[pkg]=dependentPackages[pkg]
218
-            
219
-        #return (non-circular dependent package in sorted order and circular dependent package list in a dependencyGraph)
220
-        return sortedPackageList,circularDependencyGraph
221
-    
222
-    
223
-    def __constructDependencyMap(self,cyclicDependencyGraph):
216
+                circularDependencyGraph[pkg] = dependentPackages[pkg]
217
+
218
+        #return (non-circular dependent package in sorted order and circular dependent
219
+        #package list in a dependencyGraph)
220
+        return sortedPackageList, circularDependencyGraph
221
+
222
+    def __constructDependencyMap(self, yclicDependencyGraph):
224 223
         self.logger.info("Constructing dependency map from circular dependency graph.....")
225
-        constructDependencyMap={}
226
-        listNodes=cyclicDependencyGraph.keys()
227
-        for node in listNodes:
228
-            tmpDepNodeList=[]
224
+        constructDependencyMap = {}
225
+        for node in cyclicDependencyGraph.keys():
226
+            tmpDepNodeList = []
229 227
             tmpDepNodeList.append(node)
230
-            depNodeList=[]
231
-            while len(tmpDepNodeList)!=0:
228
+            depNodeList = []
229
+            while len(tmpDepNodeList) != 0:
232 230
                 currentNode = tmpDepNodeList.pop()
233 231
                 addDepNodeList = cyclicDependencyGraph[currentNode]
234 232
                 depNodeList.append(currentNode)
... ...
@@ -239,50 +238,43 @@ class PackageBuildDataGenerator(object):
239 239
                         if depNode not in tmpDepNodeList:
240 240
                             tmpDepNodeList.append(depNode)
241 241
             depNodeList.remove(node)
242
-            constructDependencyMap[node]=depNodeList
242
+            constructDependencyMap[node] = depNodeList
243 243
         self.logger.info("Dependency Map:")
244 244
         self.logger.info(constructDependencyMap)
245 245
         return constructDependencyMap
246
-        
247
-        
248
-    def __findCircularDependencies(self,cyclicDependencyGraph):
246
+
247
+    def __findCircularDependencies(self, cyclicDependencyGraph):
249 248
         self.logger.info("Looking for circular dependencies")
250 249
         if len(cyclicDependencyGraph) == 0:
251 250
             return
252 251
         #step1: construct dependency map from dependency graph
253
-        constructDependencyMap=self.__constructDependencyMap(cyclicDependencyGraph)
254
-        
252
+        constructDependencyMap = self.__constructDependencyMap(cyclicDependencyGraph)
253
+
255 254
         #step2: find cycles in dependency map
256 255
         self.logger.info("Finding and adding cycles using constructed dependency map......")
257
-        cycleCount=0
258
-        listNodes=cyclicDependencyGraph.keys()
259
-        for node in listNodes:
260
-            listDepPkg=constructDependencyMap[node]
261
-            cycPkgs=[]
262
-            if not self.__mapPackageToCycle.has_key(node):
256
+        cycleCount = 0
257
+        for node in cyclicDependencyGraph.keys():
258
+            listDepPkg = constructDependencyMap[node]
259
+            cycPkgs = []
260
+            if node not in self.__mapPackageToCycle:
263 261
                 for depPkg in listDepPkg:
264 262
                     x = constructDependencyMap[depPkg]
265 263
                     if node in x:
266 264
                         cycPkgs.append(depPkg)
267
-                
265
+
268 266
                 if len(cycPkgs) != 0:
269 267
                     cycPkgs.append(node)
270
-                    cycleName="cycle"+str(PackageBuildDataGenerator.cycleCount)
271
-                    PackageBuildDataGenerator.cycleCount=PackageBuildDataGenerator.cycleCount+1
268
+                    cycleName = "cycle" + str(PackageBuildDataGenerator.cycleCount)
269
+                    PackageBuildDataGenerator.cycleCount += 1
272 270
                     for x in cycPkgs:
273
-                        self.__mapPackageToCycle[x]=cycleName
274
-                    self.__mapCyclesToPackageList[cycleName]=cycPkgs
271
+                        self.__mapPackageToCycle[x] = cycleName
272
+                    self.__mapCyclesToPackageList[cycleName] = cycPkgs
275 273
                     self.logger.info("New circular dependency found:")
276
-                    self.logger.info(cycleName+" "+ ",".join(cycPkgs))
277
-                    cycleCount = cycleCount + 1
278
-        
279
-        if cycleCount > 0 :
280
-            self.logger.info("Found "+str(cycleCount) + " cycles.")
274
+                    self.logger.info(cycleName + " " + ",".join(cycPkgs))
275
+                    cycleCount += 1
276
+
277
+        if cycleCount > 0:
278
+            self.logger.info("Found " + str(cycleCount) + " cycles.")
281 279
             self.logger.info("Successfully added all detected circular dependencies to list.")
282 280
         else:
283 281
             self.logger.info("No circular dependencies found.")
284
-        
285
-    
286
-
287
-    
288
-    
... ...
@@ -1,49 +1,51 @@
1
+import sys
2
+import os.path
1 3
 from PackageUtils import PackageUtils
2 4
 from Logger import Logger
3 5
 from ChrootUtils import ChrootUtils
4 6
 from ToolChainUtils import ToolChainUtils
5 7
 from CommandUtils import CommandUtils
6
-import os.path
7 8
 from constants import constants
8
-import shutil
9 9
 from SpecData import SPECS
10 10
 import docker
11
-import sys
12 11
 
13 12
 class PackageBuilderBase(object):
14
-    def __init__(self,mapPackageToCycles,listAvailableCyclicPackages,listBuildOptionPackages,pkgBuildOptionFile, pkgBuildType):
13
+    def __init__(self, mapPackageToCycles, listAvailableCyclicPackages,
14
+                 listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType):
15 15
         # will be initialized in buildPackageThreadAPI()
16
-        self.logName=None
17
-        self.logPath=None
18
-        self.logger=None
19
-        self.package=None
16
+        self.logName = None
17
+        self.logPath = None
18
+        self.logger = None
19
+        self.package = None
20 20
         self.mapPackageToCycles = mapPackageToCycles
21 21
         self.listAvailableCyclicPackages = listAvailableCyclicPackages
22
-        self.listNodepsPackages = ["glibc","gmp","zlib","file","binutils","mpfr","mpc","gcc","ncurses","util-linux","groff","perl","texinfo","rpm","openssl","go"]
23
-        self.listBuildOptionPackages=listBuildOptionPackages
24
-        self.pkgBuildOptionFile=pkgBuildOptionFile
22
+        self.listNodepsPackages = ["glibc", "gmp", "zlib", "file", "binutils", "mpfr",
23
+                                   "mpc", "gcc", "ncurses", "util-linux", "groff", "perl",
24
+                                   "texinfo", "rpm", "openssl", "go"]
25
+        self.listBuildOptionPackages = listBuildOptionPackages
26
+        self.pkgBuildOptionFile = pkgBuildOptionFile
25 27
         self.pkgBuildType = pkgBuildType
26 28
 
27
-    def buildPackageThreadAPIPrepare(self,package,outputMap, threadName):
28
-        self.package=package
29
-        self.logName="build-"+package
30
-        self.logPath=constants.logPath+"/build-"+package
29
+    def buildPackageThreadAPIPrepare(self, package, outputMap, threadName):
30
+        self.package = package
31
+        self.logName = "build-" + package
32
+        self.logPath = constants.logPath + "/build-" + package
31 33
         if not os.path.isdir(self.logPath):
32 34
             cmdUtils = CommandUtils()
33
-            cmdUtils.runCommandInShell("mkdir -p "+self.logPath)
34
-        self.logger=Logger.getLogger(self.logName,self.logPath)
35
+            cmdUtils.runCommandInShell("mkdir -p " + self.logPath)
36
+        self.logger = Logger.getLogger(self.logName, self.logPath)
35 37
 
36
-    def findPackageNameFromRPMFile(self,rpmfile):
37
-        rpmfile=os.path.basename(rpmfile)
38
-        releaseindex=rpmfile.rfind("-")
38
+    def findPackageNameFromRPMFile(self, rpmfile):
39
+        rpmfile = os.path.basename(rpmfile)
40
+        releaseindex = rpmfile.rfind("-")
39 41
         if releaseindex == -1:
40
-            self.logger.error("Invalid rpm file:"+rpmfile)
42
+            self.logger.error("Invalid rpm file:" + rpmfile)
41 43
             return None
42
-        versionindex=rpmfile[0:releaseindex].rfind("-")
44
+        versionindex = rpmfile[0:releaseindex].rfind("-")
43 45
         if versionindex == -1:
44
-            self.logger.error("Invalid rpm file:"+rpmfile)
46
+            self.logger.error("Invalid rpm file:" + rpmfile)
45 47
             return None
46
-        packageName=rpmfile[0:versionindex]
48
+        packageName = rpmfile[0:versionindex]
47 49
         return packageName
48 50
 
49 51
     def findInstalledPackages(self, instanceID):
... ...
@@ -52,69 +54,76 @@ class PackageBuilderBase(object):
52 52
             listInstalledRPMs = pkgUtils.findInstalledRPMPackages(instanceID)
53 53
         elif self.pkgBuildType == "container":
54 54
             listInstalledRPMs = pkgUtils.findInstalledRPMPackagesInContainer(instanceID)
55
-        listInstalledPackages=[]
55
+        listInstalledPackages = []
56 56
         for installedRPM in listInstalledRPMs:
57
-            packageName=self.findPackageNameFromRPMFile(installedRPM)
57
+            packageName = self.findPackageNameFromRPMFile(installedRPM)
58 58
             if packageName is not None:
59 59
                 listInstalledPackages.append(packageName)
60 60
         return listInstalledPackages, listInstalledRPMs
61 61
 
62 62
     def checkIfPackageIsAlreadyBuilt(self):
63
-        basePkg=SPECS.getData().getSpecName(self.package)
64
-        listRPMPackages=SPECS.getData().getRPMPackages(basePkg)
65
-        packageIsAlreadyBuilt=True
66
-        pkgUtils = PackageUtils(self.logName,self.logPath)
63
+        basePkg = SPECS.getData().getSpecName(self.package)
64
+        listRPMPackages = SPECS.getData().getRPMPackages(basePkg)
65
+        packageIsAlreadyBuilt = True
66
+        pkgUtils = PackageUtils(self.logName, self.logPath)
67 67
         for pkg in listRPMPackages:
68 68
             if pkgUtils.findRPMFileForGivenPackage(pkg) is None:
69
-                packageIsAlreadyBuilt=False
69
+                packageIsAlreadyBuilt = False
70 70
                 break
71 71
         return packageIsAlreadyBuilt
72 72
 
73
-    def findRunTimeRequiredRPMPackages(self,rpmPackage):
74
-        listRequiredPackages=SPECS.getData().getRequiresForPackage(rpmPackage)
73
+    def findRunTimeRequiredRPMPackages(self, rpmPackage):
74
+        listRequiredPackages = SPECS.getData().getRequiresForPackage(rpmPackage)
75 75
         return listRequiredPackages
76 76
 
77 77
     def findBuildTimeRequiredPackages(self):
78
-        listRequiredPackages=SPECS.getData().getBuildRequiresForPackage(self.package)
78
+        listRequiredPackages = SPECS.getData().getBuildRequiresForPackage(self.package)
79 79
         return listRequiredPackages
80 80
 
81 81
     def findBuildTimeCheckRequiredPackages(self):
82
-        listRequiredPackages=SPECS.getData().getCheckBuildRequiresForPackage(self.package)
82
+        listRequiredPackages = SPECS.getData().getCheckBuildRequiresForPackage(self.package)
83 83
         return listRequiredPackages
84 84
 
85
-    def installPackage(self, pkgUtils, package, instanceID, destLogPath, listInstalledPackages, listInstalledRPMs):
86
-        latestRPM = os.path.basename(pkgUtils.findRPMFileForGivenPackage(package)).replace(".rpm", "")
85
+    def installPackage(self, pkgUtils, package, instanceID, destLogPath,
86
+                       listInstalledPackages, listInstalledRPMs):
87
+        latestRPM = os.path.basename(
88
+            pkgUtils.findRPMFileForGivenPackage(package)).replace(".rpm", "")
87 89
         if package in listInstalledPackages and latestRPM in listInstalledRPMs:
88 90
             return
89 91
         # mark it as installed -  to avoid cyclic recursion
90 92
         listInstalledPackages.append(package)
91 93
         listInstalledRPMs.append(latestRPM)
92
-        self.installDependentRunTimePackages(pkgUtils,package,instanceID,destLogPath,listInstalledPackages, listInstalledRPMs)
93
-        noDeps=False
94
-        if self.mapPackageToCycles.has_key(package):
94
+        self.installDependentRunTimePackages(pkgUtils, package, instanceID, destLogPath,
95
+                                             listInstalledPackages, listInstalledRPMs)
96
+        noDeps = False
97
+        if package in self.mapPackageToCycles:
95 98
             noDeps = True
96 99
         if package in self.listNodepsPackages:
97
-            noDeps=True
100
+            noDeps = True
98 101
         if package in constants.noDepsPackageList:
99
-            noDeps=True
102
+            noDeps = True
100 103
         if self.pkgBuildType == "chroot":
101
-            pkgUtils.installRPM(package,instanceID,noDeps,destLogPath)
104
+            pkgUtils.installRPM(package, instanceID, noDeps, destLogPath)
102 105
         elif self.pkgBuildType == "container":
103 106
             pkgUtils.prepRPMforInstallInContainer(package, instanceID, noDeps, destLogPath)
104 107
 
105
-    def installDependentRunTimePackages(self,pkgUtils,package,instanceID,destLogPath,listInstalledPackages, listInstalledRPMs):
106
-        listRunTimeDependentPackages=self.findRunTimeRequiredRPMPackages(package)
108
+    def installDependentRunTimePackages(self, pkgUtils, package, instanceID, destLogPath,
109
+                                        listInstalledPackages, listInstalledRPMs):
110
+        listRunTimeDependentPackages = self.findRunTimeRequiredRPMPackages(package)
107 111
         if len(listRunTimeDependentPackages) != 0:
108 112
             for pkg in listRunTimeDependentPackages:
109
-                if self.mapPackageToCycles.has_key(pkg) and pkg not in self.listAvailableCyclicPackages:
113
+                if pkg in self.mapPackageToCycles and pkg not in self.listAvailableCyclicPackages:
110 114
                     continue
111
-                latestPkgRPM = os.path.basename(pkgUtils.findRPMFileForGivenPackage(pkg)).replace(".rpm", "") 
115
+                latestPkgRPM = os.path.basename(
116
+                    pkgUtils.findRPMFileForGivenPackage(pkg)).replace(".rpm", "")
112 117
                 if pkg in listInstalledPackages and latestPkgRPM in listInstalledRPMs:
113 118
                     continue
114
-                self.installPackage(pkgUtils, pkg, instanceID, destLogPath, listInstalledPackages, listInstalledRPMs)
119
+                self.installPackage(pkgUtils, pkg, instanceID, destLogPath,
120
+                                    listInstalledPackages, listInstalledRPMs)
115 121
 
116 122
 class PackageBuilderContainer(object):
117
-    def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType):
123
+    def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages,
124
+                 pkgBuildOptionFile, pkgBuildType):
118 125
         self.buildContainerImage = "photon_build_container:latest"
119 126
         self.dockerClient = docker.from_env(version="auto")
120 127
 
... ...
@@ -125,19 +134,20 @@ class PackageBuilderContainer(object):
125 125
         self.base.buildPackageThreadAPIPrepare(package, outputMap, threadName)
126 126
         try:
127 127
             self.buildPackage()
128
-            outputMap[threadName]=True
128
+            outputMap[threadName] = True
129 129
         except Exception as e:
130 130
             # TODO: self.logger might be None
131 131
             self.base.logger.exception(e)
132
-            outputMap[threadName]=False
132
+            outputMap[threadName] = False
133 133
             raise e
134 134
 
135
-    def prepareBuildContainer(self, containerTaskName, packageName, isToolChainPackage=False):
135
+    def prepareBuildContainer(self, containerTaskName, packageName,
136
+                              isToolChainPackage=False):
136 137
         # Prepare an empty chroot environment to let docker use the BUILD folder.
137 138
         # This avoids docker using overlayFS which will cause make check failure.
138
-        chrootName="build-"+packageName
139
+        chrootName = "build-" + packageName
139 140
         chrUtils = ChrootUtils(self.base.logName, self.base.logPath)
140
-        returnVal,chrootID = chrUtils.createChroot(chrootName)
141
+        returnVal, chrootID = chrUtils.createChroot(chrootName)
141 142
         if not returnVal:
142 143
             raise Exception("Unable to prepare build root")
143 144
         cmdUtils = CommandUtils()
... ...
@@ -146,15 +156,17 @@ class PackageBuilderContainer(object):
146 146
 
147 147
         containerID = None
148 148
         mountVols = {
149
-                        constants.prevPublishRPMRepo: {'bind': '/publishrpms', 'mode': 'ro'},
150
-                        constants.prevPublishXRPMRepo: {'bind': '/publishxrpms', 'mode': 'ro'},
151
-                        constants.tmpDirPath: {'bind': '/tmp', 'mode': 'rw'},
152
-                        constants.rpmPath: {'bind': constants.topDirPath + "/RPMS", 'mode': 'rw'},
153
-                        constants.sourceRpmPath: {'bind': constants.topDirPath + "/SRPMS", 'mode': 'rw'},
154
-                        constants.logPath + "/" + self.base.logName: {'bind': constants.topDirPath + "/LOGS", 'mode': 'rw'},
155
-                        chrootID + constants.topDirPath + "/BUILD": {'bind': constants.topDirPath + "/BUILD", 'mode': 'rw'},
156
-                        constants.dockerUnixSocket: {'bind': constants.dockerUnixSocket, 'mode': 'rw'}
157
-                    }
149
+            constants.prevPublishRPMRepo: {'bind': '/publishrpms', 'mode': 'ro'},
150
+            constants.prevPublishXRPMRepo: {'bind': '/publishxrpms', 'mode': 'ro'},
151
+            constants.tmpDirPath: {'bind': '/tmp', 'mode': 'rw'},
152
+            constants.rpmPath: {'bind': constants.topDirPath + "/RPMS", 'mode': 'rw'},
153
+            constants.sourceRpmPath: {'bind': constants.topDirPath + "/SRPMS", 'mode': 'rw'},
154
+            constants.logPath + "/" + self.base.logName: {'bind': constants.topDirPath + "/LOGS",
155
+                                                          'mode': 'rw'},
156
+            chrootID + constants.topDirPath + "/BUILD": {'bind': constants.topDirPath + "/BUILD",
157
+                                                         'mode': 'rw'},
158
+            constants.dockerUnixSocket: {'bind': constants.dockerUnixSocket, 'mode': 'rw'}
159
+            }
158 160
 
159 161
         containerName = containerTaskName
160 162
         containerName = containerName.replace("+", "p")
... ...
@@ -163,10 +175,14 @@ class PackageBuilderContainer(object):
163 163
             if oldContainerID is not None:
164 164
                 oldContainerID.remove(force=True)
165 165
         except docker.errors.NotFound:
166
-            sys.exc_clear()
166
+            try:
167
+                sys.exc_clear()
168
+            except:
169
+                pass
167 170
 
168 171
         try:
169
-            self.base.logger.info("BuildContainer-prepareBuildContainer: Starting build container: " + containerName)
172
+            self.base.logger.info("BuildContainer-prepareBuildContainer: " +
173
+                                  "Starting build container: " + containerName)
170 174
             #TODO: Is init=True equivalent of --sig-proxy?
171 175
             privilegedDocker = False
172 176
             cap_list = ['SYS_PTRACE']
... ...
@@ -174,20 +190,22 @@ class PackageBuilderContainer(object):
174 174
                 privilegedDocker = True
175 175
 
176 176
             containerID = self.dockerClient.containers.run(self.buildContainerImage,
177
-                                                               detach=True,
178
-                                                               cap_add=cap_list,
179
-                                                               privileged=privilegedDocker,
180
-                                                               name=containerName,
181
-                                                               network_mode="host",
182
-                                                               volumes=mountVols,
183
-                                                               command="/bin/bash -l -c /wait.sh")
184
-
185
-            self.base.logger.debug("Started Photon build container for task " + containerTaskName
186
-                               + " ID: " + containerID.short_id)
177
+                                                           detach=True,
178
+                                                           cap_add=cap_list,
179
+                                                           privileged=privilegedDocker,
180
+                                                           name=containerName,
181
+                                                           network_mode="host",
182
+                                                           volumes=mountVols,
183
+                                                           command="/bin/bash -l -c /wait.sh")
184
+
185
+            self.base.logger.debug("Started Photon build container for task " + containerTaskName +
186
+                                   " ID: " + containerID.short_id)
187 187
             if not containerID:
188
-                raise Exception("Unable to start Photon build container for task " + containerTaskName)
188
+                raise Exception("Unable to start Photon build container for task " +
189
+                                containerTaskName)
189 190
         except Exception as e:
190
-            self.base.logger.debug("Unable to start Photon build container for task " + containerTaskName)
191
+            self.base.logger.debug("Unable to start Photon build container for task " +
192
+                                   containerTaskName)
191 193
             raise e
192 194
         return containerID, chrootID
193 195
 
... ...
@@ -212,46 +230,55 @@ class PackageBuilderContainer(object):
212 212
             isToolChainPackage = True
213 213
         destLogPath = constants.logPath + "/build-" + self.base.package
214 214
         try:
215
-            containerID, chrootID = self.prepareBuildContainer(containerTaskName, self.base.package, isToolChainPackage)
215
+            containerID, chrootID = self.prepareBuildContainer(
216
+                containerTaskName, self.base.package, isToolChainPackage)
216 217
 
217 218
             tcUtils = ToolChainUtils(self.base.logName, self.base.logPath)
218 219
             if self.base.package in constants.perPackageToolChain:
219 220
                 self.base.logger.debug(constants.perPackageToolChain[self.base.package])
220
-                tcUtils.installCustomToolChainRPMSinContainer(containerID,
221
-                                                              constants.perPackageToolChain[self.base.package],
222
-                                                              self.base.package);
221
+                tcUtils.installCustomToolChainRPMSinContainer(
222
+                    containerID,
223
+                    constants.perPackageToolChain[self.base.package],
224
+                    self.base.package)
223 225
 
224 226
             listInstalledPackages, listInstalledRPMs = self.base.findInstalledPackages(containerID)
225 227
             self.base.logger.info(listInstalledPackages)
226 228
             listDependentPackages = self.base.findBuildTimeRequiredPackages()
227 229
             if constants.rpmCheck and self.base.package in constants.testForceRPMS:
228 230
                 listDependentPackages.extend(self.base.findBuildTimeCheckRequiredPackages())
229
-                testPackages=set(constants.listMakeCheckRPMPkgtoInstall)-set(listInstalledPackages)-set([self.base.package])
231
+                testPackages = (set(constants.listMakeCheckRPMPkgtoInstall) -
232
+                                set(listInstalledPackages) -
233
+                                set([self.base.package]))
230 234
                 listDependentPackages.extend(testPackages)
231
-                listDependentPackages=list(set(listDependentPackages))
235
+                listDependentPackages = list(set(listDependentPackages))
232 236
 
233 237
             pkgUtils = PackageUtils(self.base.logName, self.base.logPath)
234 238
             if len(listDependentPackages) != 0:
235
-                self.base.logger.info("BuildContainer-buildPackage: Installing dependent packages..")
239
+                self.base.logger.info("BuildContainer-buildPackage: " +
240
+                                      "Installing dependent packages..")
236 241
                 self.base.logger.info(listDependentPackages)
237 242
                 for pkg in listDependentPackages:
238
-                    self.base.installPackage(pkgUtils, pkg, containerID, destLogPath, listInstalledPackages, listInstalledRPMs)
243
+                    self.base.installPackage(pkgUtils, pkg, containerID, destLogPath,
244
+                                             listInstalledPackages, listInstalledRPMs)
239 245
                 pkgUtils.installRPMSInAOneShotInContainer(containerID, destLogPath)
240
-                self.base.logger.info("Finished installing the build time dependent packages......")
246
+                self.base.logger.info("Finished installing the build time dependent packages....")
241 247
 
242
-            self.base.logger.info("BuildContainer-buildPackage: Start building the package: " + self.base.package)
248
+            self.base.logger.info("BuildContainer-buildPackage: Start building the package: " +
249
+                                  self.base.package)
243 250
             pkgUtils.adjustGCCSpecsInContainer(self.base.package, containerID, destLogPath)
244 251
             pkgUtils.buildRPMSForGivenPackageInContainer(
245
-                                               self.base.package,
246
-                                               containerID,
247
-                                               self.base.listBuildOptionPackages,
248
-                                               self.base.pkgBuildOptionFile,
249
-                                               destLogPath)
250
-            self.base.logger.info("BuildContainer-buildPackage: Successfully built the package: " + self.base.package)
252
+                self.base.package,
253
+                containerID,
254
+                self.base.listBuildOptionPackages,
255
+                self.base.pkgBuildOptionFile,
256
+                destLogPath)
257
+            self.base.logger.info("BuildContainer-buildPackage: Successfully built the package: " +
258
+                                  self.base.package)
251 259
         except Exception as e:
252 260
             self.base.logger.error("Failed while building package:" + self.base.package)
253 261
             if containerID is not None:
254
-                self.base.logger.debug("Container " + containerID.short_id + " retained for debugging.")
262
+                self.base.logger.debug("Container " + containerID.short_id +
263
+                                       " retained for debugging.")
255 264
             logFileName = os.path.join(destLogPath, self.base.package + ".log")
256 265
             fileLog = os.popen('tail -n 20 ' + logFileName).read()
257 266
             self.base.logger.debug(fileLog)
... ...
@@ -266,31 +293,32 @@ class PackageBuilderContainer(object):
266 266
             chrUtils.destroyChroot(chrootID)
267 267
 
268 268
 class PackageBuilderChroot(object):
269
-    def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType):
269
+    def __init__(self, mapPackageToCycles, listAvailableCyclicPackages, listBuildOptionPackages,
270
+                 pkgBuildOptionFile, pkgBuildType):
270 271
         self.base = PackageBuilderBase(mapPackageToCycles, listAvailableCyclicPackages,
271 272
                                        listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType)
272 273
 
273 274
     def buildPackageThreadAPI(self, package, outputMap, threadName):
274
-        self.base.buildPackageThreadAPIPrepare(package,outputMap, threadName)
275
+        self.base.buildPackageThreadAPIPrepare(package, outputMap, threadName)
275 276
         try:
276 277
             self.buildPackage()
277
-            outputMap[threadName]=True
278
+            outputMap[threadName] = True
278 279
         except Exception as e:
279 280
             # TODO: self.logger might be None
280 281
             self.base.logger.exception(e)
281
-            outputMap[threadName]=False
282
+            outputMap[threadName] = False
282 283
             raise e
283 284
 
284 285
     def prepareBuildRoot(self):
285
-        chrootID=None
286
-        chrootName="build-"+self.base.package
286
+        chrootID = None
287
+        chrootName = "build-" + self.base.package
287 288
         try:
288
-            chrUtils = ChrootUtils(self.base.logName,self.base.logPath)
289
-            returnVal,chrootID = chrUtils.createChroot(chrootName)
289
+            chrUtils = ChrootUtils(self.base.logName, self.base.logPath)
290
+            returnVal, chrootID = chrUtils.createChroot(chrootName)
290 291
             self.base.logger.debug("Created new chroot: " + chrootID)
291 292
             if not returnVal:
292 293
                 raise Exception("Unable to prepare build root")
293
-            tUtils=ToolChainUtils(self.base.logName,self.base.logPath)
294
+            tUtils = ToolChainUtils(self.base.logName, self.base.logPath)
294 295
             tUtils.installToolChainRPMS(chrootID, self.base.package, self.base.logPath)
295 296
         except Exception as e:
296 297
             if chrootID is not None:
... ...
@@ -311,33 +339,39 @@ class PackageBuilderChroot(object):
311 311
                 self.base.logger.info("Skipping testing the package:" + self.base.package)
312 312
                 return
313 313
 
314
-        chrUtils = ChrootUtils(self.base.logName,self.base.logPath)
315
-        chrootID=None
314
+        chrUtils = ChrootUtils(self.base.logName, self.base.logPath)
315
+        chrootID = None
316 316
         try:
317 317
             chrootID = self.prepareBuildRoot()
318 318
             listInstalledPackages, listInstalledRPMs = self.base.findInstalledPackages(chrootID)
319
-            listDependentPackages=self.base.findBuildTimeRequiredPackages()
319
+            listDependentPackages = self.base.findBuildTimeRequiredPackages()
320 320
             if constants.rpmCheck and self.base.package in constants.testForceRPMS:
321 321
                 listDependentPackages.extend(self.base.findBuildTimeCheckRequiredPackages())
322
-                testPackages=set(constants.listMakeCheckRPMPkgtoInstall)-set(listInstalledPackages)-set([self.base.package])
322
+                testPackages = (set(constants.listMakeCheckRPMPkgtoInstall) -
323
+                                set(listInstalledPackages) -
324
+                                set([self.base.package]))
323 325
                 listDependentPackages.extend(testPackages)
324
-                listDependentPackages=list(set(listDependentPackages))
326
+                listDependentPackages = list(set(listDependentPackages))
325 327
 
326
-            pkgUtils = PackageUtils(self.base.logName,self.base.logPath)
328
+            pkgUtils = PackageUtils(self.base.logName, self.base.logPath)
327 329
             if len(listDependentPackages) != 0:
328 330
                 self.base.logger.info("Installing the build time dependent packages......")
329 331
                 for pkg in listDependentPackages:
330
-                    self.base.installPackage(pkgUtils, pkg, chrootID, self.base.logPath, listInstalledPackages, listInstalledRPMs)
332
+                    self.base.installPackage(pkgUtils, pkg, chrootID, self.base.logPath,
333
+                                             listInstalledPackages, listInstalledRPMs)
331 334
                 pkgUtils.installRPMSInAOneShot(chrootID, self.base.logPath)
332
-                self.base.logger.info("Finished installing the build time dependent packages......")
335
+                self.base.logger.info("Finished installing the build time dependent packages....")
333 336
 
334 337
             pkgUtils.adjustGCCSpecs(self.base.package, chrootID, self.base.logPath)
335
-            pkgUtils.buildRPMSForGivenPackage(self.base.package, chrootID,self.base.listBuildOptionPackages,
336
-                                              self.base.pkgBuildOptionFile, self.base.logPath)
338
+            pkgUtils.buildRPMSForGivenPackage(self.base.package, chrootID,
339
+                                              self.base.listBuildOptionPackages,
340
+                                              self.base.pkgBuildOptionFile,
341
+                                              self.base.logPath)
337 342
             self.base.logger.info("Successfully built the package:" + self.base.package)
338 343
         except Exception as e:
339 344
             self.base.logger.error("Failed while building package:" + self.base.package)
340
-            self.base.logger.debug("Chroot with ID: " + chrootID + " not deleted for debugging.")
345
+            self.base.logger.debug("Chroot with ID: " + chrootID +
346
+                                   " not deleted for debugging.")
341 347
             logFileName = os.path.join(self.base.logPath, self.base.package + ".log")
342 348
             fileLog = os.popen('tail -n 100 ' + logFileName).read()
343 349
             self.base.logger.debug(fileLog)
... ...
@@ -1,7 +1,7 @@
1 1
 import json
2
+import os.path
2 3
 from Logger import Logger
3 4
 from constants import constants
4
-import os.path
5 5
 from CommandUtils import CommandUtils
6 6
 from PackageUtils import PackageUtils
7 7
 from SpecData import SPECS
... ...
@@ -13,13 +13,13 @@ class PackageInfo(object):
13 13
             logName = "PackageInfo"
14 14
         if logPath is None:
15 15
             logPath = constants.logPath
16
-        self.logName=logName
17
-        self.logPath=logPath
18
-        self.logger=Logger.getLogger(logName,logPath)
16
+        self.logName = logName
17
+        self.logPath = logPath
18
+        self.logger = Logger.getLogger(logName, logPath)
19 19
         self.pkgList = {}
20 20
 
21 21
     def loadPackagesData(self):
22
-        listPackages =  SPECS.getData().getListPackages()
22
+        listPackages = SPECS.getData().getListPackages()
23 23
         listPackages.sort()
24 24
         listRPMFiles = []
25 25
         cmdUtils = CommandUtils()
... ...
@@ -27,33 +27,34 @@ class PackageInfo(object):
27 27
             release = SPECS.getData().getRelease(package)
28 28
             version = SPECS.getData().getVersion(package)
29 29
             listRPMPackages = SPECS.getData().getRPMPackages(package)
30
-            srpmFileName = package+"-"+version+"-"+release+".src.rpm"
30
+            srpmFileName = package + "-" + version + "-" + release + ".src.rpm"
31 31
             srpmFiles = cmdUtils.findFile(srpmFileName, constants.sourceRpmPath)
32 32
             srpmFile = None
33 33
             if len(srpmFiles) == 1:
34 34
                 srpmFile = srpmFiles[0]
35
-            debugrpmFileName = package+"-debuginfo-"+version+"-"+release+"*"
35
+            debugrpmFileName = package + "-debuginfo-" + version + "-" + release + "*"
36 36
             debugrpmFiles = cmdUtils.findFile(debugrpmFileName, constants.rpmPath)
37 37
             debugrpmFile = None
38 38
             if len(debugrpmFiles) == 1:
39 39
                 debugrpmFile = debugrpmFiles[0]
40
-            pkgUtils = PackageUtils(self.logName,self.logPath)
40
+            pkgUtils = PackageUtils(self.logName, self.logPath)
41 41
             for rpmPkg in listRPMPackages:
42 42
                 rpmFile = pkgUtils.findRPMFileForGivenPackage(rpmPkg)
43 43
                 if rpmFile is not None:
44 44
                     listRPMFiles.append(rpmFile)
45
-                    listPkgAttributes = {"sourcerpm":srpmFile, "rpm":rpmFile, "debugrpm":debugrpmFile}
45
+                    listPkgAttributes = {"sourcerpm":srpmFile, "rpm":rpmFile,
46
+                                         "debugrpm":debugrpmFile}
46 47
                     self.pkgList[rpmPkg] = listPkgAttributes
47
-                    self.logger.debug("Added "+rpmPkg +" rpm package to the list")
48
+                    self.logger.debug("Added " + rpmPkg + " rpm package to the list")
48 49
                 else:
49
-                    self.logger.error("Missing rpm file for package:"+rpmPkg)
50
+                    self.logger.error("Missing rpm file for package:" + rpmPkg)
50 51
 
51 52
     def writePkgListToFile(self, fileName):
52
-         self.logger.info("Writing package list to the json file")
53
-         cmdUtils=CommandUtils()
54
-         dirPath=os.path.basename(fileName)
55
-         if not os.path.isdir(dirPath):
56
-             cmdUtils.runCommandInShell("mkdir -p "+dirPath)
57
-         pkgInfoFile = open(fileName,'w+')
58
-         json.dump(self.pkgList, pkgInfoFile, indent=4)
59
-         pkgInfoFile.close()
53
+        self.logger.info("Writing package list to the json file")
54
+        cmdUtils = CommandUtils()
55
+        dirPath = os.path.basename(fileName)
56
+        if not os.path.isdir(dirPath):
57
+            cmdUtils.runCommandInShell("mkdir -p " + dirPath)
58
+        pkgInfoFile = open(fileName, 'w+')
59
+        json.dump(self.pkgList, pkgInfoFile, indent=4)
60
+        pkgInfoFile.close()
... ...
@@ -1,9 +1,9 @@
1
+import os
2
+import threading
1 3
 from PackageBuildDataGenerator import PackageBuildDataGenerator
2 4
 from Logger import Logger
3
-import threading
4 5
 from constants import constants
5 6
 import docker
6
-import os
7 7
 from ChrootUtils import ChrootUtils
8 8
 from CommandUtils import CommandUtils
9 9
 from PackageUtils import PackageUtils
... ...
@@ -14,67 +14,70 @@ from SpecData import SPECS
14 14
 
15 15
 class PackageManager(object):
16 16
 
17
-    def __init__(self,logName=None,logPath=None,pkgBuildType="chroot"):
17
+    def __init__(self, logName=None, logPath=None, pkgBuildType="chroot"):
18 18
         if logName is None:
19 19
             logName = "PackageManager"
20 20
         if logPath is None:
21 21
             logPath = constants.logPath
22
-        self.logName=logName
23
-        self.logPath=logPath
24
-        self.logger=Logger.getLogger(logName,logPath)
25
-        self.mapCyclesToPackageList={}
26
-        self.mapPackageToCycle={}
27
-        self.sortedPackageList=[]
22
+        self.logName = logName
23
+        self.logPath = logPath
24
+        self.logger = Logger.getLogger(logName, logPath)
25
+        self.mapCyclesToPackageList = {}
26
+        self.mapPackageToCycle = {}
27
+        self.sortedPackageList = []
28 28
         self.listOfPackagesAlreadyBuilt = []
29
-        self.listThreads={}
30
-        self.mapOutputThread={}
31
-        self.mapThreadsLaunchTime={}
32
-        self.listAvailableCyclicPackages=[]
33
-        self.listBuildOptionPackages=[]
34
-        self.pkgBuildOptionFile=""
35
-        self.pkgBuildType=pkgBuildType
29
+        self.listThreads = {}
30
+        self.mapOutputThread = {}
31
+        self.mapThreadsLaunchTime = {}
32
+        self.listAvailableCyclicPackages = []
33
+        self.listBuildOptionPackages = []
34
+        self.pkgBuildOptionFile = ""
35
+        self.pkgBuildType = pkgBuildType
36 36
         if self.pkgBuildType == "container":
37 37
             self.dockerClient = docker.from_env(version="auto")
38 38
 
39 39
     def readPackageBuildData(self, listPackages):
40 40
         try:
41
-            pkgBuildDataGen = PackageBuildDataGenerator(self.logName,self.logPath)
42
-            self.mapCyclesToPackageList,self.mapPackageToCycle,self.sortedPackageList = pkgBuildDataGen.getPackageBuildData(listPackages)
43
-        except:
41
+            pkgBuildDataGen = PackageBuildDataGenerator(self.logName, self.logPath)
42
+            self.mapCyclesToPackageList, self.mapPackageToCycle, self.sortedPackageList = (
43
+                pkgBuildDataGen.getPackageBuildData(listPackages))
44
+
45
+        except Exception as e:
46
+            self.logger.exception(e)
44 47
             self.logger.error("unable to get sorted list")
45 48
             return False
46 49
         return True
47 50
 
48 51
     def readAlreadyAvailablePackages(self):
49
-        listAvailablePackages=[]
50
-        listFoundRPMPackages=[]
51
-        listRPMFiles=[]
52
-        listDirectorys=[]
52
+        listAvailablePackages = []
53
+        listFoundRPMPackages = []
54
+        listRPMFiles = []
55
+        listDirectorys = []
53 56
         listDirectorys.append(constants.rpmPath)
54 57
         if constants.inputRPMSPath is not None:
55 58
             listDirectorys.append(constants.inputRPMSPath)
56 59
 
57 60
         while len(listDirectorys) > 0:
58
-            dirPath=listDirectorys.pop()
61
+            dirPath = listDirectorys.pop()
59 62
             for dirEntry in os.listdir(dirPath):
60 63
                 dirEntryPath = os.path.join(dirPath, dirEntry)
61 64
                 if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".rpm"):
62 65
                     listRPMFiles.append(dirEntryPath)
63 66
                 elif os.path.isdir(dirEntryPath):
64 67
                     listDirectorys.append(dirEntryPath)
65
-        pkgUtils = PackageUtils(self.logName,self.logPath)
68
+        pkgUtils = PackageUtils(self.logName, self.logPath)
66 69
         for rpmfile in listRPMFiles:
67
-            package,version,release = pkgUtils.findPackageInfoFromRPMFile(rpmfile)
70
+            package, version, release = pkgUtils.findPackageInfoFromRPMFile(rpmfile)
68 71
             if SPECS.getData().isRPMPackage(package):
69
-                specVersion=SPECS.getData().getVersion(package)
70
-                specRelease=SPECS.getData().getRelease(package)
72
+                specVersion = SPECS.getData().getVersion(package)
73
+                specRelease = SPECS.getData().getRelease(package)
71 74
                 if version == specVersion and release == specRelease:
72 75
                     listFoundRPMPackages.append(package)
73 76
         #Mark package available only if all sub packages are available
74 77
         for package in listFoundRPMPackages:
75 78
             basePkg = SPECS.getData().getSpecName(package)
76 79
             if basePkg in listAvailablePackages:
77
-                continue;
80
+                continue
78 81
             listRPMPackages = SPECS.getData().getRPMPackages(basePkg)
79 82
             packageIsAlreadyBuilt = True
80 83
             for rpmpkg in listRPMPackages:
... ...
@@ -86,14 +89,14 @@ class PackageManager(object):
86 86
         self.logger.info(listAvailablePackages)
87 87
         return listAvailablePackages
88 88
 
89
-    def calculateParams(self,listPackages):
89
+    def calculateParams(self, listPackages):
90 90
         self.listThreads.clear()
91 91
         self.mapOutputThread.clear()
92 92
         self.mapThreadsLaunchTime.clear()
93
-        self.listAvailableCyclicPackages=[]
93
+        self.listAvailableCyclicPackages = []
94 94
         self.mapCyclesToPackageList.clear()
95 95
         self.mapPackageToCycle.clear()
96
-        self.sortedPackageList=[]
96
+        self.sortedPackageList = []
97 97
 
98 98
         listOfPackagesAlreadyBuilt = []
99 99
         listOfPackagesAlreadyBuilt = self.readAlreadyAvailablePackages()
... ...
@@ -113,9 +116,10 @@ class PackageManager(object):
113 113
                 if needToRebuild:
114 114
                     self.listOfPackagesAlreadyBuilt.remove(pkg)
115 115
 
116
-        listPackagesToBuild=listPackages[:]
116
+        listPackagesToBuild = listPackages[:]
117 117
         for pkg in listPackages:
118
-            if pkg in self.listOfPackagesAlreadyBuilt and not constants.rpmCheck:
118
+            if (pkg in self.listOfPackagesAlreadyBuilt and
119
+                    not constants.rpmCheck):
119 120
                 listPackagesToBuild.remove(pkg)
120 121
 
121 122
         if not self.readPackageBuildData(listPackagesToBuild):
... ...
@@ -125,8 +129,9 @@ class PackageManager(object):
125 125
     def buildToolChain(self):
126 126
         pkgCount = 0
127 127
         try:
128
-            tUtils=ToolChainUtils()
129
-            pkgCount = tUtils.buildCoreToolChainPackages(self.listBuildOptionPackages, self.pkgBuildOptionFile)
128
+            tUtils = ToolChainUtils()
129
+            pkgCount = tUtils.buildCoreToolChainPackages(self.listBuildOptionPackages,
130
+                                                         self.pkgBuildOptionFile)
130 131
         except Exception as e:
131 132
             self.logger.error("Unable to build tool chain")
132 133
             self.logger.error(e)
... ...
@@ -150,71 +155,73 @@ class PackageManager(object):
150 150
         self.buildToolChain()
151 151
         self.buildGivenPackages(constants.listMakeCheckRPMPkgtoInstall, buildThreads)
152 152
 
153
-    def buildPackages(self,listPackages, listBuildOptionPackages, pkgBuildOptionFile, buildThreads, pkgBuildType):
153
+    def buildPackages(self, listPackages, listBuildOptionPackages, pkgBuildOptionFile,
154
+                      buildThreads, pkgBuildType):
154 155
         self.listBuildOptionPackages = listBuildOptionPackages
155 156
         self.pkgBuildOptionFile = pkgBuildOptionFile
156 157
         self.pkgBuildType = pkgBuildType
157 158
         if constants.rpmCheck:
158
-            constants.rpmCheck=False
159
+            constants.rpmCheck = False
159 160
             self.buildToolChainPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads)
160 161
             self.buildTestPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads)
161
-            constants.rpmCheck=True
162
+            constants.rpmCheck = True
162 163
             self.buildGivenPackages(listPackages, buildThreads)
163 164
         else:
164 165
             self.buildToolChainPackages(listBuildOptionPackages, pkgBuildOptionFile, buildThreads)
165 166
             self.buildGivenPackages(listPackages, buildThreads)
166 167
 
167
-    def initializeThreadPool(self,statusEvent):
168
+    def initializeThreadPool(self, statusEvent):
168 169
         ThreadPool.clear()
169
-        ThreadPool.mapPackageToCycle=self.mapPackageToCycle
170
-        ThreadPool.listAvailableCyclicPackages=self.listAvailableCyclicPackages
171
-        ThreadPool.listBuildOptionPackages=self.listBuildOptionPackages
172
-        ThreadPool.pkgBuildOptionFile=self.pkgBuildOptionFile
173
-        ThreadPool.logger=self.logger
174
-        ThreadPool.statusEvent=statusEvent
175
-        ThreadPool.pkgBuildType=self.pkgBuildType
170
+        ThreadPool.mapPackageToCycle = self.mapPackageToCycle
171
+        ThreadPool.listAvailableCyclicPackages = self.listAvailableCyclicPackages
172
+        ThreadPool.listBuildOptionPackages = self.listBuildOptionPackages
173
+        ThreadPool.pkgBuildOptionFile = self.pkgBuildOptionFile
174
+        ThreadPool.logger = self.logger
175
+        ThreadPool.statusEvent = statusEvent
176
+        ThreadPool.pkgBuildType = self.pkgBuildType
176 177
 
177
-    def initializeScheduler(self,statusEvent):
178
+    def initializeScheduler(self, statusEvent):
178 179
         Scheduler.setLog(self.logName, self.logPath)
179 180
         Scheduler.setParams(self.sortedPackageList, self.listOfPackagesAlreadyBuilt)
180 181
         Scheduler.setEvent(statusEvent)
181
-        Scheduler.stopScheduling=False
182
+        Scheduler.stopScheduling = False
182 183
 
183
-    def buildGivenPackages (self, listPackages, buildThreads):
184
+    def buildGivenPackages(self, listPackages, buildThreads):
184 185
         if constants.rpmCheck:
185
-            alreadyBuiltRPMS=self.readAlreadyAvailablePackages()
186
-            listPackages=list(set(listPackages)|(set(constants.listMakeCheckRPMPkgtoInstall)-set(alreadyBuiltRPMS)))
186
+            alreadyBuiltRPMS = self.readAlreadyAvailablePackages()
187
+            listPackages = (list(set(listPackages)|(set(constants.listMakeCheckRPMPkgtoInstall)-
188
+                                                    set(alreadyBuiltRPMS))))
187 189
 
188
-        returnVal=self.calculateParams(listPackages)
190
+        returnVal = self.calculateParams(listPackages)
189 191
         if not returnVal:
190 192
             self.logger.error("Unable to set paramaters. Terminating the package manager.")
191 193
             raise Exception("Unable to set paramaters")
192 194
 
193
-        statusEvent=threading.Event()
195
+        statusEvent = threading.Event()
194 196
         self.initializeScheduler(statusEvent)
195 197
         self.initializeThreadPool(statusEvent)
196 198
 
197
-        i=0
199
+        i = 0
198 200
         while i < buildThreads:
199
-            workerName="WorkerThread"+str(i)
201
+            workerName = "WorkerThread" + str(i)
200 202
             ThreadPool.addWorkerThread(workerName)
201 203
             ThreadPool.startWorkerThread(workerName)
202 204
             i = i + 1
203 205
 
204 206
         statusEvent.wait()
205
-        Scheduler.stopScheduling=True
207
+        Scheduler.stopScheduling = True
206 208
         self.logger.info("Waiting for all remaining worker threads")
207
-        listWorkerObjs=ThreadPool.getAllWorkerObjects()
209
+        listWorkerObjs = ThreadPool.getAllWorkerObjects()
208 210
         for w in listWorkerObjs:
209 211
             w.join()
210 212
 
211
-        setFailFlag=False
212
-        allPackagesBuilt=False
213
+        setFailFlag = False
214
+        allPackagesBuilt = False
213 215
         if Scheduler.isAnyPackagesFailedToBuild():
214
-            setFailFlag=True
216
+            setFailFlag = True
215 217
 
216 218
         if Scheduler.isAllPackagesBuilt():
217
-            allPackagesBuilt=True
219
+            allPackagesBuilt = True
218 220
 
219 221
         if setFailFlag:
220 222
             self.logger.error("Some of the packages failed:")
... ...
@@ -240,7 +247,7 @@ class PackageManager(object):
240 240
             self.logger.debug("Photon build container image not found.")
241 241
 
242 242
         # Create toolchain chroot and install toolchain RPMs
243
-        chrootID=None
243
+        chrootID = None
244 244
         try:
245 245
             #TODO: constants.tcrootname
246 246
             chrUtils = ChrootUtils("toolchain-chroot", self.logPath)
... ...
@@ -1,29 +1,29 @@
1
-from CommandUtils import CommandUtils
2
-from Logger import Logger
3 1
 import os
4 2
 import platform
5 3
 import shutil
6
-from constants import constants
7 4
 import re
8 5
 import random
9 6
 import string
10
-from time import sleep
11
-import PullSources
12
-import json
13 7
 import collections
8
+import json
9
+from CommandUtils import CommandUtils
10
+from Logger import Logger
11
+from constants import constants
12
+import PullSources
14 13
 from SpecData import SPECS
15 14
 
16 15
 class PackageUtils(object):
17 16
 
18
-    def __init__(self,logName=None,logPath=None):
17
+    def __init__(self, logName=None, logPath=None):
19 18
         if logName is None:
20 19
             self.logName = "PackageUtils"
21 20
         if logPath is None:
22 21
             logPath = constants.logPath
23
-        self.logName=logName
24
-        self.logPath=logPath
25
-        self.logger=Logger.getLogger(logName,logPath)
26
-        self.runInChrootCommand="./run-in-chroot.sh " + constants.sourcePath + " " + constants.rpmPath;
22
+        self.logName = logName
23
+        self.logPath = logPath
24
+        self.logger = Logger.getLogger(logName, logPath)
25
+        self.runInChrootCommand = ("./run-in-chroot.sh " + constants.sourcePath +
26
+                                   " " + constants.rpmPath)
27 27
         self.rpmBinary = "rpm"
28 28
         self.installRPMPackageOptions = "-Uvh"
29 29
         self.nodepsRPMPackageOptions = "--nodeps"
... ...
@@ -31,58 +31,60 @@ class PackageUtils(object):
31 31
         self.rpmbuildBinary = "rpmbuild"
32 32
         self.rpmbuildBuildallOption = "-ba --clean"
33 33
         self.rpmbuildNocheckOption = "--nocheck"
34
-        self.rpmbuildCheckOption ="-bi --clean"
34
+        self.rpmbuildCheckOption = "-bi --clean"
35 35
         self.queryRpmPackageOptions = "-qa"
36 36
         self.forceRpmPackageOptions = "--force"
37 37
         self.replaceRpmPackageOptions = "--replacepkgs"
38
-        self.adjustGCCSpecScript="adjust-gcc-specs.sh"
39
-        self.rpmFilesToInstallInAOneShot=""
40
-        self.packagesToInstallInAOneShot=""
41
-        self.noDepsRPMFilesToInstallInAOneShot=""
42
-        self.noDepsPackagesToInstallInAOneShot=""
43
-        self.rpmFilesToReInstallInAOneShot=""
44
-        self.noDepsRPMFilesToReInstallInAOneShot=""
45
-
46
-    def getRPMArch(self,rpmName):
47
-        arch=""
38
+        self.adjustGCCSpecScript = "adjust-gcc-specs.sh"
39
+        self.rpmFilesToInstallInAOneShot = ""
40
+        self.packagesToInstallInAOneShot = ""
41
+        self.noDepsRPMFilesToInstallInAOneShot = ""
42
+        self.noDepsPackagesToInstallInAOneShot = ""
43
+        self.rpmFilesToReInstallInAOneShot = ""
44
+        self.noDepsRPMFilesToReInstallInAOneShot = ""
45
+
46
+    def getRPMArch(self, rpmName):
47
+        arch = ""
48 48
         if rpmName.find("x86_64") != -1:
49
-            arch="x86_64"
49
+            arch = "x86_64"
50 50
         elif rpmName.find("aarch64") != -1:
51
-            arch="aarch64"
51
+            arch = "aarch64"
52 52
         elif rpmName.find("noarch") != -1:
53
-            arch="noarch"
53
+            arch = "noarch"
54 54
         return arch
55 55
 
56
-    def getRPMDestDir(self,rpmName,rpmDir):
56
+    def getRPMDestDir(self, rpmName, rpmDir):
57 57
         arch = self.getRPMArch(rpmName)
58
-        rpmDestDir=rpmDir+"/"+arch
58
+        rpmDestDir = rpmDir + "/" + arch
59 59
         return rpmDestDir
60 60
 
61
-    def copyRPM(self,rpmFile,destDir):
61
+    def copyRPM(self, rpmFile, destDir):
62 62
         cmdUtils = CommandUtils()
63
-        rpmName=os.path.basename(rpmFile)
64
-        rpmDestDir=self.getRPMDestDir(rpmName,destDir)
63
+        rpmName = os.path.basename(rpmFile)
64
+        rpmDestDir = self.getRPMDestDir(rpmName, destDir)
65 65
         # shutil is not atomic. copy & move to ensure atomicity.
66
-        rpmDestPath=rpmDestDir+"/"+rpmName
67
-        rpmDestPathTemp = rpmDestDir + "/." + ''.join([random.choice(string.ascii_letters + string.digits) for n in xrange(10)])
68
-        if os.geteuid()==0:
66
+        rpmDestPath = rpmDestDir + "/" + rpmName
67
+        rpmDestPathTemp = (rpmDestDir + "/." +
68
+                           ''.join([random.choice(string.ascii_letters +
69
+                                                  string.digits) for n in range(10)]))
70
+        if os.geteuid() == 0:
69 71
             if not os.path.isdir(rpmDestDir):
70
-                cmdUtils.runCommandInShell("mkdir -p "+rpmDestDir)
72
+                cmdUtils.runCommandInShell("mkdir -p " + rpmDestDir)
71 73
             shutil.copyfile(rpmFile, rpmDestPathTemp)
72 74
             shutil.move(rpmDestPathTemp, rpmDestPath)
73 75
         return rpmDestPath
74 76
 
75
-    def installRPM(self,package,chrootID,noDeps=False,destLogPath=None):
77
+    def installRPM(self, package, chrootID, noDeps=False, destLogPath=None):
76 78
 #        self.logger.info("Installing rpm for package:"+package)
77 79
 #        self.logger.debug("No deps:"+str(noDeps))
78 80
 
79
-        rpmfile=self.findRPMFileForGivenPackage(package)
81
+        rpmfile = self.findRPMFileForGivenPackage(package)
80 82
         if rpmfile is None:
81
-            self.logger.error("No rpm file found for package:"+package)
82
-            raise Exception("Missing rpm file: "+package)
83
+            self.logger.error("No rpm file found for package:" + package)
84
+            raise Exception("Missing rpm file: " + package)
83 85
 
84
-        rpmDestFile = self.copyRPM(rpmfile, chrootID+constants.topDirPath+"/RPMS")
85
-        rpmFile=rpmDestFile.replace(chrootID,"")
86
+        rpmDestFile = self.copyRPM(rpmfile, chrootID + constants.topDirPath + "/RPMS")
87
+        rpmFile = rpmDestFile.replace(chrootID, "")
86 88
         if noDeps:
87 89
             self.noDepsRPMFilesToInstallInAOneShot += " " + rpmFile
88 90
             self.noDepsPackagesToInstallInAOneShot += " " + package
... ...
@@ -90,14 +92,16 @@ class PackageUtils(object):
90 90
             self.rpmFilesToInstallInAOneShot += " " + rpmFile
91 91
             self.packagesToInstallInAOneShot += " " + package
92 92
 
93
-    def installRPMSInAOneShot(self,chrootID,destLogPath):
94
-        chrootCmd=self.runInChrootCommand+" "+chrootID
95
-        rpmInstallcmd=self.rpmBinary+" "+ self.installRPMPackageOptions
93
+    def installRPMSInAOneShot(self, chrootID, destLogPath):
94
+        chrootCmd = self.runInChrootCommand + " " + chrootID
95
+        rpmInstallcmd = self.rpmBinary + " " + self.installRPMPackageOptions
96 96
         cmdUtils = CommandUtils()
97 97
         if self.noDepsRPMFilesToInstallInAOneShot != "":
98
-            self.logger.info("Installing nodeps rpms: " + self.noDepsPackagesToInstallInAOneShot)
99
-            logFile=destLogPath+"/install_rpms_nodeps.log"
100
-            cmd = rpmInstallcmd+" "+self.nodepsRPMPackageOptions + " " + self.noDepsRPMFilesToInstallInAOneShot
98
+            self.logger.info("Installing nodeps rpms: " +
99
+                             self.noDepsPackagesToInstallInAOneShot)
100
+            logFile = destLogPath + "/install_rpms_nodeps.log"
101
+            cmd = (rpmInstallcmd+" "+self.nodepsRPMPackageOptions + " " +
102
+                   self.noDepsRPMFilesToInstallInAOneShot)
101 103
             returnVal = cmdUtils.runCommandInShell(cmd, logFile, chrootCmd)
102 104
             if not returnVal:
103 105
                 self.logger.debug("Command Executed:" + cmd)
... ...
@@ -105,8 +109,8 @@ class PackageUtils(object):
105 105
                 raise Exception("RPM installation failed")
106 106
         if self.rpmFilesToInstallInAOneShot != "":
107 107
             self.logger.info("Installing rpms: " + self.packagesToInstallInAOneShot)
108
-            logFile=destLogPath+"/install_rpms.log"
109
-            cmd=rpmInstallcmd+" "+self.rpmFilesToInstallInAOneShot
108
+            logFile = destLogPath+"/install_rpms.log"
109
+            cmd = rpmInstallcmd+" "+self.rpmFilesToInstallInAOneShot
110 110
             returnVal = cmdUtils.runCommandInShell(cmd, logFile, chrootCmd)
111 111
             if not returnVal:
112 112
                 self.logger.debug("Command Executed:" + cmd)
... ...
@@ -118,34 +122,38 @@ class PackageUtils(object):
118 118
         # Fetch/verify sources if sha1 not None.
119 119
         sha1 = SPECS.getData().getSHA1(package, source)
120 120
         if sha1 is not None:
121
-            PullSources.get(source, sha1, constants.sourcePath, constants.pullsourcesConfig, self.logger)
121
+            PullSources.get(source, sha1, constants.sourcePath, constants.pullsourcesConfig,
122
+                            self.logger)
122 123
 
123
-        sourcePath = cmdUtils.findFile(source,constants.sourcePath)
124
+        sourcePath = cmdUtils.findFile(source, constants.sourcePath)
124 125
         if sourcePath is None or len(sourcePath) == 0:
125
-            sourcePath = cmdUtils.findFile(source,constants.specPath)
126
+            sourcePath = cmdUtils.findFile(source, constants.specPath)
126 127
             if sourcePath is None or len(sourcePath) == 0:
127 128
                 if sha1 is None:
128
-                    self.logger.error("No sha1 found or missing source for "+source)
129
-                    raise Exception("No sha1 found or missing source for "+source)
129
+                    self.logger.error("No sha1 found or missing source for " + source)
130
+                    raise Exception("No sha1 found or missing source for " + source)
130 131
                 else:
131
-                    self.logger.error("Missing source: "+source+". Cannot find sources for package: "+package)
132
+                    self.logger.error("Missing source: " + source +
133
+                                      ". Cannot find sources for package: " + package)
132 134
                     raise Exception("Missing source")
133 135
         else:
134 136
             if sha1 is None:
135 137
                 self.logger.error("No sha1 found for "+source)
136 138
                 raise Exception("No sha1 found")
137 139
         if len(sourcePath) > 1:
138
-            self.logger.error("Multiple sources found for source:"+source+"\n"+ ",".join(sourcePath) +"\nUnable to determine one.")
140
+            self.logger.error("Multiple sources found for source:" + source + "\n" +
141
+                              ",".join(sourcePath) +"\nUnable to determine one.")
139 142
             raise Exception("Multiple sources found")
140 143
         return sourcePath
141 144
 
142
-    def copySourcesTobuildroot(self,listSourceFiles,package,destDir):
145
+    def copySourcesTobuildroot(self, listSourceFiles, package, destDir):
143 146
         for source in listSourceFiles:
144 147
             sourcePath = self.verifyShaAndGetSourcePath(source, package)
145
-            self.logger.info("Copying... Source path :" + source + " Source filename: " + sourcePath[0])
148
+            self.logger.info("Copying... Source path :" + source +
149
+                             " Source filename: " + sourcePath[0])
146 150
             shutil.copy2(sourcePath[0], destDir)
147 151
 
148
-    def copyAdditionalBuildFiles(self,listAdditionalFiles,chrootID):
152
+    def copyAdditionalBuildFiles(self, listAdditionalFiles, chrootID):
149 153
         cmdUtils = CommandUtils()
150 154
         for additionalFile in listAdditionalFiles:
151 155
             source = additionalFile["src"].encode('utf-8')
... ...
@@ -174,80 +182,90 @@ class PackageUtils(object):
174 174
                     macros.append(str(macro.encode('utf-8')))
175 175
         return listAdditionalFiles, macros
176 176
 
177
-    def buildRPMSForGivenPackage(self,package,chrootID,listBuildOptionPackages,pkgBuildOptionFile,destLogPath=None):
178
-        self.logger.info("Building rpm's for package:"+package)
177
+    def buildRPMSForGivenPackage(self, package, chrootID, listBuildOptionPackages,
178
+                                 pkgBuildOptionFile, destLogPath=None):
179
+        self.logger.info("Building rpm's for package:" + package)
179 180
 
180 181
         listSourcesFiles = SPECS.getData().getSources(package)
181
-        listPatchFiles =  SPECS.getData().getPatches(package)
182
+        listPatchFiles = SPECS.getData().getPatches(package)
182 183
         specFile = SPECS.getData().getSpecFile(package)
183 184
         specName = SPECS.getData().getSpecName(package) + ".spec"
184 185
 
185
-        chrootSourcePath=chrootID+constants.topDirPath+"/SOURCES/"
186
-        chrootSpecPath=constants.topDirPath+"/SPECS/"
187
-        chrootLogsFilePath=chrootID+constants.topDirPath+"/LOGS/"+package+".log"
188
-        chrootCmd=self.runInChrootCommand+" "+chrootID
189
-        shutil.copyfile(specFile, chrootID+chrootSpecPath+specName )
186
+        chrootSourcePath = chrootID + constants.topDirPath + "/SOURCES/"
187
+        chrootSpecPath = constants.topDirPath + "/SPECS/"
188
+        chrootLogsFilePath = chrootID + constants.topDirPath + "/LOGS/" + package + ".log"
189
+        chrootCmd = self.runInChrootCommand + " " + chrootID
190
+        shutil.copyfile(specFile, chrootID + chrootSpecPath + specName)
190 191
 
191 192
         # FIXME: some sources are located in SPECS/.. how to mount?
192 193
         #        if os.geteuid()==0:
193
-        self.copySourcesTobuildroot(listSourcesFiles,package,chrootSourcePath)
194
-        self.copySourcesTobuildroot(listPatchFiles,package,chrootSourcePath)
194
+        self.copySourcesTobuildroot(listSourcesFiles, package, chrootSourcePath)
195
+        self.copySourcesTobuildroot(listPatchFiles, package, chrootSourcePath)
195 196
 
196 197
         macros = []
197 198
         if package in listBuildOptionPackages:
198 199
             listAdditionalFiles, macros = self.getAdditionalBuildFiles(package, pkgBuildOptionFile)
199
-            self.copyAdditionalBuildFiles(listAdditionalFiles,chrootID)
200
+            self.copyAdditionalBuildFiles(listAdditionalFiles, chrootID)
200 201
 
201 202
         #Adding rpm macros
202 203
         listRPMMacros = constants.userDefinedMacros
203 204
         for macroName in listRPMMacros.keys():
204
-            macros.append(macroName+" "+listRPMMacros[macroName])
205
+            macros.append(macroName + " " + listRPMMacros[macroName])
205 206
 
206
-        listRPMFiles=[]
207
-        listSRPMFiles=[]
207
+        listRPMFiles = []
208
+        listSRPMFiles = []
208 209
         try:
209
-            listRPMFiles,listSRPMFiles = self.buildRPM(chrootSpecPath +specName,chrootLogsFilePath,chrootCmd,package,macros)
210
-            self.logger.info("Successfully built rpm:"+package)
210
+            listRPMFiles, listSRPMFiles = self.buildRPM(chrootSpecPath + specName,
211
+                                                        chrootLogsFilePath, chrootCmd,
212
+                                                        package, macros)
213
+            self.logger.info("Successfully built rpm:" + package)
211 214
         except Exception as e:
212
-            self.logger.error("Failed while building rpm:"+package)
215
+            self.logger.error("Failed while building rpm:" + package)
213 216
             raise e
214 217
         finally:
215 218
             if destLogPath is not None:
216
-                if constants.rpmCheck and package in constants.testForceRPMS and SPECS.getData().isCheckAvailable(package):
217
-                    cmd="sed -i '/^Executing(%check):/,/^Processing files:/{//!b};d' "+ chrootLogsFilePath
218
-                    logFile = destLogPath+"/adjustTestFile.log"
219
+                if (constants.rpmCheck and
220
+                        package in constants.testForceRPMS and
221
+                        SPECS.getData().isCheckAvailable(package)):
222
+                    cmd = ("sed -i '/^Executing(%check):/,/^Processing files:/{//!b};d' " +
223
+                           chrootLogsFilePath)
224
+                    logFile = destLogPath + "/adjustTestFile.log"
219 225
                     returnVal = CommandUtils().runCommandInShell(cmd, logFile)
220
-                    testLogFile = destLogPath+"/"+package+"-test.log"
226
+                    testLogFile = destLogPath + "/" + package + "-test.log"
221 227
                     shutil.copyfile(chrootLogsFilePath, testLogFile)
222 228
                 else:
223 229
                     shutil.copy2(chrootLogsFilePath, destLogPath)
224 230
         self.logger.info("RPM build is successful")
225 231
 
226 232
         for rpmFile in listRPMFiles:
227
-            self.copyRPM(chrootID+"/"+rpmFile, constants.rpmPath)
233
+            self.copyRPM(chrootID + "/" + rpmFile, constants.rpmPath)
228 234
 
229 235
         for srpmFile in listSRPMFiles:
230
-            srpmDestFile = self.copyRPM(chrootID+"/"+srpmFile, constants.sourceRpmPath)
236
+            srpmDestFile = self.copyRPM(chrootID + "/" + srpmFile, constants.sourceRpmPath)
231 237
 
232
-    def buildRPM(self,specFile,logFile,chrootCmd,package,macros):
238
+    def buildRPM(self, specFile, logFile, chrootCmd, package, macros):
233 239
 
234
-        rpmBuildcmd=self.rpmbuildBinary+" "+self.rpmbuildBuildallOption
240
+        rpmBuildcmd = self.rpmbuildBinary + " " + self.rpmbuildBuildallOption
235 241
 
236 242
         if constants.rpmCheck and package in constants.testForceRPMS:
237
-            self.logger.info("#"*(68+2*len(package)))
243
+            self.logger.info("#" * (68 + 2 * len(package)))
238 244
             if not SPECS.getData().isCheckAvailable(package):
239
-                self.logger.info("####### "+package+" MakeCheck is not available. Skipping MakeCheck TEST for "+package+ " #######")
240
-                rpmBuildcmd=self.rpmbuildBinary+" --clean"
245
+                self.logger.info("####### " + package +
246
+                                 " MakeCheck is not available. Skipping MakeCheck TEST for " +
247
+                                 package + " #######")
248
+                rpmBuildcmd = self.rpmbuildBinary + " --clean"
241 249
             else:
242
-                self.logger.info("####### "+package+" MakeCheck is available. Running MakeCheck TEST for "+package+ " #######")
243
-                rpmBuildcmd=self.rpmbuildBinary+" "+self.rpmbuildCheckOption
244
-            self.logger.info("#"*(68+2*len(package)))
250
+                self.logger.info("####### " + package +
251
+                                 " MakeCheck is available. Running MakeCheck TEST for " +
252
+                                 package + " #######")
253
+                rpmBuildcmd = self.rpmbuildBinary + " " + self.rpmbuildCheckOption
254
+            self.logger.info("#" * (68 + 2 * len(package)))
245 255
         else:
246
-           rpmBuildcmd+=" "+self.rpmbuildNocheckOption
256
+            rpmBuildcmd += " " + self.rpmbuildNocheckOption
247 257
 
248 258
         for macro in macros:
249
-            rpmBuildcmd+=' --define \\\"%s\\\"' % macro
250
-        rpmBuildcmd+=" "+specFile
259
+            rpmBuildcmd += ' --define \\\"%s\\\"' % macro
260
+        rpmBuildcmd += " " + specFile
251 261
 
252 262
         cmdUtils = CommandUtils()
253 263
         self.logger.info("Building rpm....")
... ...
@@ -255,99 +273,113 @@ class PackageUtils(object):
255 255
         returnVal = cmdUtils.runCommandInShell(rpmBuildcmd, logFile, chrootCmd)
256 256
         if constants.rpmCheck and package in constants.testForceRPMS:
257 257
             if not SPECS.getData().isCheckAvailable(package):
258
-                constants.testLogger.info(package+" : N/A")
258
+                constants.testLogger.info(package + " : N/A")
259 259
             elif returnVal:
260
-                constants.testLogger.info(package+" : PASS")
260
+                constants.testLogger.info(package + " : PASS")
261 261
             else:
262
-                constants.testLogger.error(package+" : FAIL" )
262
+                constants.testLogger.error(package + " : FAIL")
263 263
 
264 264
         if constants.rpmCheck:
265 265
             if not returnVal and constants.rpmCheckStopOnError:
266
-                self.logger.error("Checking rpm is failed "+specFile)
266
+                self.logger.error("Checking rpm is failed " + specFile)
267 267
                 raise Exception("RPM check failed")
268 268
         else:
269 269
             if not returnVal:
270
-                self.logger.error("Building rpm is failed "+specFile)
270
+                self.logger.error("Building rpm is failed " + specFile)
271 271
                 raise Exception("RPM build failed")
272 272
 
273 273
         #Extracting rpms created from log file
274
-        logfile=open(logFile,'r')
275
-        fileContents=logfile.readlines()
274
+        logfile = open(logFile, 'r')
275
+        fileContents = logfile.readlines()
276 276
         logfile.close()
277
-        listRPMFiles=[]
278
-        listSRPMFiles=[]
279
-        for i in range(0,len(fileContents)):
280
-            if re.search("^Wrote:",fileContents[i]):
281
-                listcontents=fileContents[i].split()
282
-                if (len(listcontents) == 2) and listcontents[1].strip()[-4:] == ".rpm" and listcontents[1].find("/RPMS/") != -1:
277
+        listRPMFiles = []
278
+        listSRPMFiles = []
279
+        for i in range(0, len(fileContents)):
280
+            if re.search("^Wrote:", fileContents[i]):
281
+                listcontents = fileContents[i].split()
282
+                if ((len(listcontents) == 2) and
283
+                        listcontents[1].strip().endswith(".rpm") and
284
+                        "/RPMS/" in listcontents[1]):
283 285
                     listRPMFiles.append(listcontents[1])
284
-                if (len(listcontents) == 2) and listcontents[1].strip()[-8:] == ".src.rpm" and listcontents[1].find("/SRPMS/") != -1:
286
+                if ((len(listcontents) == 2) and
287
+                        listcontents[1].strip().endswith(".src.rpm") and
288
+                        "/SRPMS/" in listcontents[1]):
285 289
                     listSRPMFiles.append(listcontents[1])
286
-        return listRPMFiles,listSRPMFiles
290
+        return listRPMFiles, listSRPMFiles
287 291
 
288
-    def findRPMFileForGivenPackage(self,package):
292
+    def findRPMFileForGivenPackage(self, package):
289 293
         cmdUtils = CommandUtils()
290 294
         version = SPECS.getData().getVersion(package)
291 295
         release = SPECS.getData().getRelease(package)
292
-        listFoundRPMFiles = sum([cmdUtils.findFile(package+"-"+version+"-"+release+"."+platform.machine()+".rpm",constants.rpmPath),
293
-                            cmdUtils.findFile(package+"-"+version+"-"+release+".noarch.rpm",constants.rpmPath)], [])
296
+        listFoundRPMFiles = sum([cmdUtils.findFile(package + "-" + version + "-" + release + "." +
297
+                                                   platform.machine()+".rpm",
298
+                                                   constants.rpmPath),
299
+                                 cmdUtils.findFile(package + "-" + version + "-" + release +
300
+                                                   ".noarch.rpm",
301
+                                                   constants.rpmPath)], [])
294 302
         if constants.inputRPMSPath is not None:
295
-            listFoundRPMFiles = sum([cmdUtils.findFile(package+"-"+version+"-"+release+"."+platform.machine()+".rpm",constants.inputRPMSPath),
296
-                            cmdUtils.findFile(package+"-"+version+"-"+release+".noarch.rpm",constants.inputRPMSPath)], listFoundRPMFiles)
297
-        if len(listFoundRPMFiles) == 1 :
303
+            listFoundRPMFiles = sum([cmdUtils.findFile(package + "-" + version + "-" + release +
304
+                                                       "." + platform.machine()+".rpm",
305
+                                                       constants.inputRPMSPath),
306
+                                     cmdUtils.findFile(package + "-" + version + "-" + release +
307
+                                                       ".noarch.rpm", constants.inputRPMSPath)],
308
+                                    listFoundRPMFiles)
309
+        if len(listFoundRPMFiles) == 1:
298 310
             return listFoundRPMFiles[0]
299
-        if len(listFoundRPMFiles) == 0 :
311
+        if len(listFoundRPMFiles) == 0:
300 312
             return None
301
-        if len(listFoundRPMFiles) > 1 :
302
-            self.logger.error("Found multiple rpm files for given package in rpm directory.Unable to determine the rpm file for package:"+package)
313
+        if len(listFoundRPMFiles) > 1:
314
+            self.logger.error("Found multiple rpm files for given package in rpm directory." +
315
+                              "Unable to determine the rpm file for package:" + package)
303 316
             raise Exception("Multiple rpm files found")
304 317
 
305
-    def findPackageNameFromRPMFile(self,rpmfile):
306
-        rpmfile=os.path.basename(rpmfile)
307
-        releaseindex=rpmfile.rfind("-")
318
+    def findPackageNameFromRPMFile(self, rpmfile):
319
+        rpmfile = os.path.basename(rpmfile)
320
+        releaseindex = rpmfile.rfind("-")
308 321
         if releaseindex == -1:
309
-            self.logger.error("Invalid rpm file:"+rpmfile)
322
+            self.logger.error("Invalid rpm file:" + rpmfile)
310 323
             raise Exception("Invalid RPM")
311
-        versionindex=rpmfile[0:releaseindex].rfind("-")
324
+        versionindex = rpmfile[0:releaseindex].rfind("-")
312 325
         if versionindex == -1:
313
-            self.logger.error("Invalid rpm file:"+rpmfile)
326
+            self.logger.error("Invalid rpm file:" + rpmfile)
314 327
             raise Exception("Invalid RPM")
315
-        packageName=rpmfile[0:versionindex]
328
+        packageName = rpmfile[0:versionindex]
316 329
         return packageName
317 330
 
318
-    def findPackageInfoFromRPMFile(self,rpmfile):
319
-        rpmfile=os.path.basename(rpmfile)
320
-        rpmfile=rpmfile.replace("."+platform.machine()+".rpm","")
321
-        rpmfile=rpmfile.replace(".noarch.rpm","")
322
-        releaseindex=rpmfile.rfind("-")
331
+    def findPackageInfoFromRPMFile(self, rpmfile):
332
+        rpmfile = os.path.basename(rpmfile)
333
+        rpmfile = rpmfile.replace("." + platform.machine() + ".rpm", "")
334
+        rpmfile = rpmfile.replace(".noarch.rpm", "")
335
+        releaseindex = rpmfile.rfind("-")
323 336
         if releaseindex == -1:
324
-            self.logger.error("Invalid rpm file:"+rpmfile)
337
+            self.logger.error("Invalid rpm file:" + rpmfile)
325 338
             raise Exception("Invalid RPM")
326
-        versionindex=rpmfile[0:releaseindex].rfind("-")
339
+        versionindex = rpmfile[0:releaseindex].rfind("-")
327 340
         if versionindex == -1:
328
-            self.logger.error("Invalid rpm file:"+rpmfile)
341
+            self.logger.error("Invalid rpm file:" + rpmfile)
329 342
             raise Exception("Invalid RPM")
330
-        packageName=rpmfile[0:versionindex]
331
-        version=rpmfile[versionindex+1:releaseindex]
332
-        release=rpmfile[releaseindex+1:]
333
-        return packageName,version,release
343
+        packageName = rpmfile[0:versionindex]
344
+        version = rpmfile[versionindex + 1:releaseindex]
345
+        release = rpmfile[releaseindex + 1:]
346
+        return packageName, version, release
334 347
 
335 348
     def findInstalledRPMPackages(self, chrootID):
336
-        cmd = self.rpmBinary+" "+self.queryRpmPackageOptions
337
-        chrootCmd=self.runInChrootCommand+" "+chrootID
338
-        cmdUtils=CommandUtils()
339
-        result=cmdUtils.runCommandInShell2(cmd, chrootCmd)
349
+        cmd = self.rpmBinary + " " + self.queryRpmPackageOptions
350
+        chrootCmd = self.runInChrootCommand + " " + chrootID
351
+        cmdUtils = CommandUtils()
352
+        result = cmdUtils.runCommandInShell2(cmd, chrootCmd)
340 353
         if result is not None:
341
-            return result.split()
354
+            return result.decode().split()
342 355
         return result
343 356
 
344 357
     def adjustGCCSpecs(self, package, chrootID, logPath):
345 358
         opt = " " + SPECS.getData().getSecurityHardeningOption(package)
346
-        cmdUtils=CommandUtils()
347
-        cpcmd="cp "+ self.adjustGCCSpecScript+" "+chrootID+"/tmp/"+self.adjustGCCSpecScript
348
-        cmd = "/tmp/"+self.adjustGCCSpecScript+opt
349
-        logFile = logPath+"/adjustGCCSpecScript.log"
350
-        chrootCmd=self.runInChrootCommand+" "+chrootID
359
+        cmdUtils = CommandUtils()
360
+        cpcmd = ("cp " + self.adjustGCCSpecScript + " " + chrootID +
361
+                 "/tmp/" + self.adjustGCCSpecScript)
362
+        cmd = "/tmp/" + self.adjustGCCSpecScript + opt
363
+        logFile = logPath + "/adjustGCCSpecScript.log"
364
+        chrootCmd = self.runInChrootCommand + " " + chrootID
351 365
         returnVal = cmdUtils.runCommandInShell(cpcmd, logFile)
352 366
         if not returnVal:
353 367
             self.logger.error("Error during copying the file adjust gcc spec")
... ...
@@ -356,8 +388,10 @@ class PackageUtils(object):
356 356
         if returnVal:
357 357
             return
358 358
 
359
-        self.logger.debug(cmdUtils.runCommandInShell2("ls -la " + chrootID + "/tmp/" + self.adjustGCCSpecScript))
360
-        self.logger.debug(cmdUtils.runCommandInShell2("lsof " + chrootID + "/tmp/" + self.adjustGCCSpecScript))
359
+        self.logger.debug(cmdUtils.runCommandInShell2("ls -la " + chrootID +
360
+                                                      "/tmp/" + self.adjustGCCSpecScript))
361
+        self.logger.debug(cmdUtils.runCommandInShell2("lsof " + chrootID + "/tmp/" +
362
+                                                      self.adjustGCCSpecScript))
361 363
         self.logger.debug(cmdUtils.runCommandInShell2("ps ax"))
362 364
 
363 365
         self.logger.error("Failed while adjusting gcc specs")
... ...
@@ -373,7 +407,8 @@ class PackageUtils(object):
373 373
 
374 374
     def copyAdditionalBuildFilesToContainer(self, listAdditionalFiles, containerID):
375 375
         cmdUtils = CommandUtils()
376
-        #self.logger.debug("VDBG-PU-copyAdditionalBuildFilesToContainer id: " +containerID.short_id)
376
+        #self.logger.debug("VDBG-PU-copyAdditionalBuildFilesToContainer id: " +
377
+        #                  containerID.short_id)
377 378
         #self.logger.debug(listAdditionalFiles)
378 379
         for additionalFile in listAdditionalFiles:
379 380
             source = additionalFile["src"].encode('utf-8')
... ...
@@ -388,7 +423,7 @@ class PackageUtils(object):
388 388
                     copyCmd += " " + destPath
389 389
                 else:
390 390
                     self.logger.info("Copying addl source file tree: " + source)
391
-                    copyCmd +=  "/. " + destPath
391
+                    copyCmd += "/. " + destPath
392 392
                 #TODO: cmd error code
393 393
                 cmdUtils.runCommandInShell(copyCmd)
394 394
 
... ...
@@ -427,39 +462,44 @@ class PackageUtils(object):
427 427
                 self.rmpFilesToReInstallInAOneShot += " " + rpmDestFile
428 428
 
429 429
     def installRPMSInAOneShotInContainer(self, containerID, destLogPath):
430
-        rpmInstallcmd = self.rpmBinary + " " + self.installRPMPackageOptions + " " + self.forceRpmPackageOptions
430
+        rpmInstallcmd = (self.rpmBinary + " " + self.installRPMPackageOptions + " " +
431
+                         self.forceRpmPackageOptions)
431 432
 
432 433
         if self.noDepsRPMFilesToInstallInAOneShot != "":
433
-            self.logger.info("PackageUtils-installRPMSInAOneShotInContainer: Installing nodeps rpms: " + \
434
+            self.logger.info("PackageUtils-installRPMSInAOneShotInContainer: " +
435
+                             "Installing nodeps rpms: " +
434 436
                              self.noDepsPackagesToInstallInAOneShot)
435 437
             logFile = destLogPath + "/install_rpms_nodeps.log"
436
-            cmd = rpmInstallcmd + " " + self.nodepsRPMPackageOptions + " " + self.noDepsRPMFilesToInstallInAOneShot
438
+            cmd = (rpmInstallcmd + " " + self.nodepsRPMPackageOptions + " " +
439
+                   self.noDepsRPMFilesToInstallInAOneShot)
437 440
             cmd = "/bin/bash -l -c '" + cmd + "'"
438
-            #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: Install nodeps cmd: " + cmd)
441
+            #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: " +
442
+            #                  "Install nodeps cmd: " + cmd)
439 443
             #TODO: Error code from exec_run
440 444
             installLog = containerID.exec_run(cmd)
441 445
             if not installLog:
442 446
                 self.logger.error("Unable to install nodeps rpms")
443 447
                 raise Exception("nodeps RPM installation failed")
444
-            logfile = open(logFile, 'w')
445
-            logfile.write(installLog)
446
-            logfile.close()
448
+            with open(logFile, 'w') as logfile:
449
+                logfile.write(installLog.decode())
447 450
 
448 451
             if self.noDepsRPMFilesToReInstallInAOneShot != "":
449
-                cmd = rpmInstallcmd + " " + self.nodepsRPMPackageOptions + " " + self.forceRpmPackageOptions + " " + self.noDepsRPMFilesToReInstallInAOneShot
452
+                cmd = (rpmInstallcmd + " " + self.nodepsRPMPackageOptions + " " +
453
+                       self.forceRpmPackageOptions + " " +
454
+                       self.noDepsRPMFilesToReInstallInAOneShot)
450 455
                 cmd = "/bin/bash -l -c '" + cmd + "'"
451
-                #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: ReInstall nodeps cmd: " + cmd)
456
+                #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: " +
457
+                #                  "ReInstall nodeps cmd: " + cmd)
452 458
                 #TODO: Error code from exec_run
453 459
                 installLog = containerID.exec_run(cmd)
454 460
                 if not installLog:
455 461
                     self.logger.error("Unable to re-install nodeps rpms")
456 462
                     raise Exception("nodeps RPM re-installation failed")
457
-                logfile = open(logFile, 'a')
458
-                logfile.write(installLog)
459
-                logfile.close()
463
+                with open(logFile, 'a') as logfile:
464
+                    logfile.write(installLog.decode())
460 465
 
461 466
         if self.rpmFilesToInstallInAOneShot != "":
462
-            self.logger.info("PackageUtils-installRPMSInAOneShotInContainer: Installing rpms: " + \
467
+            self.logger.info("PackageUtils-installRPMSInAOneShotInContainer: Installing rpms: " +
463 468
                              self.packagesToInstallInAOneShot)
464 469
             logFile = destLogPath + "/install_rpms.log"
465 470
             cmd = rpmInstallcmd + " " + self.rpmFilesToInstallInAOneShot
... ...
@@ -470,22 +510,22 @@ class PackageUtils(object):
470 470
             if not installLog:
471 471
                 self.logger.error("Unable to install rpms")
472 472
                 raise Exception("RPM installation failed")
473
-            logfile = open(logFile, 'w')
474
-            logfile.write(installLog)
475
-            logfile.close()
473
+            with open(logFile, 'w') as logfile:
474
+                logfile.write(installLog.decode())
476 475
 
477 476
             if self.rpmFilesToReInstallInAOneShot != "":
478
-                cmd = rpmInstallcmd + " " + self.forceRpmPackageOptions + " " + self.rpmFilesToReInstallInAOneShot
477
+                cmd = (rpmInstallcmd + " " + self.forceRpmPackageOptions + " " +
478
+                       self.rpmFilesToReInstallInAOneShot)
479 479
                 cmd = "/bin/bash -l -c '" + cmd + "'"
480
-                #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: ReInstall cmd: " + cmd)
480
+                #self.logger.debug("VDBG-PU-installRPMSInAOneShotInContainer: " +
481
+                #                  "ReInstall cmd: " + cmd)
481 482
                 #TODO: Error code from exec_run
482 483
                 installLog = containerID.exec_run(cmd)
483 484
                 if not installLog:
484 485
                     self.logger.error("Unable to re-install rpms")
485 486
                     raise Exception("RPM re-installation failed")
486
-                logfile = open(logFile, 'a')
487
-                logfile.write(installLog)
488
-                logfile.close()
487
+                with open(logFile, 'a') as logfile:
488
+                    logfile.write(installLog.decode())
489 489
 
490 490
     def findInstalledRPMPackagesInContainer(self, containerID):
491 491
         cmd = self.rpmBinary + " " + self.queryRpmPackageOptions
... ...
@@ -493,7 +533,7 @@ class PackageUtils(object):
493 493
         #TODO: Error code from exec_run
494 494
         result = containerID.exec_run(cmd)
495 495
         if result is not None:
496
-            return result.split()
496
+            return result.decode().split()
497 497
         return result
498 498
 
499 499
     def adjustGCCSpecsInContainer(self, package, containerID, logPath):
... ...
@@ -505,9 +545,8 @@ class PackageUtils(object):
505 505
         #TODO: Error code from exec_run
506 506
         scriptLog = containerID.exec_run(adjustCmd)
507 507
         if scriptLog:
508
-            logfile = open(logFile, 'w')
509
-            logfile.write(scriptLog)
510
-            logfile.close()
508
+            with open(logFile, 'w') as logfile:
509
+                logfile.write(scriptLog.decode())
511 510
             return
512 511
 
513 512
         self.logger.debug(containerID.exec_run("ls -la /tmp/" + self.adjustGCCSpecScript))
... ...
@@ -518,7 +557,8 @@ class PackageUtils(object):
518 518
 
519 519
     def buildRPMSForGivenPackageInContainer(self, package, containerID, listBuildOptionPackages,
520 520
                                             pkgBuildOptionFile, destLogPath=None):
521
-        self.logger.info("Building rpm's for package " + package + " in container " + containerID.short_id)
521
+        self.logger.info("Building rpm's for package " + package + " in container " +
522
+                         containerID.short_id)
522 523
 
523 524
         listSourcesFiles = SPECS.getData().getSources(package)
524 525
         listPatchFiles = SPECS.getData().getPatches(package)
... ...
@@ -555,28 +595,30 @@ class PackageUtils(object):
555 555
             macros.append(macroName + " " + listRPMMacros[macroName])
556 556
 
557 557
         # Build RPMs
558
-        listRPMFiles=[]
559
-        listSRPMFiles=[]
558
+        listRPMFiles = []
559
+        listSRPMFiles = []
560 560
         try:
561 561
             listRPMFiles, listSRPMFiles = self.buildRPMinContainer(
562
-                                                    specPath + specName,
563
-                                                    rpmLogFile,
564
-                                                    destLogFile,
565
-                                                    containerID,
566
-                                                    package,
567
-                                                    macros)
568
-            self.logger.info("Successfully built rpm:"+package)
562
+                specPath + specName,
563
+                rpmLogFile,
564
+                destLogFile,
565
+                containerID,
566
+                package,
567
+                macros)
568
+            self.logger.info("Successfully built rpm:" + package)
569 569
         except Exception as e:
570 570
             self.logger.error("Failed while building rpm: " + package)
571 571
             raise e
572 572
         finally:
573 573
             if destLogPath is not None:
574 574
                 rpmLog = destLogPath + "/" + package + ".log"
575
-                if constants.rpmCheck and package in constants.testForceRPMS and SPECS.getData().isCheckAvailable(package):
576
-                    cmd="sed -i '/^Executing(%check):/,/^Processing files:/{//!b};d' "+ rpmLog
577
-                    logFile = destLogPath+"/adjustTestFile.log"
575
+                if (constants.rpmCheck and
576
+                        package in constants.testForceRPMS and
577
+                        SPECS.getData().isCheckAvailable(package)):
578
+                    cmd = "sed -i '/^Executing(%check):/,/^Processing files:/{//!b};d' " + rpmLog
579
+                    logFile = destLogPath + "/adjustTestFile.log"
578 580
                     returnVal = CommandUtils().runCommandInShell(cmd, logFile)
579
-                    testLogFile = destLogPath+"/"+package+"-test.log"
581
+                    testLogFile = destLogPath + "/" + package + "-test.log"
580 582
                     shutil.copyfile(rpmLog, testLogFile)
581 583
         self.logger.info("RPM build is successful")
582 584
 
... ...
@@ -602,16 +644,20 @@ class PackageUtils(object):
602 602
         rpmBuildCmd = self.rpmbuildBinary + " " + self.rpmbuildBuildallOption
603 603
 
604 604
         if constants.rpmCheck and package in constants.testForceRPMS:
605
-            self.logger.info("#"*(68+2*len(package)))
605
+            self.logger.info("#" * (68 + 2 * len(package)))
606 606
             if not SPECS.getData().isCheckAvailable(package):
607
-                self.logger.info("####### "+package+" MakeCheck is not available. Skipping MakeCheck TEST for "+package+ " #######")
608
-                rpmBuildCmd=self.rpmbuildBinary+" --clean"
607
+                self.logger.info("####### " + package +
608
+                                 " MakeCheck is not available. Skipping MakeCheck TEST for " +
609
+                                 package + " #######")
610
+                rpmBuildCmd = self.rpmbuildBinary + " --clean"
609 611
             else:
610
-                self.logger.info("####### "+package+" MakeCheck is available. Running MakeCheck TEST for "+package+ " #######")
611
-                rpmBuildCmd=self.rpmbuildBinary+" "+self.rpmbuildCheckOption
612
-            self.logger.info("#"*(68+2*len(package)))
612
+                self.logger.info("####### " + package +
613
+                                 " MakeCheck is available. Running MakeCheck TEST for " +
614
+                                 package + " #######")
615
+                rpmBuildCmd = self.rpmbuildBinary + " " + self.rpmbuildCheckOption
616
+            self.logger.info("#" * (68 + 2 * len(package)))
613 617
         else:
614
-           rpmBuildCmd+=" "+self.rpmbuildNocheckOption
618
+            rpmBuildCmd += " "+self.rpmbuildNocheckOption
615 619
 
616 620
         for macro in macros:
617 621
             rpmBuildCmd += ' --define \"%s\"' % macro
... ...
@@ -632,33 +678,37 @@ class PackageUtils(object):
632 632
 
633 633
         if constants.rpmCheck and package in constants.testForceRPMS:
634 634
             if not SPECS.getData().isCheckAvailable(package):
635
-                constants.testLogger.info(package+" : N/A")
635
+                constants.testLogger.info(package + " : N/A")
636 636
             elif returnVal:
637
-                constants.testLogger.info(package+" : PASS")
637
+                constants.testLogger.info(package + " : PASS")
638 638
             else:
639
-                constants.testLogger.error(package+" : FAIL" )
639
+                constants.testLogger.error(package + " : FAIL")
640 640
 
641 641
         if constants.rpmCheck:
642 642
             if not returnVal and constants.rpmCheckStopOnError:
643
-                self.logger.error("Checking rpm is failed "+specFile)
643
+                self.logger.error("Checking rpm is failed " + specFile)
644 644
                 raise Exception("RPM check failed")
645 645
         else:
646 646
             if not returnVal:
647
-                self.logger.error("Building rpm is failed "+specFile)
647
+                self.logger.error("Building rpm is failed " + specFile)
648 648
                 raise Exception("RPM build failed")
649 649
 
650 650
         #Extracting rpms created from log file
651
-        listRPMFiles=[]
652
-        listSRPMFiles=[]
651
+        listRPMFiles = []
652
+        listSRPMFiles = []
653 653
         logfile = open(destLogFile, 'r')
654 654
         rpmBuildLogLines = logfile.readlines()
655 655
         logfile.close()
656 656
         for i in range(0, len(rpmBuildLogLines)):
657 657
             if re.search("^Wrote:", rpmBuildLogLines[i]):
658 658
                 listcontents = rpmBuildLogLines[i].split()
659
-                if (len(listcontents) == 2) and listcontents[1].strip()[-4:] == ".rpm" and listcontents[1].find("/RPMS/") != -1:
659
+                if ((len(listcontents) == 2) and
660
+                        listcontents[1].strip().endswith(".rpm") and
661
+                        "/RPMS/" in listcontents[1]):
660 662
                     listRPMFiles.append(listcontents[1])
661
-                if (len(listcontents) == 2) and listcontents[1].strip()[-8:] == ".src.rpm" and listcontents[1].find("/SRPMS/") != -1:
663
+                if ((len(listcontents) == 2) and
664
+                        listcontents[1].strip().endswith(".src.rpm") and
665
+                        "/SRPMS/" in listcontents[1]):
662 666
                     listSRPMFiles.append(listcontents[1])
663 667
         #if not listRPMFiles:
664 668
         #    self.logger.error("Building rpm failed for " + specFile)
... ...
@@ -1,7 +1,5 @@
1
-#! /usr/bin/python2
2
-#
3 1
 #    Copyright (C) 2015-2017 VMware, Inc. All rights reserved.
4
-#    pullsources.py 
2
+#    pullsources.py
5 3
 #    Allows pulling packages'sources from a source repository.
6 4
 #
7 5
 #    Author(s): Mahmoud Bassiouny (mbassiouny@vmware.com)
... ...
@@ -11,7 +9,6 @@
11 11
 import json
12 12
 import os
13 13
 import hashlib
14
-import datetime
15 14
 import requests
16 15
 from requests.auth import HTTPBasicAuth
17 16
 from CommandUtils import CommandUtils
... ...
@@ -30,37 +27,39 @@ def get(source, sha1, sourcesPath, configs, logger):
30 30
     sourcePath = cmdUtils.findFile(source, sourcesPath)
31 31
     if sourcePath is not None and len(sourcePath) > 0:
32 32
         if len(sourcePath) > 1:
33
-            raise Exception("Multiple sources found for source:"+source+"\n"+ ",".join(sourcePath) +"\nUnable to determine one.")
33
+            raise Exception("Multiple sources found for source:" + source + "\n" +
34
+                            ",".join(sourcePath) +"\nUnable to determine one.")
34 35
         if sha1 == getFileHash(sourcePath[0]):
35 36
             # Use file from sourcesPath
36 37
             return
37 38
         else:
38
-            logger.info("sha1 of "+sourcePath[0]+" does not match. "+sha1+" vs "+getFileHash(sourcePath[0]))
39
-    configFiles=configs.split(":")
39
+            logger.info("sha1 of " + sourcePath[0] + " does not match. " + sha1 +
40
+                        " vs " + getFileHash(sourcePath[0]))
41
+    configFiles = configs.split(":")
40 42
     for config in configFiles:
41 43
         p = pullSources(config, logger)
42 44
         package_path = os.path.join(sourcesPath, source)
43
-        try: 
45
+        try:
44 46
             p.downloadFileHelper(source, package_path, sha1)
45 47
             return
46 48
         except Exception as e:
47
-            logger.error(e)
48
-    raise Exception("Missing source: "+source)
49
+            logger.exception(e)
50
+    raise Exception("Missing source: " + source)
49 51
 
50 52
 class pullSources:
51 53
 
52 54
     def __init__(self, conf_file, logger):
53 55
         self._config = {}
54
-        self.logger=logger
56
+        self.logger = logger
55 57
         self.loadConfig(conf_file)
56 58
 
57 59
         # generate the auth
58 60
         self._auth = None
59 61
         if ('user' in self._config and len(self._config['user']) > 0 and
60
-            'apikey' in self._config and len(self._config['apikey'])) > 0:
62
+                'apikey' in self._config and len(self._config['apikey'])) > 0:
61 63
             self._auth = HTTPBasicAuth(self._config['user'], self._config['apikey'])
62 64
 
63
-    def loadConfig(self,conf_file):
65
+    def loadConfig(self, conf_file):
64 66
         with open(conf_file) as jsonFile:
65 67
             self._config = json.load(jsonFile)
66 68
 
... ...
@@ -68,7 +67,7 @@ class pullSources:
68 68
         #form url: https://dl.bintray.com/vmware/photon_sources/1.0/<filename>.
69 69
         url = '%s/%s' % (self._config['baseurl'], filename)
70 70
 
71
-        self.logger.info("Downloading: "+url)
71
+        self.logger.info("Downloading: " + url)
72 72
 
73 73
         with open(file_path, 'wb') as handle:
74 74
             response = requests.get(url, auth=self._auth, stream=True)
... ...
@@ -85,8 +84,7 @@ class pullSources:
85 85
             response.close()
86 86
         return file_path
87 87
 
88
-    def downloadFileHelper(self, package_name, package_path, package_sha1 = None):
88
+    def downloadFileHelper(self, package_name, package_path, package_sha1=None):
89 89
         self.downloadFile(package_name, package_path)
90 90
         if package_sha1 != getFileHash(package_path):
91 91
             raise Exception('Invalid sha1 for package %s' % package_name)
92
-
... ...
@@ -4,7 +4,9 @@ class RepoQueryDependency(object):
4 4
     def __init__(self, repoFile):
5 5
         self.repo_file = repoFile
6 6
     def getRequiresList(self,pkg):
7
-        cmd = "repoquery -c "+self.repo_file+" -R -q "+pkg+" | xargs repoquery -c "+self.repo_file+" --whatprovides -q | sed 's/-[0-9]/ /g' | cut -f 1 -d ' ' | sort | uniq "
7
+        cmd = ("repoquery -c " + self.repo_file + " -R -q " + pkg +
8
+               " | xargs repoquery -c " + self.repo_file +
9
+               " --whatprovides -q | sed 's/-[0-9]/ /g' | cut -f 1 -d ' ' | sort | uniq ")
8 10
         status,output = commands.getstatusoutput(cmd)
9 11
         if status == 0:
10 12
             outList = output.split('\n')
... ...
@@ -1,36 +1,36 @@
1
+import threading
2
+from queue import PriorityQueue
1 3
 import json
2 4
 import ThreadPool
3 5
 from constants import constants
4 6
 from Logger import Logger
5
-import threading
6
-from Queue import PriorityQueue
7 7
 from SpecData import SPECS
8 8
 
9 9
 class Scheduler(object):
10
-    
11
-    lock=threading.Lock()
12
-    listOfAlreadyBuiltPackages=[]
13
-    listOfPackagesToBuild=[]
14
-    listOfPackagesCurrentlyBuilding=[]
15
-    sortedList=[]
16
-    listOfPackagesNextToBuild=PriorityQueue()
17
-    listOfFailedPackages=[]
10
+
11
+    lock = threading.Lock()
12
+    listOfAlreadyBuiltPackages = []
13
+    listOfPackagesToBuild = []
14
+    listOfPackagesCurrentlyBuilding = []
15
+    sortedList = []
16
+    listOfPackagesNextToBuild = PriorityQueue()
17
+    listOfFailedPackages = []
18 18
     alldependencyGraph = {}
19 19
     dependencyGraph = {}
20 20
     priorityMap = {}
21
-    pkgWeights={}
22
-    isPriorityScheduler=1
23
-    logger=None
24
-    event=None
25
-    stopScheduling=False
26
-    
21
+    pkgWeights = {}
22
+    isPriorityScheduler = 1
23
+    logger = None
24
+    event = None
25
+    stopScheduling = False
26
+
27 27
     @staticmethod
28 28
     def setEvent(event):
29
-        Scheduler.event=event
30
-    
29
+        Scheduler.event = event
30
+
31 31
     @staticmethod
32
-    def setLog(logName,logPath):
33
-        Scheduler.logger = Logger.getLogger(logName, logPath)    
32
+    def setLog(logName, logPath):
33
+        Scheduler.logger = Logger.getLogger(logName, logPath)
34 34
 
35 35
     @staticmethod
36 36
     def getBuildRequiredPackages(package):
... ...
@@ -50,10 +50,10 @@ class Scheduler(object):
50 50
     @staticmethod
51 51
     def getDependencies(package, parentPackage, k):
52 52
 
53
-        for node in Scheduler.alldependencyGraph[package].keys():
54
-                Scheduler.getDependencies(node, package, k)
53
+        for node in list(Scheduler.alldependencyGraph[package].keys()):
54
+            Scheduler.getDependencies(node, package, k)
55 55
 
56
-        if parentPackage == None:
56
+        if parentPackage is None:
57 57
             return
58 58
         else:
59 59
             for node in Scheduler.alldependencyGraph[package].keys():
... ...
@@ -69,9 +69,9 @@ class Scheduler(object):
69 69
     def makeGraph():
70 70
         k = 3
71 71
         for package in Scheduler.sortedList:
72
-            for child_pkg in Scheduler.dependencyGraph[package].keys():
72
+            for child_pkg in list(Scheduler.dependencyGraph[package].keys()):
73 73
                 Scheduler.getDependencies(child_pkg, package, k)
74
-                for node in Scheduler.alldependencyGraph[child_pkg].keys():
74
+                for node in list(Scheduler.alldependencyGraph[child_pkg].keys()):
75 75
                     try:
76 76
                         Scheduler.dependencyGraph[package][node] = max(
77 77
                             Scheduler.dependencyGraph[package][node],
... ...
@@ -79,22 +79,22 @@ class Scheduler(object):
79 79
                     except KeyError:
80 80
                         Scheduler.dependencyGraph[package][node] = \
81 81
                             Scheduler.alldependencyGraph[child_pkg][node] * k
82
-	if constants.publishBuildDependencies:
83
-	    dependencyLists = {}
84
-	    for package in Scheduler.dependencyGraph.keys():
85
-		dependencyLists[package] = []
86
-		for dependency in Scheduler.dependencyGraph[package].keys():
87
-			dependencyLists[package].append(dependency)
88
-	    graphfile = open(str(constants.logPath) + "/BuildDependencies.json", 'w')
89
-	    graphfile.write(json.dumps(dependencyLists, sort_keys=True, indent=4))
90
-	    graphfile.close()
82
+        if constants.publishBuildDependencies:
83
+            dependencyLists = {}
84
+            for package in list(Scheduler.dependencyGraph.keys()):
85
+                dependencyLists[package] = []
86
+                for dependency in list(Scheduler.dependencyGraph[package].keys()):
87
+                    dependencyLists[package].append(dependency)
88
+            graphfile = open(str(constants.logPath) + "/BuildDependencies.json", 'w')
89
+            graphfile.write(json.dumps(dependencyLists, sort_keys=True, indent=4))
90
+            graphfile.close()
91 91
 
92 92
     @staticmethod
93 93
     def parseWeights():
94
-	Scheduler.pkgWeights.clear()
95
-	weightFile = open(constants.packageWeightsPath, 'r')
96
-	Scheduler.pkgWeights = json.load(weightFile)
97
-	weightFile.close()
94
+        Scheduler.pkgWeights.clear()
95
+        weightFile = open(constants.packageWeightsPath, 'r')
96
+        Scheduler.pkgWeights = json.load(weightFile)
97
+        weightFile.close()
98 98
 
99 99
     @staticmethod
100 100
     def getWeight(package):
... ...
@@ -103,15 +103,13 @@ class Scheduler(object):
103 103
         except KeyError:
104 104
             return 0
105 105
 
106
-
107
-
108 106
     @staticmethod
109 107
     def setPriorities():
110
-	if constants.packageWeightsPath == None:
108
+        if constants.packageWeightsPath is None:
111 109
             Scheduler.logger.info("Priority Scheduler disabled")
112 110
             Scheduler.isPriorityScheduler = 0
113
-	else:
114
-	    Scheduler.parseWeights()
111
+        else:
112
+            Scheduler.parseWeights()
115 113
 
116 114
         for package in Scheduler.sortedList:
117 115
             Scheduler.dependencyGraph[package] = {}
... ...
@@ -135,51 +133,52 @@ class Scheduler(object):
135 135
 
136 136
 
137 137
     @staticmethod
138
-    def setParams(sortedList,listOfAlreadyBuiltPackages):
139
-        Scheduler.sortedList=sortedList
140
-        Scheduler.listOfAlreadyBuiltPackages=listOfAlreadyBuiltPackages
138
+    def setParams(sortedList, listOfAlreadyBuiltPackages):
139
+        Scheduler.sortedList = sortedList
140
+        Scheduler.listOfAlreadyBuiltPackages = listOfAlreadyBuiltPackages
141 141
         for x in Scheduler.sortedList:
142 142
             if x not in Scheduler.listOfAlreadyBuiltPackages or x in constants.testForceRPMS:
143 143
                 Scheduler.listOfPackagesToBuild.append(x)
144
-        Scheduler.listOfPackagesCurrentlyBuilding=[]
145
-        Scheduler.listOfPackagesNextToBuild=[]
146
-        Scheduler.listOfFailedPackages=[]
144
+        Scheduler.listOfPackagesCurrentlyBuilding = []
145
+        Scheduler.listOfPackagesNextToBuild = []
146
+        Scheduler.listOfFailedPackages = []
147 147
         Scheduler.setPriorities()
148
-        
148
+
149 149
     @staticmethod
150 150
     def getRequiredPackages(package):
151
-        listRequiredRPMPackages=[]
151
+        listRequiredRPMPackages = []
152 152
         listRequiredRPMPackages.extend(SPECS.getData().getBuildRequiresForPackage(package))
153 153
         listRequiredRPMPackages.extend(SPECS.getData().getRequiresAllForPackage(package))
154
-        
155
-        listRequiredPackages=[]
154
+
155
+        listRequiredPackages = []
156 156
 
157 157
         for pkg in listRequiredRPMPackages:
158
-            basePkg=SPECS.getData().getSpecName(pkg)
158
+            basePkg = SPECS.getData().getSpecName(pkg)
159 159
             if basePkg not in listRequiredPackages:
160 160
                 listRequiredPackages.append(basePkg)
161
-        
161
+
162 162
         return listRequiredPackages
163
-    
163
+
164 164
     @staticmethod
165 165
     def __getListNextPackagesReadyToBuild():
166
-        listOfPackagesNextToBuild=PriorityQueue()
166
+        listOfPackagesNextToBuild = PriorityQueue()
167 167
         Scheduler.logger.info("Checking for next possible packages to build")
168 168
         for pkg in Scheduler.listOfPackagesToBuild:
169 169
             if pkg in Scheduler.listOfPackagesCurrentlyBuilding:
170 170
                 continue
171
-            listRequiredPackages=Scheduler.getRequiredPackages(pkg)
172
-            canBuild=True
173
-            Scheduler.logger.info("Required packages for "+ pkg + " are:")
171
+            listRequiredPackages = Scheduler.getRequiredPackages(pkg)
172
+            canBuild = True
173
+            Scheduler.logger.info("Required packages for " + pkg + " are:")
174 174
             Scheduler.logger.info(listRequiredPackages)
175 175
             for reqPkg in listRequiredPackages:
176 176
                 if reqPkg not in Scheduler.listOfAlreadyBuiltPackages:
177
-                    canBuild=False
178
-                    Scheduler.logger.info(reqPkg+" is not available. So we cannot build "+ pkg +" at this moment.")
177
+                    canBuild = False
178
+                    Scheduler.logger.info(reqPkg + " is not available. So we cannot build " +
179
+                                          pkg + " at this moment.")
179 180
                     break
180 181
             if canBuild:
181 182
                 listOfPackagesNextToBuild.put((-Scheduler.priorityMap[pkg], pkg))
182
-                Scheduler.logger.info("Adding "+ pkg +" to the schedule list")
183
+                Scheduler.logger.info("Adding " + pkg + " to the schedule list")
183 184
         return listOfPackagesNextToBuild
184 185
 
185 186
     @staticmethod
... ...
@@ -210,51 +209,50 @@ class Scheduler(object):
210 210
             Scheduler.lock.release()
211 211
             return None
212 212
 
213
-        packageTup=Scheduler.listOfPackagesNextToBuild.get()
213
+        packageTup = Scheduler.listOfPackagesNextToBuild.get()
214 214
 
215 215
         if packageTup[0] == 0 and Scheduler.isPriorityScheduler == 1:
216 216
             listOfPackagesNextToBuild = Scheduler.__getListNextPackagesReadyToBuild()
217 217
             Scheduler.listOfPackagesNextToBuild = listOfPackagesNextToBuild
218
-	    if Scheduler.listOfPackagesNextToBuild.qsize() == 0:
219
-            	Scheduler.logger.info("Released scheduler lock")
220
-            	Scheduler.lock.release()
221
-            	return None
218
+            if Scheduler.listOfPackagesNextToBuild.qsize() == 0:
219
+                Scheduler.logger.info("Released scheduler lock")
220
+                Scheduler.lock.release()
221
+                return None
222 222
             packageTup = Scheduler.listOfPackagesNextToBuild.get()
223 223
 
224 224
         package = packageTup[1]
225 225
         Scheduler.logger.info("PackagesNextToBuild " + str(packageTup))
226 226
         if Scheduler.listOfPackagesNextToBuild.qsize() > 0:
227
-            ThreadPool.ThreadPool.activateWorkerThreads(Scheduler.listOfPackagesNextToBuild.qsize())
227
+            ThreadPool.ThreadPool.activateWorkerThreads(
228
+                Scheduler.listOfPackagesNextToBuild.qsize())
228 229
         Scheduler.logger.info("Released scheduler lock")
229 230
         Scheduler.lock.release()
230 231
         Scheduler.listOfPackagesCurrentlyBuilding.append(package)
231 232
         Scheduler.listOfPackagesToBuild.remove(package)
232 233
         return package
233
-    
234
+
234 235
     #can be synchronized TODO
235 236
     @staticmethod
236 237
     def notifyPackageBuildCompleted(package):
237 238
         if package in Scheduler.listOfPackagesCurrentlyBuilding:
238 239
             Scheduler.listOfPackagesCurrentlyBuilding.remove(package)
239 240
             Scheduler.listOfAlreadyBuiltPackages.append(package)
240
-    
241
-        
241
+
242 242
     #can be synchronized TODO
243 243
     @staticmethod
244 244
     def notifyPackageBuildFailed(package):
245 245
         if package in Scheduler.listOfPackagesCurrentlyBuilding:
246 246
             Scheduler.listOfPackagesCurrentlyBuilding.remove(package)
247 247
             Scheduler.listOfFailedPackages.append(package)
248
-                
248
+
249 249
     @staticmethod
250 250
     def isAllPackagesBuilt():
251
-        if len(Scheduler.listOfPackagesToBuild) == 0 :
251
+        if len(Scheduler.listOfPackagesToBuild) == 0:
252 252
             return True
253 253
         return False
254
-    
254
+
255 255
     @staticmethod
256 256
     def isAnyPackagesFailedToBuild():
257 257
         if len(Scheduler.listOfFailedPackages) != 0:
258 258
             return True
259 259
         return False
260
-
... ...
@@ -1,197 +1,201 @@
1
-from SpecUtils import Specutils
2 1
 import os
3 2
 import platform
4
-from Logger import Logger
5
-from distutils.version import StrictVersion
6
-import Queue
3
+import queue
7 4
 import json
8 5
 import operator
6
+from distutils.version import StrictVersion
7
+from SpecUtils import Specutils
8
+from Logger import Logger
9 9
 from constants import constants
10 10
 
11 11
 class SerializableSpecObject(object):
12 12
     def __init__(self):
13
-        self.listPackages=[]
14
-        self.listRPMPackages=[]
15
-        self.name=""
16
-        self.version=""
17
-        self.release=""
18
-        self.buildRequirePackages=[]
19
-        self.checkBuildRequirePackages=[]
20
-        self.installRequiresAllPackages=[]
21
-        self.installRequiresPackages={}
22
-        self.specFile=""
23
-        self.listSources=[]
24
-        self.checksums={}
25
-        self.listPatches=[]
26
-        self.securityHardening=""
27
-        self.url=""
28
-        self.sourceurl=""
29
-        self.license=""
30
-        self.specDefs={}
13
+        self.listPackages = []
14
+        self.listRPMPackages = []
15
+        self.name = ""
16
+        self.version = ""
17
+        self.release = ""
18
+        self.buildRequirePackages = []
19
+        self.checkBuildRequirePackages = []
20
+        self.installRequiresAllPackages = []
21
+        self.installRequiresPackages = {}
22
+        self.specFile = ""
23
+        self.listSources = []
24
+        self.checksums = {}
25
+        self.listPatches = []
26
+        self.securityHardening = ""
27
+        self.url = ""
28
+        self.sourceurl = ""
29
+        self.license = ""
30
+        self.specDefs = {}
31 31
 
32 32
 class SerializableSpecObjectsUtils(object):
33 33
 
34
-    def __init__(self,logPath):
35
-        self.mapSerializableSpecObjects={}
36
-        self.mapPackageToSpec={}
37
-        self.logger=Logger.getLogger("Serializable Spec objects", logPath )
34
+    def __init__(self, logPath):
35
+        self.mapSerializableSpecObjects = {}
36
+        self.mapPackageToSpec = {}
37
+        self.logger = Logger.getLogger("Serializable Spec objects", logPath)
38 38
 
39
-    def readSpecsAndConvertToSerializableObjects(self,specFilesPath):
40
-        listSpecFiles=[]
41
-        self.getListSpecFiles(listSpecFiles,specFilesPath)
39
+    def readSpecsAndConvertToSerializableObjects(self, specFilesPath):
40
+        listSpecFiles = []
41
+        self.getListSpecFiles(listSpecFiles, specFilesPath)
42 42
         for specFile in listSpecFiles:
43 43
             skipUpdating = False
44
-            spec=Specutils(specFile)
45
-            specName=spec.getBasePackageName()
46
-            specObj=SerializableSpecObject()
47
-            specObj.name=specName
48
-            specObj.buildRequirePackages=spec.getBuildRequiresAllPackages()
49
-            specObj.installRequiresAllPackages=spec.getRequiresAllPackages()
50
-            specObj.checkBuildRequirePackages=spec.getCheckBuildRequiresAllPackages()
51
-            specObj.listPackages=spec.getPackageNames()
52
-            specObj.specFile=specFile
53
-            specObj.version=spec.getVersion()
54
-            specObj.release=spec.getRelease()
55
-            specObj.listSources=spec.getSourceNames()
56
-            specObj.checksums=spec.getChecksums()
57
-            specObj.specDefs=spec.getDefinitions()
58
-            specObj.listPatches=spec.getPatchNames()
59
-            specObj.securityHardening=spec.getSecurityHardeningOption()
60
-            specObj.isCheckAvailable=spec.isCheckAvailable()
61
-            specObj.license=spec.getLicense()
62
-            specObj.url=spec.getURL()
63
-            specObj.sourceurl=spec.getSourceURL()
44
+            spec = Specutils(specFile)
45
+            specName = spec.getBasePackageName()
46
+            specObj = SerializableSpecObject()
47
+            specObj.name = specName
48
+            specObj.buildRequirePackages = spec.getBuildRequiresAllPackages()
49
+            specObj.installRequiresAllPackages = spec.getRequiresAllPackages()
50
+            specObj.checkBuildRequirePackages = spec.getCheckBuildRequiresAllPackages()
51
+            specObj.listPackages = spec.getPackageNames()
52
+            specObj.specFile = specFile
53
+            specObj.version = spec.getVersion()
54
+            specObj.release = spec.getRelease()
55
+            specObj.listSources = spec.getSourceNames()
56
+            specObj.checksums = spec.getChecksums()
57
+            specObj.specDefs = spec.getDefinitions()
58
+            specObj.listPatches = spec.getPatchNames()
59
+            specObj.securityHardening = spec.getSecurityHardeningOption()
60
+            specObj.isCheckAvailable = spec.isCheckAvailable()
61
+            specObj.license = spec.getLicense()
62
+            specObj.url = spec.getURL()
63
+            specObj.sourceurl = spec.getSourceURL()
64 64
             for specPkg in specObj.listPackages:
65 65
                 if specPkg in self.mapPackageToSpec:
66 66
                     existingObj = self.mapSerializableSpecObjects[self.mapPackageToSpec[specPkg]]
67
-                    if self.compareVersions(existingObj,specObj) == 1:
67
+                    if self.compareVersions(existingObj, specObj) == 1:
68 68
                         skipUpdating = True
69
-                        break;
70
-            	specObj.installRequiresPackages[specPkg]=spec.getRequires(specPkg)
71
-                self.mapPackageToSpec[specPkg]=specName
69
+                        break
70
+                specObj.installRequiresPackages[specPkg] = spec.getRequires(specPkg)
71
+                self.mapPackageToSpec[specPkg] = specName
72 72
                 if spec.getIsRPMPackage(specPkg):
73 73
                     specObj.listRPMPackages.append(specPkg)
74 74
             if skipUpdating == False:
75
-                self.mapSerializableSpecObjects[specName]=specObj
75
+                self.mapSerializableSpecObjects[specName] = specObj
76 76
 
77
-    def getListSpecFiles(self,listSpecFiles,path):
77
+    def getListSpecFiles(self, listSpecFiles, path):
78 78
         for dirEntry in os.listdir(path):
79 79
             dirEntryPath = os.path.join(path, dirEntry)
80
-            if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".spec") and os.path.basename(dirEntryPath) not in constants.skipSpecsForArch.get(platform.machine(),[]):
80
+            if (os.path.isfile(dirEntryPath) and
81
+                    dirEntryPath.endswith(".spec") and
82
+                    os.path.basename(dirEntryPath) not in
83
+                    constants.skipSpecsForArch.get(platform.machine(), [])):
81 84
                 listSpecFiles.append(dirEntryPath)
82 85
             elif os.path.isdir(dirEntryPath):
83
-                self.getListSpecFiles(listSpecFiles,dirEntryPath)
86
+                self.getListSpecFiles(listSpecFiles, dirEntryPath)
84 87
 
85 88
     def getBuildRequiresForPackage(self, package):
86
-        specName=self.getSpecName(package)
89
+        specName = self.getSpecName(package)
87 90
         return self.mapSerializableSpecObjects[specName].buildRequirePackages
88 91
 
89 92
     def getRequiresAllForPackage(self, package):
90
-        specName=self.getSpecName(package)
93
+        specName = self.getSpecName(package)
91 94
         return self.mapSerializableSpecObjects[specName].installRequiresAllPackages
92 95
 
93 96
     def getRequiresForPackage(self, package):
94
-        specName=self.getSpecName(package)
95
-        if self.mapSerializableSpecObjects[specName].installRequiresPackages.has_key(package):
97
+        specName = self.getSpecName(package)
98
+        if package in self.mapSerializableSpecObjects[specName].installRequiresPackages:
96 99
             return self.mapSerializableSpecObjects[specName].installRequiresPackages[package]
97 100
         return None
98 101
 
99 102
     def getCheckBuildRequiresForPackage(self, package):
100
-        specName=self.getSpecName(package)
103
+        specName = self.getSpecName(package)
101 104
         return self.mapSerializableSpecObjects[specName].checkBuildRequirePackages
102 105
 
103 106
     def getRelease(self, package):
104
-        specName=self.getSpecName(package)
107
+        specName = self.getSpecName(package)
105 108
         return self.mapSerializableSpecObjects[specName].release
106 109
 
107 110
     def getVersion(self, package):
108
-        specName=self.getSpecName(package)
111
+        specName = self.getSpecName(package)
109 112
         return self.mapSerializableSpecObjects[specName].version
110 113
 
111 114
     def getSpecFile(self, package):
112
-        specName=self.getSpecName(package)
115
+        specName = self.getSpecName(package)
113 116
         return self.mapSerializableSpecObjects[specName].specFile
114 117
 
115 118
     def getPatches(self, package):
116
-        specName=self.getSpecName(package)
119
+        specName = self.getSpecName(package)
117 120
         return self.mapSerializableSpecObjects[specName].listPatches
118 121
 
119 122
     def getSources(self, package):
120
-        specName=self.getSpecName(package)
123
+        specName = self.getSpecName(package)
121 124
         return self.mapSerializableSpecObjects[specName].listSources
122 125
 
123 126
     def getSHA1(self, package, source):
124
-        specName=self.getSpecName(package)
127
+        specName = self.getSpecName(package)
125 128
         return self.mapSerializableSpecObjects[specName].checksums.get(source)
126 129
 
127 130
     def getPackages(self, package):
128
-        specName=self.getSpecName(package)
131
+        specName = self.getSpecName(package)
129 132
         return self.mapSerializableSpecObjects[specName].listPackages
130 133
 
131 134
     def getRPMPackages(self, package):
132
-        specName=self.getSpecName(package)
135
+        specName = self.getSpecName(package)
133 136
         return self.mapSerializableSpecObjects[specName].listRPMPackages
134 137
 
135 138
     def getReleaseNum(self, releaseVal):
136
-	id = releaseVal.find("%")
137
-	if (id != -1):
138
-	    return releaseVal[0:id]
139
-	else:
140
-	    return releaseVal
139
+        id = releaseVal.find("%")
140
+        if id != -1:
141
+            return releaseVal[0:id]
142
+        else:
143
+            return releaseVal
141 144
 
142 145
     def compareVersions(self, existingObj, newObject):
143
-	if StrictVersion(existingObj.version) > StrictVersion(newObject.version):
144
-	    return 1;
145
-	elif StrictVersion(existingObj.version) < StrictVersion(newObject.version):
146
-	    return -1
147
-	else:
148
-	    if int(self.getReleaseNum(existingObj.release)) > int(self.getReleaseNum(newObject.release)):
149
-		return 1;
150
-	    else:
151
-	     	return -1;
152
-
153
-    def getSpecName(self,package):
154
-        if self.mapPackageToSpec.has_key(package):
155
-            specName=self.mapPackageToSpec[package]
156
-            if self.mapSerializableSpecObjects.has_key(specName):
146
+        if StrictVersion(existingObj.version) > StrictVersion(newObject.version):
147
+            return 1
148
+        elif StrictVersion(existingObj.version) < StrictVersion(newObject.version):
149
+            return -1
150
+        else:
151
+            if (int(self.getReleaseNum(existingObj.release)) >
152
+                    int(self.getReleaseNum(newObject.release))):
153
+                return 1
154
+            else:
155
+                return -1
156
+
157
+    def getSpecName(self, package):
158
+        if package in self.mapPackageToSpec:
159
+            specName = self.mapPackageToSpec[package]
160
+            if specName in self.mapSerializableSpecObjects:
157 161
                 return specName
158
-        self.logger.error("Could not able to find "+package+" package from specs")
159
-        raise Exception("Invalid package:"+package)
162
+        self.logger.error("Could not able to find " + package + " package from specs")
163
+        raise Exception("Invalid package:" + package)
160 164
 
161
-    def isRPMPackage(self,package):
162
-        if self.mapPackageToSpec.has_key(package):
163
-            specName=self.mapPackageToSpec[package]
164
-            if self.mapSerializableSpecObjects.has_key(specName):
165
+    def isRPMPackage(self, package):
166
+        if package in self.mapPackageToSpec:
167
+            specName = self.mapPackageToSpec[package]
168
+            if specName in self.mapSerializableSpecObjects:
165 169
                 return True
166 170
         return False
167 171
 
168 172
     def getSecurityHardeningOption(self, package):
169
-        specName=self.getSpecName(package)
173
+        specName = self.getSpecName(package)
170 174
         return self.mapSerializableSpecObjects[specName].securityHardening
171 175
 
172 176
     def isCheckAvailable(self, package):
173
-        specName=self.getSpecName(package)
177
+        specName = self.getSpecName(package)
174 178
         return self.mapSerializableSpecObjects[specName].isCheckAvailable
175 179
 
176 180
     def getListPackages(self):
177
-        return self.mapSerializableSpecObjects.keys()
181
+        return list(self.mapSerializableSpecObjects.keys())
178 182
 
179 183
     def getURL(self, package):
180
-        specName=self.getSpecName(package)
184
+        specName = self.getSpecName(package)
181 185
         return self.mapSerializableSpecObjects[specName].url
182 186
 
183 187
     def getSourceURL(self, package):
184
-        specName=self.getSpecName(package)
188
+        specName = self.getSpecName(package)
185 189
         return self.mapSerializableSpecObjects[specName].sourceurl
186 190
 
187 191
     def getLicense(self, package):
188
-        specName=self.getSpecName(package)
192
+        specName = self.getSpecName(package)
189 193
         return self.mapSerializableSpecObjects[specName].license
190 194
 
191 195
     def printAllObjects(self):
192
-        listSpecs=self.mapSerializableSpecObjects.keys()
196
+        listSpecs = self.mapSerializableSpecObjects.keys()
193 197
         for spec in listSpecs:
194
-            specObj=self.mapSerializableSpecObjects[spec]
198
+            specObj = self.mapSerializableSpecObjects[spec]
195 199
             self.logger.info("-----------Spec:"+specObj.name+"--------------")
196 200
             self.logger.info("Version:"+specObj.version)
197 201
             self.logger.info("Release:"+specObj.release)
... ...
@@ -226,13 +230,13 @@ class SPECS(object):
226 226
     @staticmethod
227 227
     def getData():
228 228
         """ Static access method. """
229
-        if SPECS.__instance == None:
229
+        if SPECS.__instance is None:
230 230
             SPECS()
231 231
         return SPECS.__instance.specData
232 232
 
233 233
     def __init__(self):
234 234
         """ Virtually private constructor. """
235
-        if SPECS.__instance != None:
235
+        if SPECS.__instance is not None:
236 236
             raise Exception("This class is a singleton!")
237 237
         else:
238 238
             SPECS.__instance = self
... ...
@@ -241,26 +245,30 @@ class SPECS(object):
241 241
     def initialize(self):
242 242
         # Preparse some files
243 243
         #adding openjre8 version rpm macro
244
-        if (platform.machine() == "x86_64"):
244
+        if platform.machine() == "x86_64":
245 245
             spec = Specutils(constants.specPath + "/openjdk8/openjdk8.spec")
246
-            java8version = spec.getVersion()
247
-            constants.addMacro("JAVA8_VERSION",java8version)
246
+        else:
247
+            spec = Specutils(constants.specPath + "/openjdk8/openjdk8_aarch64.spec")
248
+        java8version = spec.getVersion()
249
+        constants.addMacro("JAVA8_VERSION", java8version)
248 250
 
249 251
         #adding kernelversion rpm macro
250 252
         spec = Specutils(constants.specPath + "/linux/linux.spec")
251 253
         kernelversion = spec.getVersion()
252
-        constants.addMacro("KERNEL_VERSION",kernelversion)
254
+        constants.addMacro("KERNEL_VERSION", kernelversion)
253 255
 
254 256
         #adding kernelrelease rpm macro
255 257
         kernelrelease = spec.getRelease()
256
-        constants.addMacro("KERNEL_RELEASE",kernelrelease)
258
+        constants.addMacro("KERNEL_RELEASE", kernelrelease)
257 259
 
258 260
         #adding kernelsubrelease rpm macro
259
-        a,b,c = kernelversion.split(".")
260
-        kernelsubrelease = '%02d%02d%03d%03d' % (int(a),int(b),int(c),int(kernelrelease.split('.')[0]))
261
+        a, b, c = kernelversion.split(".")
262
+        kernelsubrelease = ('%02d%02d%03d%03d' % (int(a),
263
+                                                  int(b), int(c),
264
+                                                  int(kernelrelease.split('.')[0])))
261 265
         if kernelsubrelease:
262
-            kernelsubrelease = "."+kernelsubrelease
263
-            constants.addMacro("kernelsubrelease",kernelsubrelease)
266
+            kernelsubrelease = "." + kernelsubrelease
267
+            constants.addMacro("kernelsubrelease", kernelsubrelease)
264 268
 
265 269
         # Full parsing
266 270
         self.specData = SerializableSpecObjectsUtils(constants.logPath)
... ...
@@ -271,8 +279,8 @@ class SPECS(object):
271 271
 class SerializedSpecObjects(object):
272 272
 
273 273
     def __init__(self, inputDataDir, stageDir):
274
-        self.mapSerializableSpecObjects={}
275
-        self.mapPackageToSpec={}
274
+        self.mapSerializableSpecObjects = {}
275
+        self.mapPackageToSpec = {}
276 276
         self.jsonFilesOutPath = stageDir + "/common/data/"
277 277
         self.inputDataDir = inputDataDir
278 278
 
... ...
@@ -281,11 +289,11 @@ class SerializedSpecObjects(object):
281 281
             specPkg = depQue.get()
282 282
             specName = self.getSpecName(specPkg)
283 283
             if specName is None:
284
-                print specPkg + " is missing"
284
+                print(specPkg + " is missing")
285 285
             specObj = self.mapSerializableSpecObjects[specName]
286 286
             for depPkg in specObj.installRequiresPackages[specPkg]:
287
-                if True == allDeps.has_key(depPkg):
288
-                    if(allDeps[depPkg] < allDeps[specPkg] + 1):
287
+                if depPkg in allDeps:
288
+                    if allDeps[depPkg] < allDeps[specPkg] + 1:
289 289
                         allDeps[depPkg] = allDeps[specPkg] + 1
290 290
                         parent[depPkg] = specPkg
291 291
                         self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
... ...
@@ -298,23 +306,23 @@ class SerializedSpecObjects(object):
298 298
         while not depQue.empty():
299 299
             specPkg = depQue.get()
300 300
             specName = self.getSpecName(specPkg)
301
-            spec=Specutils(self.getSpecFile(specPkg))
302
-            RPMName=spec.getRPMName(specPkg)
303
-            debuginfoRPMName=spec.getDebuginfoRPMName(specPkg)
301
+            spec = Specutils(self.getSpecFile(specPkg))
302
+            RPMName = spec.getRPMName(specPkg)
303
+            debuginfoRPMName = spec.getDebuginfoRPMName(specPkg)
304 304
             whoBuildDepSet.add(RPMName)
305 305
             whoBuildDepSet.add(debuginfoRPMName)
306 306
             if specName is None:
307
-                print specPkg + " is missing"
308
-            if not whoBuildDeps.has_key(specPkg):
307
+                print(specPkg + " is missing")
308
+            if specPkg not in whoBuildDeps:
309 309
                 continue
310 310
             for depPkg in whoBuildDeps[specPkg]:
311 311
                 depQue.put(depPkg)
312 312
 
313
-    def printTree(self, allDeps, children, curParent , depth):
314
-        if (children.has_key(curParent)):
313
+    def printTree(self, allDeps, children, curParent, depth):
314
+        if curParent in children:
315 315
             for child in children[curParent]:
316
-                print "\t" * depth, child
317
-                self.printTree(allDeps, children, child, depth+1)
316
+                print("\t" * depth + child)
317
+                self.printTree(allDeps, children, child, depth + 1)
318 318
 
319 319
     def get_all_package_names(self, jsonFilePath):
320 320
         base_path = os.path.dirname(jsonFilePath)
... ...
@@ -329,100 +337,106 @@ class SerializedSpecObjects(object):
329 329
         specObj = self.mapSerializableSpecObjects[specName]
330 330
         for depPkg in specObj.installRequiresPackages[inPkg]:
331 331
             # ignore circular deps within single spec file
332
-            if (specObj.installRequiresPackages.has_key(depPkg) and inPkg in specObj.installRequiresPackages[depPkg] and self.getSpecName(depPkg) == specName):
332
+            if (depPkg in specObj.installRequiresPackages and
333
+                    inPkg in specObj.installRequiresPackages[depPkg] and
334
+                    self.getSpecName(depPkg) == specName):
333 335
                 continue
334
-            if (allDeps.has_key(depPkg) and allDeps[depPkg] < level + 1):
336
+            if depPkg in allDeps and allDeps[depPkg] < level + 1:
335 337
                 allDeps[depPkg] = level + 1
336 338
                 parent[depPkg] = inPkg
337 339
                 self.updateLevels(allDeps, depPkg, parent, allDeps[depPkg])
338 340
 
339
-    def readSpecsAndConvertToSerializableObjects(self, specFilesPath, inputType, inputValue, displayOption):
341
+    def readSpecsAndConvertToSerializableObjects(self, specFilesPath, inputType,
342
+                                                 inputValue, displayOption):
340 343
         children = {}
341
-        listSpecFiles=[]
342
-        whoNeedsList=[]
343
-        whoBuildDepSet= set()
344
-        independentRPMS=[] # list of all RPMS not built from photon and that must be blindly copied.
344
+        listSpecFiles = []
345
+        whoNeedsList = []
346
+        whoBuildDepSet = set()
347
+        # list of all RPMS not built from photon and that must be blindly copied.
348
+        independentRPMS = []
345 349
         whoBuildDeps = {}
346
-        allDeps={}
347
-        parent={}
348
-        depQue = Queue.Queue()
350
+        allDeps = {}
351
+        parent = {}
352
+        depQue = queue.Queue()
349 353
         packageFound = False
350
-        self.getListSpecFiles(listSpecFiles,specFilesPath)
354
+        self.getListSpecFiles(listSpecFiles, specFilesPath)
351 355
         for specFile in listSpecFiles:
352
-            spec=Specutils(specFile)
353
-            specName=spec.getBasePackageName()
354
-            specObj=SerializableSpecObject()
355
-            specObj.name=specName
356
-            specObj.buildRequirePackages=spec.getBuildRequiresAllPackages()
357
-            specObj.installRequiresAllPackages=spec.getRequiresAllPackages()
358
-            specObj.listPackages=spec.getPackageNames()
359
-            specObj.specFile=specFile
360
-            specObj.version=spec.getVersion()
361
-            specObj.release=spec.getRelease()
362
-            specObj.listSources=spec.getSourceNames()
363
-            specObj.listPatches=spec.getPatchNames()
364
-            specObj.securityHardening=spec.getSecurityHardeningOption()
356
+            spec = Specutils(specFile)
357
+            specName = spec.getBasePackageName()
358
+            specObj = SerializableSpecObject()
359
+            specObj.name = specName
360
+            specObj.buildRequirePackages = spec.getBuildRequiresAllPackages()
361
+            specObj.installRequiresAllPackages = spec.getRequiresAllPackages()
362
+            specObj.listPackages = spec.getPackageNames()
363
+            specObj.specFile = specFile
364
+            specObj.version = spec.getVersion()
365
+            specObj.release = spec.getRelease()
366
+            specObj.listSources = spec.getSourceNames()
367
+            specObj.listPatches = spec.getPatchNames()
368
+            specObj.securityHardening = spec.getSecurityHardeningOption()
365 369
             for specPkg in specObj.listPackages:
366
-                specObj.installRequiresPackages[specPkg]=spec.getRequires(specPkg)
367
-                if (inputType == "pkg" and inputValue == specPkg): # all the first level dependencies to a dictionary and queue
370
+                specObj.installRequiresPackages[specPkg] = spec.getRequires(specPkg)
371
+                if inputType == "pkg" and inputValue == specPkg:
372
+                # all the first level dependencies to a dictionary and queue
368 373
                     packageFound = True
369 374
                     for depPkg in specObj.installRequiresPackages[specPkg]:
370
-                        if False == allDeps.has_key(depPkg):
375
+                        if depPkg not in allDeps:
371 376
                             allDeps[depPkg] = 0
372 377
                             parent[depPkg] = ""
373 378
                             depQue.put(depPkg)
374
-                elif (inputType == "who-needs" and (inputValue in specObj.installRequiresPackages[specPkg])):
379
+                elif (inputType == "who-needs" and
380
+                      inputValue in specObj.installRequiresPackages[specPkg]):
375 381
                     whoNeedsList.append(specPkg)
376
-                elif (inputType == "who-needs-build"):
382
+                elif inputType == "who-needs-build":
377 383
                     for bdrq in specObj.buildRequirePackages:
378
-                        if (whoBuildDeps.has_key(bdrq)):
384
+                        if bdrq in whoBuildDeps:
379 385
                             whoBuildDeps[bdrq].add(specPkg)
380 386
                         else:
381 387
                             whoBuildDeps[bdrq] = set()
382 388
                             whoBuildDeps[bdrq].add(specPkg)
383
-                    if(inputValue == specPkg):
389
+                    if inputValue == specPkg:
384 390
                         packageFound = True
385 391
                         for depPkg in specObj.listPackages:
386 392
                             depQue.put(depPkg)
387 393
 
388
-                self.mapPackageToSpec[specPkg]=specName
389
-            self.mapSerializableSpecObjects[specName]=specObj
394
+                self.mapPackageToSpec[specPkg] = specName
395
+            self.mapSerializableSpecObjects[specName] = specObj
390 396
 
391 397
         # Generate dependencies for individual packages
392
-        if (inputType == "pkg"):
393
-            if (packageFound == True):
398
+        if inputType == "pkg":
399
+            if packageFound == True:
394 400
                 self.findTotalRequires(allDeps, depQue, parent, displayOption)
395 401
             else:
396
-                print "No spec file builds a package named",inputValue
402
+                print("No spec file builds a package named {}".format(inputValue))
397 403
                 return
398 404
 
399 405
         # Generate dependencies for all packages in the given JSON input file
400
-        elif (inputType == "json"):
401
-            filePath = self.inputDataDir +"/"+ inputValue
406
+        elif inputType == "json":
407
+            filePath = self.inputDataDir + "/" + inputValue
402 408
             data = self.get_all_package_names(filePath)
403 409
             for pkg in data:
404
-                if False == allDeps.has_key(pkg):
410
+                if pkg not in allDeps:
405 411
                     spName = self.getSpecName(pkg)
406
-                    if(spName != None):
412
+                    if spName is not None:
407 413
                         allDeps[pkg] = 0
408 414
                         parent[pkg] = ""
409 415
                         depQue.put(pkg)
410 416
                         self.findTotalRequires(allDeps, depQue, parent, displayOption)
411 417
                     else:
412
-                        independentRPMS.append(pkg);
418
+                        independentRPMS.append(pkg)
413 419
 
414 420
         #Generating the list of packages that requires the given input package at install time
415
-        elif (inputType == "who-needs"):
416
-            print whoNeedsList
421
+        elif inputType == "who-needs":
422
+            print(whoNeedsList)
417 423
             return
418 424
 
419 425
         #Generating the list of packages that the modified package will affect at build time
420
-        elif (inputType == "who-needs-build"):
421
-            if (packageFound == True):
426
+        elif inputType == "who-needs-build":
427
+            if packageFound == True:
422 428
                 self.findTotalWhoNeedsToBuild(depQue, whoBuildDeps, whoBuildDepSet, displayOption)
423
-                print whoBuildDepSet
429
+                print(whoBuildDepSet)
424 430
             else:
425
-                print "No spec file builds a package named", inputValue
431
+                print("No spec file builds a package named {}".format(inputValue))
426 432
             return
427 433
 
428 434
         # construct the sorted list of all packages (sorted by dependency)
... ...
@@ -432,100 +446,105 @@ class SerializedSpecObjects(object):
432 432
         sortedList.extend(independentRPMS)
433 433
 
434 434
         # construct all children nodes
435
-        if (displayOption == "tree"):
435
+        if displayOption == "tree":
436 436
             for k, v in parent.iteritems():
437 437
                 children.setdefault(v, []).append(k)
438
-            if(inputType == "json"):
439
-                print "Dependency Mappings for", inputValue, ":", "\n----------------------------------------------------",children
440
-                print "----------------------------------------------------"
441
-            if (children.has_key("")):
438
+            if inputType == "json":
439
+                print("Dependency Mappings for {}".format(inputValue) + " :")
440
+                print("-" * 52 + " {}".format(children))
441
+                print("-" * 52)
442
+            if "" in children:
442 443
                 for child in children[""]:
443
-                    print child
444
+                    print(child)
444 445
                     self.printTree(allDeps, children, child, 1)
445 446
                 for pkg in independentRPMS:
446
-                    print pkg
447
-                print "******************",len(sortedList), "packages in total ******************"
447
+                    print(pkg)
448
+                print("*" * 18 + " {} ".format(len(sortedList)) +
449
+                      "packages in total " + "*" * 18)
448 450
             else:
449
-                if (inputType == "pkg" and len(children) > 0):
450
-                    print "cyclic dependency detected, mappings: \n",children
451
+                if inputType == "pkg" and len(children) > 0:
452
+                    print("cyclic dependency detected, mappings:")
453
+                    print(children)
451 454
 
452 455
         # To display a flat list of all packages
453
-        elif(displayOption == "list"):
454
-            print sortedList
456
+        elif displayOption == "list":
457
+            print(sortedList)
455 458
 
456 459
         # To generate a new JSON file based on given input json file
457
-        elif(displayOption == "json" and inputType == "json"):
460
+        elif displayOption == "json" and inputType == "json":
458 461
             d = {}
459 462
             d['packages'] = sortedList
460 463
             outFilePath = self.jsonFilesOutPath + inputValue
461
-            with open(outFilePath, 'wb') as outfile:
464
+            with open(outFilePath, 'w') as outfile:
462 465
                 json.dump(d, outfile)
463 466
         return sortedList
464 467
 
465
-    def getListSpecFiles(self,listSpecFiles,path):
468
+    def getListSpecFiles(self, listSpecFiles, path):
466 469
         for dirEntry in os.listdir(path):
467 470
             dirEntryPath = os.path.join(path, dirEntry)
468
-            if os.path.isfile(dirEntryPath) and dirEntryPath.endswith(".spec") and os.path.basename(dirEntryPath) not in constants.skipSpecsForArch.get(platform.machine(),[]):
471
+            if (os.path.isfile(dirEntryPath) and
472
+                    dirEntryPath.endswith(".spec") and
473
+                    os.path.basename(dirEntryPath) not in
474
+                    constants.skipSpecsForArch.get(platform.machine(), [])):
469 475
                 listSpecFiles.append(dirEntryPath)
470 476
             elif os.path.isdir(dirEntryPath):
471
-                self.getListSpecFiles(listSpecFiles,dirEntryPath)
477
+                self.getListSpecFiles(listSpecFiles, dirEntryPath)
472 478
 
473 479
     def getBuildRequiresForPackage(self, package):
474
-        specName=self.getSpecName(package)
480
+        specName = self.getSpecName(package)
475 481
         return self.mapSerializableSpecObjects[specName].buildRequirePackages
476 482
 
477 483
     def getRequiresForPackage(self, package):
478
-        specName=self.getSpecName(package)
479
-        if self.mapSerializableSpecObjects[specName].installRequiresPackages.has_key(package):
484
+        specName = self.getSpecName(package)
485
+        if package in self.mapSerializableSpecObjects[specName].installRequiresPackages:
480 486
             return self.mapSerializableSpecObjects[specName].installRequiresPackages[package]
481 487
         return None
482 488
 
483 489
     def getRelease(self, package):
484
-        specName=self.getSpecName(package)
490
+        specName = self.getSpecName(package)
485 491
         return self.mapSerializableSpecObjects[specName].release
486 492
 
487 493
     def getVersion(self, package):
488
-        specName=self.getSpecName(package)
494
+        specName = self.getSpecName(package)
489 495
         return self.mapSerializableSpecObjects[specName].version
490 496
 
491 497
     def getSpecFile(self, package):
492
-        specName=self.getSpecName(package)
498
+        specName = self.getSpecName(package)
493 499
         return self.mapSerializableSpecObjects[specName].specFile
494 500
 
495 501
     def getPatches(self, package):
496
-        specName=self.getSpecName(package)
502
+        specName = self.getSpecName(package)
497 503
         return self.mapSerializableSpecObjects[specName].listPatches
498 504
 
499 505
     def getSources(self, package):
500
-        specName=self.getSpecName(package)
506
+        specName = self.getSpecName(package)
501 507
         return self.mapSerializableSpecObjects[specName].listSources
502 508
 
503 509
     def getPackages(self, package):
504
-        specName=self.getSpecName(package)
510
+        specName = self.getSpecName(package)
505 511
         return self.mapSerializableSpecObjects[specName].listPackages
506 512
 
507
-    def getSpecName(self,package):
508
-        if self.mapPackageToSpec.has_key(package):
509
-            specName=self.mapPackageToSpec[package]
510
-            if self.mapSerializableSpecObjects.has_key(specName):
513
+    def getSpecName(self, package):
514
+        if package in self.mapPackageToSpec:
515
+            specName = self.mapPackageToSpec[package]
516
+            if specName in self.mapSerializableSpecObjects:
511 517
                 return specName
512 518
             else:
513
-                print "SpecDeps: Could not able to find " + package + " package from specs"
519
+                print("SpecDeps: Could not able to find " + package + " package from specs")
514 520
                 raise Exception("Invalid package:" + package)
515 521
         else:
516 522
             return None
517 523
 
518
-    def isRPMPackage(self,package):
519
-        if self.mapPackageToSpec.has_key(package):
520
-            specName=self.mapPackageToSpec[package]
521
-        if self.mapSerializableSpecObjects.has_key(specName):
524
+    def isRPMPackage(self, package):
525
+        if package in self.mapPackageToSpec:
526
+            specName = self.mapPackageToSpec[package]
527
+        if specName in self.mapSerializableSpecObjects:
522 528
             return True
523 529
         return False
524 530
 
525 531
     def getSecurityHardeningOption(self, package):
526
-        specName=self.getSpecName(package)
532
+        specName = self.getSpecName(package)
527 533
         return self.mapSerializableSpecObjects[specName].securityHardening
528 534
 
529 535
     def getSpecDetails(self, name):
530
-        print self.mapSerializableSpecObjects[name].installRequiresAllPackages
531
-
536
+        print(self.mapSerializableSpecObjects[name].installRequiresAllPackages)
... ...
@@ -1,14 +1,14 @@
1
-#! /usr/bin/python2
1
+#! /usr/bin/python3
2 2
 #
3 3
 #    Copyright (C) 2015 vmware inc.
4 4
 #
5 5
 #    Author: Harish Udaiya Kumar <hudaiyakumar@vmware.com>
6
-from SpecUtils import Specutils
7
-from SpecData import SerializableSpecObject
8
-from SpecData import SerializedSpecObjects
9 6
 import sys
10 7
 import os
11 8
 from optparse import OptionParser
9
+from SpecUtils import Specutils
10
+from SpecData import SerializableSpecObject
11
+from SpecData import SerializedSpecObjects
12 12
 from jsonwrapper import JsonWrapper
13 13
 
14 14
 DEFAULT_INPUT_TYPE = "pkg"
... ...
@@ -16,42 +16,56 @@ DEFAULT_DISPLAY_OPTION = "tree"
16 16
 SPEC_FILE_DIR = "../../SPECS"
17 17
 LOG_FILE_DIR = "../../stage/LOGS"
18 18
 
19
-
20 19
 def main():
21
-    usage = os.path.basename(__file__) + "--input-type=[json/pkg/who-needs/who-needs-build] --pkg=[pkg_name] --file=<JSON_FILE_NAME> --disp=[tree/list/json]"
20
+    usage = (os.path.basename(__file__) +
21
+             "--input-type=[json/pkg/who-needs/who-needs-build] " +
22
+             "--pkg=[pkg_name] --file=<JSON_FILE_NAME> --disp=[tree/list/json]")
22 23
     parser = OptionParser(usage)
23 24
     parser.add_option("-i", "--input-type", dest="input_type", default=DEFAULT_INPUT_TYPE)
24 25
     parser.add_option("-p", "--pkg", dest="pkg")
25 26
     parser.add_option("-f", "--file", dest="json_file", default="packages_minimal.json")
26
-    parser.add_option("-d", "--disp", dest="display_option", default=DEFAULT_DISPLAY_OPTION) 
27
+    parser.add_option("-d", "--disp", dest="display_option", default=DEFAULT_DISPLAY_OPTION)
27 28
     parser.add_option("-s", "--spec-dir", dest="spec_dir", default=SPEC_FILE_DIR)
28 29
     parser.add_option("-t", "--stage-dir", dest="stage_dir", default="../../stage")
29
-    parser.add_option("-a", "--input-data-dir", dest="input_data_dir", default="../../common/data/")
30
-    (options,  args) = parser.parse_args() 
30
+    parser.add_option("-a", "--input-data-dir", dest="input_data_dir",
31
+                      default="../../common/data/")
32
+    (options,  args) = parser.parse_args()
31 33
 
32
-    if(False == options.input_data_dir.endswith('/')):
34
+    if not options.input_data_dir.endswith('/'):
33 35
         options.input_data_dir += '/'
36
+    try:
37
+        specDeps = SerializedSpecObjects(options.input_data_dir, options.stage_dir)
38
+        displayOption = options.display_option
39
+        abs_path = os.path.abspath(__file__)
40
+        dir_name = os.path.dirname(abs_path)
41
+        os.chdir(dir_name)
34 42
 
35
-    specDeps = SerializedSpecObjects(options.input_data_dir, options.stage_dir)
36
-    displayOption = options.display_option
37
-    abs_path = os.path.abspath(__file__)
38
-    dir_name = os.path.dirname(abs_path)
39
-    os.chdir(dir_name)
40
-
41
-    # To display/print package dependencies on console
42
-    if(options.input_type == "pkg" or options.input_type == "who-needs" or options.input_type == "who-needs-build"):
43
-        targetName = options.pkg
44
-        specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, targetName, displayOption)
45
-    elif(options.input_type == "json"):# Generate the expanded package dependencies json file based on package_list_file 
46
-        json_wrapper_option_list = JsonWrapper(options.json_file)
47
-        option_list_json = json_wrapper_option_list.read()
48
-        options_sorted = option_list_json.items()
49
-        for install_option in options_sorted:
50
-            if displayOption == "tree" and install_option[1]["title"] == "ISO Packages":
51
-                continue
52
-            specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, install_option[1]["file"], displayOption)
43
+        # To display/print package dependencies on console
44
+        if(options.input_type == "pkg" or
45
+            options.input_type == "who-needs" or
46
+            options.input_type == "who-needs-build"):
47
+            targetName = options.pkg
48
+            specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir,
49
+                                                              options.input_type,
50
+                                                              targetName, displayOption)
51
+        elif(options.input_type == "json"):
52
+        # Generate the expanded package dependencies json file based on package_list_file
53
+            json_wrapper_option_list = JsonWrapper(options.json_file)
54
+            option_list_json = json_wrapper_option_list.read()
55
+            options_sorted = option_list_json.items()
56
+            for install_option in options_sorted:
57
+                if displayOption == "tree" and install_option[1]["title"] == "ISO Packages":
58
+                    continue
59
+                specDeps.readSpecsAndConvertToSerializableObjects(
60
+                    options.spec_dir,
61
+                    options.input_type, install_option[1]["file"],
62
+                    displayOption)
63
+    except Exception as error:
64
+        sys.stderr.write("Failed to generate dependency lists from spec files\n")
65
+        sys.exit(1)
53 66
 
67
+    sys.stderr.write("Successfully generated dependency lists from spec files\n")
54 68
     sys.exit(0)
55 69
 
56
-if __name__=="__main__":
70
+if __name__ == "__main__":
57 71
     main()
... ...
@@ -7,34 +7,34 @@ from constants import constants
7 7
 class SpecParser(object):
8 8
 
9 9
     def __init__(self):
10
-        self.cleanMacro=rpmMacro().setName("clean")
11
-        self.prepMacro=rpmMacro().setName("prep")
12
-        self.buildMacro=rpmMacro().setName("build")
13
-        self.installMacro=rpmMacro().setName("install")
14
-        self.changelogMacro=rpmMacro().setName("changelog")
15
-        self.checkMacro=rpmMacro().setName("check")
16
-        self.packages={}
17
-        self.specAdditionalContent=""
18
-        self.globalSecurityHardening=""
19
-        self.defs={}
10
+        self.cleanMacro = rpmMacro().setName("clean")
11
+        self.prepMacro = rpmMacro().setName("prep")
12
+        self.buildMacro = rpmMacro().setName("build")
13
+        self.installMacro = rpmMacro().setName("install")
14
+        self.changelogMacro = rpmMacro().setName("changelog")
15
+        self.checkMacro = rpmMacro().setName("check")
16
+        self.packages = {}
17
+        self.specAdditionalContent = ""
18
+        self.globalSecurityHardening = ""
19
+        self.defs = {}
20 20
         self.conditionalCheckMacroEnabled = False
21 21
         self.macro_pattern = re.compile(r'%{(\S+?)\}')
22 22
 
23 23
 
24
-    def readPkgNameFromPackageMacro(self,data,basePkgName=None):
25
-        data=" ".join(data.split())
26
-        pkgHeaderName=data.split(" ")
24
+    def readPkgNameFromPackageMacro(self, data, basePkgName=None):
25
+        data = " ".join(data.split())
26
+        pkgHeaderName = data.split(" ")
27 27
         lenpkgHeaderName = len(pkgHeaderName)
28
-        i=1;
28
+        i = 1
29 29
         pkgName = None
30
-        while i<lenpkgHeaderName:
30
+        while i < lenpkgHeaderName:
31 31
             if pkgHeaderName[i] == "-n" and i+1 < lenpkgHeaderName:
32 32
                 pkgName = pkgHeaderName[i+1]
33 33
                 break
34 34
             if pkgHeaderName[i].startswith('-'):
35 35
                 i = i + 2
36 36
             else:
37
-                pkgName = basePkgName+"-"+pkgHeaderName[i]
37
+                pkgName = basePkgName + "-" + pkgHeaderName[i]
38 38
                 break
39 39
         if pkgName is None:
40 40
             return True, basePkgName
... ...
@@ -49,7 +49,7 @@ class SpecParser(object):
49 49
 
50 50
         """
51 51
         def _is_conditional(macro):
52
-            return macro.startswith("?") or macro.startswith("!")
52
+            return macro.startswith(("?", "!"))
53 53
 
54 54
         def _test_conditional(macro):
55 55
             if macro[0] == "?":
... ...
@@ -94,68 +94,68 @@ class SpecParser(object):
94 94
         #User macros
95 95
         for macroName in constants.userDefinedMacros.keys():
96 96
             value = constants.userDefinedMacros[macroName]
97
-            macro="%"+macroName
97
+            macro = "%" + macroName
98 98
             if string.find(macro) != -1:
99
-                string = string.replace(macro,value)
99
+                string = string.replace(macro, value)
100 100
         #Spec definitions
101 101
         for macroName in self.defs.keys():
102 102
             value = self.defs[macroName]
103
-            macro="%"+macroName
103
+            macro = "%" + macroName
104 104
             if string.find(macro) != -1:
105
-                string = string.replace(macro,value)
105
+                string = string.replace(macro, value)
106 106
         return re.sub(self.macro_pattern, _macro_repl, string)
107 107
 
108
-    def parseSpecFile(self,specfile):
108
+    def parseSpecFile(self, specfile):
109 109
         self.createDefaultPackage()
110
-        currentPkg="default"
110
+        currentPkg = "default"
111 111
         specFile = open(specfile)
112 112
         lines = specFile.readlines()
113
-        totalLines=len(lines)
114
-        i=0
113
+        totalLines = len(lines)
114
+        i = 0
115 115
         while i < totalLines:
116 116
             line = lines[i].strip()
117 117
             if self.isConditionalArch(line):
118
-                if (platform.machine() != self.readConditionalArch(line)):
118
+                if platform.machine() != self.readConditionalArch(line):
119 119
                     # skip conditional body
120 120
                     deep = 1
121
-                    while (i < totalLines and deep != 0):
122
-                        i=i+1
121
+                    while i < totalLines and deep != 0:
122
+                        i = i + 1
123 123
                         line = lines[i].strip()
124 124
                         if self.isConditionalMacroStart(line):
125 125
                             deep = deep + 1
126 126
                         elif self.isConditionalMacroEnd(line):
127 127
                             deep = deep - 1
128 128
             elif self.isIfCondition(line):
129
-                if (not self.isConditionTrue(line)):
129
+                if not self.isConditionTrue(line):
130 130
                     # skip conditional body
131 131
                     deep = 1
132
-                    while (i < totalLines and deep != 0):
133
-                        i=i+1
132
+                    while i < totalLines and deep != 0:
133
+                        i = i + 1
134 134
                         line = lines[i].strip()
135 135
                         if self.isConditionalMacroStart(line):
136 136
                             deep = deep + 1
137 137
                         elif self.isConditionalMacroEnd(line):
138 138
                             deep = deep - 1
139 139
             elif self.isSpecMacro(line):
140
-                macro,i=self.readMacroFromFile(i, lines)
140
+                macro, i = self.readMacroFromFile(i, lines)
141 141
                 self.updateMacro(macro)
142 142
             elif self.isPackageMacro(line):
143 143
                 defaultpkg = self.packages.get('default')
144
-                returnVal,packageName=self.readPkgNameFromPackageMacro(line, defaultpkg.name)
145
-                packageName=self.replaceMacros(packageName)
144
+                returnVal, packageName = self.readPkgNameFromPackageMacro(line, defaultpkg.name)
145
+                packageName = self.replaceMacros(packageName)
146 146
                 if not returnVal:
147 147
                     return False
148
-                if re.search('^'+'%package',line) :
148
+                if line.startswith('%package'):
149 149
                     pkg = Package(defaultpkg)
150
-                    pkg.name=packageName
151
-                    currentPkg=packageName
152
-                    self.packages[pkg.name]=pkg
150
+                    pkg.name = packageName
151
+                    currentPkg = packageName
152
+                    self.packages[pkg.name] = pkg
153 153
                 else:
154
-                    if defaultpkg.name == packageName :
154
+                    if defaultpkg.name == packageName:
155 155
                         packageName = 'default'
156
-                    macro,i=self.readMacroFromFile(i, lines)
157
-                    if not self.packages.has_key(packageName):
158
-                        i=i+1
156
+                    macro, i = self.readMacroFromFile(i, lines)
157
+                    if packageName not in self.packages:
158
+                        i = i + 1
159 159
                         continue
160 160
                     self.packages[packageName].updatePackageMacro(macro)
161 161
             elif self.isPackageHeaders(line):
... ...
@@ -171,262 +171,216 @@ class SpecParser(object):
171 171
             elif self.conditionalCheckMacroEnabled and self.isConditionalMacroEnd(line):
172 172
                 self.conditionalCheckMacroEnabled = False
173 173
             else:
174
-                self.specAdditionalContent+=line+"\n"
175
-            i=i+1
174
+                self.specAdditionalContent += line + "\n"
175
+            i = i + 1
176 176
         specFile.close()
177 177
 
178 178
     def createDefaultPackage(self):
179 179
         pkg = Package()
180
-        self.packages["default"]=pkg
180
+        self.packages["default"] = pkg
181 181
 
182
-    def readMacroFromFile(self,currentPos,lines):
182
+    def readMacroFromFile(self, currentPos, lines):
183 183
         macro = rpmMacro()
184 184
         line = lines[currentPos]
185 185
         macro.position = currentPos
186
-        macro.endposition=currentPos
187
-        endPos=len(lines)
186
+        macro.endposition = currentPos
187
+        endPos = len(lines)
188 188
         line = " ".join(line.split())
189 189
         flagindex = line.find(" ")
190 190
         if flagindex != -1:
191
-            macro.macroFlag=line[flagindex+1:]
192
-            macro.macroName=line[:flagindex]
191
+            macro.macroFlag = line[flagindex+1:]
192
+            macro.macroName = line[:flagindex]
193 193
         else:
194
-            macro.macroName=line
194
+            macro.macroName = line
195 195
 
196
-        if currentPos+1 < len(lines) and self.isMacro(lines[currentPos+1]):
197
-            return macro,currentPos
196
+        if currentPos + 1 < len(lines) and self.isMacro(lines[currentPos+1]):
197
+            return macro, currentPos
198 198
 
199
-        for j in range(currentPos+1,endPos):
199
+        for j in range(currentPos + 1, endPos):
200 200
             content = lines[j]
201 201
             if j+1 < endPos and self.isMacro(lines[j+1]):
202
-                return macro,j
202
+                return macro, j
203 203
             macro.content += content +'\n'
204
-            macro.endposition=j
205
-        return macro,endPos
204
+            macro.endposition = j
205
+        return macro, endPos
206 206
 
207
-
208
-    def updateMacro(self,macro):
207
+    def updateMacro(self, macro):
209 208
         if macro.macroName == "%clean":
210
-            self.cleanMacro=macro
209
+            self.cleanMacro = macro
211 210
             return True
212 211
         if macro.macroName == "%prep":
213
-            self.prepMacro=macro
212
+            self.prepMacro = macro
214 213
             return True
215 214
         if macro.macroName == "%build":
216
-            self.buildMacro=macro
215
+            self.buildMacro = macro
217 216
             return True
218 217
         if macro.macroName == "%install":
219
-            self.installMacro=macro
218
+            self.installMacro = macro
220 219
             return True
221 220
         if macro.macroName == "%changelog":
222
-            self.changelogMacro=macro
221
+            self.changelogMacro = macro
223 222
             return True
224 223
         if macro.macroName == "%check":
225
-            self.checkMacro=macro
224
+            self.checkMacro = macro
226 225
             return True
227 226
         return False
228 227
 
229
-    def isMacro(self,line):
230
-        return self.isPackageMacro(line) or self.isSpecMacro(line) or self.isConditionalMacroStart(line) or self.isConditionalMacroEnd(line)
228
+    def isMacro(self, line):
229
+        return (self.isPackageMacro(line) or
230
+                self.isSpecMacro(line) or
231
+                self.isConditionalMacroStart(line) or
232
+                self.isConditionalMacroEnd(line))
231 233
 
232
-    def isConditionalArch(self,line):
233
-        if re.search('^'+'%ifarch',line) :
234
+    def isConditionalArch(self, line):
235
+        if re.search('^'+'%ifarch', line):
234 236
             return True
235 237
         return False
236 238
 
237
-    def isSpecMacro(self,line):
238
-        if re.search('^'+'%clean',line) :
239
-            return True
240
-        elif re.search('^'+'%prep',line) :
241
-            return True
242
-        elif re.search('^'+'%build',line) :
243
-            return True
244
-        elif re.search('^'+'%install',line) :
245
-            return True
246
-        elif re.search('^'+'%changelog',line) :
247
-            return True
248
-        elif re.search('^'+'%check',line) :
239
+    def isSpecMacro(self, line):
240
+        if line.startswith(('%clean', '%prep', '%build', '%install', '%changelog', '%check')):
249 241
             return True
250 242
         return False
251 243
 
252
-    def isPackageMacro(self,line):
253
-        line=line.strip()
254
-
255
-        if re.search('^'+'%post',line) :
256
-            return True
257
-        elif re.search('^'+'%postun',line) :
258
-            return True
259
-        elif re.search('^'+'%files',line) :
260
-            return True
261
-        elif re.search('^'+'%description',line) :
262
-            return True
263
-        elif re.search('^'+'%package',line) :
244
+    def isPackageMacro(self, line):
245
+        line = line.strip()
246
+        if line.startswith(('%post', '%postun', '%files', '%description', '%package')):
264 247
             return True
265 248
         return False
266 249
 
267
-    def isPackageHeaders(self,line):
268
-        if re.search('^'+'summary:',line,flags=re.IGNORECASE) :
269
-            return True
270
-        elif re.search('^'+'name:',line,flags=re.IGNORECASE) :
271
-            return True
272
-        elif re.search('^'+'group:',line,flags=re.IGNORECASE) :
273
-            return True
274
-        elif re.search('^'+'license:',line,flags=re.IGNORECASE) :
275
-            return True
276
-        elif re.search('^'+'version:',line,flags=re.IGNORECASE) :
277
-            return True
278
-        elif re.search('^'+'release:',line,flags=re.IGNORECASE) :
279
-            return True
280
-        elif re.search('^'+'distribution:',line,flags=re.IGNORECASE) :
281
-            return True
282
-        elif re.search('^'+'requires:',line,flags=re.IGNORECASE) :
283
-            return True
284
-        elif re.search('^'+'requires\((pre|post|preun|postun)\):',line,flags=re.IGNORECASE) :
285
-            return True
286
-        elif re.search('^'+'provides:',line,flags=re.IGNORECASE) :
287
-            return True
288
-        elif re.search('^'+'obsoletes:',line,flags=re.IGNORECASE) :
289
-            return True
290
-        elif re.search('^'+'conflicts:',line,flags=re.IGNORECASE) :
291
-            return True
292
-        elif re.search('^'+'url:',line,flags=re.IGNORECASE) :
293
-            return True
294
-        elif re.search('^'+'source[0-9]*:',line,flags=re.IGNORECASE) :
295
-            return True
296
-        elif re.search('^'+'patch[0-9]*:',line,flags=re.IGNORECASE) :
297
-            return True
298
-        elif re.search('^'+'buildrequires:',line,flags=re.IGNORECASE) :
299
-            return True
300
-        elif re.search('^'+'buildprovides:',line,flags=re.IGNORECASE) :
301
-            return True
302
-        elif re.search('^'+'buildarch:',line,flags=re.IGNORECASE) :
250
+    def isPackageHeaders(self, line):
251
+        headersPatterns = ['^summary:', '^name:', '^group:',
252
+                           '^license:', '^version:', '^release:',
253
+                           '^distribution:', '^requires:',
254
+                           '^requires\((pre|post|preun|postun)\):',
255
+                           '^provides:', '^obsoletes:', '^conflicts:',
256
+                           '^url:', '^source[0-9]*:', '^patch[0-9]*:',
257
+                           '^buildrequires:', '^buildprovides:',
258
+                           '^buildarch:']
259
+        if any([re.search(r, line, flags=re.IGNORECASE) for r in headersPatterns]):
303 260
             return True
304 261
         return False
305 262
 
306
-    def isGlobalSecurityHardening(self,line):
307
-        if re.search('^%global *security_hardening',line,flags=re.IGNORECASE) :
263
+    def isGlobalSecurityHardening(self, line):
264
+        if re.search('^%global *security_hardening', line, flags=re.IGNORECASE):
308 265
             return True
309 266
         return False
310 267
 
311
-    def isChecksum(self,line):
312
-        if re.search('^%define *sha1',line,flags=re.IGNORECASE) :
268
+    def isChecksum(self, line):
269
+        if re.search('^%define *sha1', line, flags=re.IGNORECASE):
313 270
             return True
314 271
         return False
315 272
 
316
-    def isDefinition(self,line):
317
-        if re.search('^'+'%define',line) :
318
-            return True
319
-        if re.search('^'+'%global',line) :
273
+    def isDefinition(self, line):
274
+        if line.startswith(('%define', '%global')):
320 275
             return True
321 276
         return False
322 277
 
323
-    def readConditionalArch(self,line):
324
-        w=line.split()
278
+    def readConditionalArch(self, line):
279
+        w = line.split()
325 280
         if len(w) == 2:
326
-           return w[1]
281
+            return w[1]
327 282
         return None
328 283
 
329
-    def readDefinition(self,line):
330
-        listDefines=line.split()
284
+    def readDefinition(self, line):
285
+        listDefines = line.split()
331 286
         if len(listDefines) == 3:
332
-           self.defs[listDefines[1]] = self.replaceMacros(listDefines[2])
333
-           return True
287
+            self.defs[listDefines[1]] = self.replaceMacros(listDefines[2])
288
+            return True
334 289
         return False
335 290
 
336
-    def readHeader(self,line):
337
-        headerSplitIndex=line.find(":")
338
-        if(headerSplitIndex+1 == len(line) ):
339
-            print line
340
-            print "Error:Invalid header"
341
-            return False, None,None
342
-        headerName=line[0:headerSplitIndex].lower()
343
-        headerContent=line[headerSplitIndex+1:].strip()
344
-        return True,headerName,headerContent
345
-
346
-
347
-    def readDependentPackageData(self,line):
291
+    def readHeader(self, line):
292
+        headerSplitIndex = line.find(":")
293
+        if headerSplitIndex + 1 == len(line):
294
+            print(line)
295
+            print("Error:Invalid header")
296
+            return False, None, None
297
+        headerName = line[0:headerSplitIndex].lower()
298
+        headerContent = line[headerSplitIndex + 1:].strip()
299
+        return True, headerName, headerContent
300
+
301
+    def readDependentPackageData(self, line):
348 302
         strUtils = StringUtils()
349
-        listPackages=line.split(",")
350
-        listdependentpkgs=[]
303
+        listPackages = line.split(",")
304
+        listdependentpkgs = []
351 305
         for line in listPackages:
352
-            line=strUtils.getStringInConditionalBrackets(line)
353
-            listContents=line.split()
306
+            line = strUtils.getStringInConditionalBrackets(line)
307
+            listContents = line.split()
354 308
             totalContents = len(listContents)
355
-            i=0
309
+            i = 0
356 310
             while i < totalContents:
357 311
                 dpkg = dependentPackageData()
358
-                compare=None
359
-                packageName=listContents[i]
312
+                compare = None
313
+                packageName = listContents[i]
360 314
                 if listContents[i].startswith("/"):
361
-                    provider=constants.providedBy.get(listContents[i], None)
362
-                    i=i+1
315
+                    provider = constants.providedBy.get(listContents[i], None)
316
+                    i += 1
363 317
                     if provider is not None:
364
-                        packageName=provider
318
+                        packageName = provider
365 319
                     else:
366 320
                         continue
367 321
                 if i+2 < len(listContents):
368 322
                     if listContents[i+1] == ">=":
369
-                        compare="gte"
323
+                        compare = "gte"
370 324
                     elif listContents[i+1] == "<=":
371
-                        compare="lte"
325
+                        compare = "lte"
372 326
                     elif listContents[i+1] == "==":
373
-                        compare="eq"
327
+                        compare = "eq"
374 328
                     elif listContents[i+1] == "<":
375
-                        compare="lt"
329
+                        compare = "lt"
376 330
                     elif listContents[i+1] == ">":
377
-                        compare="gt"
331
+                        compare = "gt"
378 332
                     elif listContents[i+1] == "=":
379
-                        compare="eq"
333
+                        compare = "eq"
380 334
 
381 335
                 if compare is not None:
382
-                    dpkg.package=packageName
383
-                    dpkg.compare=compare
384
-                    dpkg.version=listContents[i+2]
385
-                    i=i+3
336
+                    dpkg.package = packageName
337
+                    dpkg.compare = compare
338
+                    dpkg.version = listContents[i+2]
339
+                    i = i + 3
386 340
                 else:
387
-                    dpkg.package=packageName
388
-                    i=i+1
341
+                    dpkg.package = packageName
342
+                    i = i + 1
389 343
                 listdependentpkgs.append(dpkg)
390 344
         return listdependentpkgs
391 345
 
392
-    def readPackageHeaders(self,line,pkg):
393
-        returnVal,headerName,headerContent=self.readHeader(line)
346
+    def readPackageHeaders(self, line, pkg):
347
+        returnVal, headerName, headerContent = self.readHeader(line)
394 348
         if not returnVal:
395 349
             return False
396 350
 
397
-        headerContent=self.replaceMacros(headerContent)
351
+        headerContent = self.replaceMacros(headerContent)
398 352
         if headerName == 'summary':
399
-            pkg.summary=headerContent
353
+            pkg.summary = headerContent
400 354
             return True
401 355
         if headerName == 'name':
402
-            pkg.name=headerContent
403
-            if (pkg == self.packages["default"]):
356
+            pkg.name = headerContent
357
+            if pkg == self.packages["default"]:
404 358
                 self.defs["name"] = pkg.name
405 359
             return True
406 360
         if headerName == 'group':
407
-            pkg.group=headerContent
361
+            pkg.group = headerContent
408 362
             return True
409 363
         if headerName == 'license':
410
-            pkg.license=headerContent
364
+            pkg.license = headerContent
411 365
             return True
412 366
         if headerName == 'version':
413
-            pkg.version=headerContent
414
-            if (pkg == self.packages["default"]):
367
+            pkg.version = headerContent
368
+            if pkg == self.packages["default"]:
415 369
                 self.defs["version"] = pkg.version
416 370
             return True
417 371
         if headerName == 'buildarch':
418
-            pkg.buildarch=headerContent
372
+            pkg.buildarch = headerContent
419 373
             return True
420 374
         if headerName == 'release':
421
-            pkg.release=headerContent
422
-            if (pkg == self.packages["default"]):
375
+            pkg.release = headerContent
376
+            if pkg == self.packages["default"]:
423 377
                 self.defs["release"] = pkg.release
424 378
             return True
425 379
         if headerName == 'distribution':
426
-            pkg.distribution=headerContent
380
+            pkg.distribution = headerContent
427 381
             return True
428 382
         if headerName == 'url':
429
-            pkg.URL=headerContent
383
+            pkg.URL = headerContent
430 384
             return True
431 385
         if headerName.find('source') != -1:
432 386
             pkg.sources.append(headerContent)
... ...
@@ -434,8 +388,13 @@ class SpecParser(object):
434 434
         if headerName.find('patch') != -1:
435 435
             pkg.patches.append(headerContent)
436 436
             return True
437
-        if headerName.startswith('requires') or headerName == 'provides' or headerName == 'obsoletes' or headerName == 'conflicts' or headerName == 'buildrequires' or headerName == 'buildprovides':
438
-            dpkg=self.readDependentPackageData(headerContent)
437
+        if (headerName.startswith('requires') or
438
+                headerName == 'provides' or
439
+                headerName == 'obsoletes' or
440
+                headerName == 'conflicts' or
441
+                headerName == 'buildrequires' or
442
+                headerName == 'buildprovides'):
443
+            dpkg = self.readDependentPackageData(headerContent)
439 444
             if dpkg is None:
440 445
                 return False
441 446
             if headerName.startswith('requires'):
... ...
@@ -457,47 +416,48 @@ class SpecParser(object):
457 457
             return True
458 458
         return False
459 459
 
460
-    def readSecurityHardening(self,line):
461
-        data = line.lower().strip();
462
-        words=data.split(" ")
460
+    def readSecurityHardening(self, line):
461
+        data = line.lower().strip()
462
+        words = data.split(" ")
463 463
         nrWords = len(words)
464
-        if (nrWords != 3):
465
-            print "Error: Unable to parse line: "+line
464
+        if nrWords != 3:
465
+            print("Error: Unable to parse line: " + line)
466 466
             return False
467
-        if (words[2] != "none" and words[2] != "nonow" and words[2] != "nopie") :
468
-            print "Error: Invalid security_hardening value: " + words[2]
467
+        if words[2] != "none" and words[2] != "nonow" and words[2] != "nopie":
468
+            print("Error: Invalid security_hardening value: " + words[2])
469 469
             return False
470 470
         self.globalSecurityHardening = words[2]
471
-        return True;
471
+        return True
472 472
 
473
-    def readChecksum(self,line,pkg):
473
+    def readChecksum(self, line, pkg):
474 474
         strUtils = StringUtils()
475
-        line=self.replaceMacros(line)
476
-        data = line.strip();
477
-        words=data.split()
475
+        line = self.replaceMacros(line)
476
+        data = line.strip()
477
+        words = data.split()
478 478
         nrWords = len(words)
479
-        if (nrWords != 3):
480
-            print "Error: Unable to parse line: "+line
479
+        if nrWords != 3:
480
+            print("Error: Unable to parse line: " + line)
481 481
             return False
482
-        value=words[2].split("=")
483
-        if (len(value) != 2):
484
-            print "Error: Unable to parse line: "+line
482
+        value = words[2].split("=")
483
+        if len(value) != 2:
484
+            print("Error: Unable to parse line: "+line)
485 485
             return False
486
-        matchedSources=[]
486
+        matchedSources = []
487 487
         for source in pkg.sources:
488
-            sourceName=strUtils.getFileNameFromURL(source)
488
+            sourceName = strUtils.getFileNameFromURL(source)
489 489
             if (sourceName.startswith(value[0])):
490 490
                 matchedSources.append(sourceName)
491 491
         if (len(matchedSources) == 0):
492
-            print "Error: Can not find match for sha1 "+value[0]
492
+            print("Error: Can not find match for sha1 " + value[0])
493 493
             return False
494 494
         if (len(matchedSources) > 1):
495
-            print "Error: Too many matched Sources:" + ' '.join(matchedSources) + " for sha1 "+value[0]
495
+            print("Error: Too many matched Sources:" +
496
+                  ' '.join(matchedSources) + " for sha1 " + value[0])
496 497
             return False
497 498
         pkg.checksums[sourceName] = value[1]
498 499
         return True;
499 500
 
500
-    def isConditionalCheckMacro(self,line):
501
+    def isConditionalCheckMacro(self, line):
501 502
         data = line.strip()
502 503
         words = data.split()
503 504
         nrWords = len(words)
... ...
@@ -522,8 +482,8 @@ class SpecParser(object):
522 522
             return False
523 523
         return True
524 524
 
525
-    def isConditionalMacroStart(self,line):
525
+    def isConditionalMacroStart(self, line):
526 526
         return line.startswith("%if")
527 527
 
528
-    def isConditionalMacroEnd(self,line):
528
+    def isConditionalMacroEnd(self, line):
529 529
         return (line.strip() == "%endif")
... ...
@@ -3,76 +3,78 @@ import platform
3 3
 class rpmMacro(object):
4 4
 
5 5
     def __init__(self):
6
-        self.macroName=""
7
-        self.macroFlag=""
8
-        self.content=""
9
-        self.position=-1
10
-        self.endposition=-1
6
+        self.macroName = ""
7
+        self.macroFlag = ""
8
+        self.content = ""
9
+        self.position = -1
10
+        self.endposition = -1
11 11
 
12
-    def setName(self,name):
13
-        self.macroName=name
12
+    def setName(self, name):
13
+        self.macroName = name
14 14
 
15 15
     def displayMacro(self):
16
-        print "Macro:\n", self.macroName, " ",self.macroFlag," ",self.position," ",self.endposition
17
-        print self.content
16
+        print("Macro:")
17
+        print(self.macroName + " {}".format(self.macroFlag)
18
+              + " {}".format(self.position)
19
+              + " {}".format(self.endposition))
20
+        print(self.content)
18 21
 
19 22
 class dependentPackageData(object):
20 23
 
21 24
     def __init__(self):
22
-        self.package=""
23
-        self.version=""
24
-        self.compare=""
25
+        self.package = ""
26
+        self.version = ""
27
+        self.compare = ""
25 28
 
26 29
 class Package(object):
27 30
     def __init__(self, basePkg=None):
28
-        self.summary=""
29
-        self.name=""
30
-        self.group=""
31
-        self.license=""
32
-        self.version=""
33
-        self.release=""
34
-        self.buildarch=platform.machine()
35
-        self.distribution="Photon"
36
-        self.basePkgName=""
37
-        self.URL=""
31
+        self.summary = ""
32
+        self.name = ""
33
+        self.group = ""
34
+        self.license = ""
35
+        self.version = ""
36
+        self.release = ""
37
+        self.buildarch = platform.machine()
38
+        self.distribution = "Photon"
39
+        self.basePkgName = ""
40
+        self.URL = ""
38 41
 
39
-        self.sources=[]
40
-        self.checksums={}
41
-        self.patches=[]
42
-        self.buildrequires=[]
43
-        self.buildprovides=[]
44
-        self.checkbuildrequires=[]
42
+        self.sources = []
43
+        self.checksums = {}
44
+        self.patches = []
45
+        self.buildrequires = []
46
+        self.buildprovides = []
47
+        self.checkbuildrequires = []
45 48
 
49
+        self.requires = []
50
+        self.provides = []
51
+        self.obsoletes = []
52
+        self.conflicts = []
46 53
 
47
-        self.requires=[]
48
-        self.provides=[]
49
-        self.obsoletes=[]
50
-        self.conflicts=[]
51
-
52
-        self.descriptionMacro= None
53
-        self.postMacro=None
54
-        self.postunMacro=None
55
-        self.filesMacro=None
56
-        self.packageMacro=None
54
+        self.descriptionMacro = None
55
+        self.postMacro = None
56
+        self.postunMacro = None
57
+        self.filesMacro = None
58
+        self.packageMacro = None
57 59
 
58 60
         if basePkg is not None:
59
-            self.basePkgName=basePkg.name
60
-            self.group=basePkg.group
61
-            self.license=basePkg.license
62
-            self.version=basePkg.version
63
-            self.buildarch=basePkg.buildarch
64
-            self.release=basePkg.release
65
-            self.distribution=basePkg.distribution
61
+            self.basePkgName = basePkg.name
62
+            self.group = basePkg.group
63
+            self.license = basePkg.license
64
+            self.version = basePkg.version
65
+            self.buildarch = basePkg.buildarch
66
+            self.release = basePkg.release
67
+            self.distribution = basePkg.distribution
66 68
 
67
-    def updatePackageMacro(self,macro):
69
+    def updatePackageMacro(self, macro):
68 70
         if macro.macroName == "%post":
69
-            self.postMacro=macro
71
+            self.postMacro = macro
70 72
             return True
71 73
         if macro.macroName == "%postun":
72
-            self.postunMacro=macro
74
+            self.postunMacro = macro
73 75
             return True
74 76
         if macro.macroName == "%files":
75
-            self.filesMacro=macro
77
+            self.filesMacro = macro
76 78
             return True
77 79
         if macro.macroName == "%description":
78 80
             self.descriptionMacro = macro
... ...
@@ -1,30 +1,30 @@
1
-from SpecParser import SpecParser
2
-from StringUtils import StringUtils
3 1
 import platform
4 2
 import os
3
+from SpecParser import SpecParser
4
+from StringUtils import StringUtils
5 5
 
6 6
 class Specutils(object):
7 7
 
8
-    def __init__(self,specfile):
9
-        self.specfile=""
8
+    def __init__(self, specfile):
9
+        self.specfile = ""
10 10
         self.spec = SpecParser()
11 11
         if self.isSpecFile(specfile):
12
-            self.specfile=specfile
12
+            self.specfile = specfile
13 13
             self.spec.parseSpecFile(self.specfile)
14 14
 
15
-    def isSpecFile(self,specfile):
16
-        if os.path.isfile(specfile) and specfile[-5:] == ".spec":
15
+    def isSpecFile(self, specfile):
16
+        if os.path.isfile(specfile) and specfile.endswith(".spec"):
17 17
             return True
18 18
         return False
19 19
 
20 20
     def getSourceNames(self):
21
-        sourceNames=[]
21
+        sourceNames = []
22 22
         strUtils = StringUtils()
23 23
         pkg = self.spec.packages.get('default')
24 24
         if pkg is None:
25 25
             return None
26 26
         for source in pkg.sources:
27
-            sourceName=strUtils.getFileNameFromURL(source)
27
+            sourceName = strUtils.getFileNameFromURL(source)
28 28
             sourceNames.append(sourceName)
29 29
         return sourceNames
30 30
 
... ...
@@ -32,12 +32,12 @@ class Specutils(object):
32 32
         pkg = self.spec.packages.get('default')
33 33
         return pkg.checksums
34 34
 
35
-    def getChecksumForSource(self,source):
35
+    def getChecksumForSource(self, source):
36 36
         pkg = self.spec.packages.get('default')
37 37
         return pkg.checksums.get(source)
38 38
 
39 39
     def getSourceURLs(self):
40
-        sourceNames=[]
40
+        sourceNames = []
41 41
         strUtils = StringUtils()
42 42
         pkg = self.spec.packages.get('default')
43 43
         if pkg is None:
... ...
@@ -47,25 +47,24 @@ class Specutils(object):
47 47
         return sourceNames
48 48
 
49 49
     def getPatchNames(self):
50
-        patchNames=[]
50
+        patchNames = []
51 51
         strUtils = StringUtils()
52 52
         pkg = self.spec.packages.get('default')
53 53
         if pkg is None:
54 54
             return None
55 55
         for patch in pkg.patches:
56
-            patchName=strUtils.getFileNameFromURL(patch)
56
+            patchName = strUtils.getFileNameFromURL(patch)
57 57
             patchNames.append(patchName)
58 58
         return patchNames
59 59
 
60 60
     def getPackageNames(self):
61
-        packageNames=[]
62
-        for key in self.spec.packages.keys():
63
-            pkg = self.spec.packages.get(key)
61
+        packageNames = []
62
+        for pkg in self.spec.packages.values():
64 63
             packageNames.append(pkg.name)
65 64
         return packageNames
66 65
 
67
-    def getIsRPMPackage(self,pkgName):
68
-        defaultPkgName=self.spec.packages['default'].name
66
+    def getIsRPMPackage(self, pkgName):
67
+        defaultPkgName = self.spec.packages['default'].name
69 68
         if pkgName == defaultPkgName:
70 69
             pkgName = "default"
71 70
         if pkgName in self.spec.packages.keys():
... ...
@@ -75,42 +74,38 @@ class Specutils(object):
75 75
         return False
76 76
 
77 77
     def getRPMNames(self):
78
-        rpmNames=[]
79
-        for key in self.spec.packages.keys():
80
-            pkg = self.spec.packages.get(key)
81
-            rpmName=pkg.name+"-"+pkg.version+"-"+pkg.release
78
+        rpmNames = []
79
+        for pkg in self.spec.packages.values():
80
+            rpmName = pkg.name + "-" + pkg.version + "-" + pkg.release
82 81
             rpmNames.append(rpmName)
83 82
         return rpmNames
84 83
 
85 84
     def getRPMName(self, pkgName):
86
-        rpmName=None
87
-        for key in self.spec.packages.keys():
88
-            pkg = self.spec.packages.get(key)
85
+        rpmName = None
86
+        for pkg in self.spec.packages.values():
89 87
             if pkg.name == pkgName:
90
-                rpmName=pkg.name+"-"+pkg.version+"-"+pkg.release
88
+                rpmName = pkg.name + "-" + pkg.version + "-" + pkg.release
91 89
                 break
92 90
         return rpmName
93 91
 
94 92
     def getRPMVersion(self, pkgName):
95
-        version=None
96
-        for key in self.spec.packages.keys():
97
-            pkg = self.spec.packages.get(key)
93
+        version = None
94
+        for pkg in self.spec.packages.values():
98 95
             if pkg.name == pkgName:
99
-                version=pkg.version
96
+                version = pkg.version
100 97
                 break
101 98
         return version
102 99
 
103 100
     def getRPMRelease(self, pkgName):
104
-        release=None
105
-        for key in self.spec.packages.keys():
106
-            pkg = self.spec.packages.get(key)
101
+        release = None
102
+        for pkg in self.spec.packages.values():
107 103
             if pkg.name == pkgName:
108
-                release=pkg.release
104
+                release = pkg.release
109 105
                 break
110 106
         return release
111 107
 
112 108
     def getLicense(self):
113
-        licenseInfo=None
109
+        licenseInfo = None
114 110
         pkg = self.spec.packages.get('default')
115 111
         if pkg is None:
116 112
             return None
... ...
@@ -134,80 +129,74 @@ class Specutils(object):
134 134
         return None
135 135
 
136 136
     def getBuildArch(self, pkgName):
137
-        buildArch=platform.machine()
138
-        for key in self.spec.packages.keys():
139
-            pkg = self.spec.packages.get(key)
137
+        buildArch = platform.machine()
138
+        for pkg in self.spec.packages.values():
140 139
             if pkg.name == pkgName:
141
-                buildArch=pkg.buildarch
140
+                buildArch = pkg.buildarch
142 141
                 break
143 142
         return buildArch
144 143
 
145 144
     def getRequiresAllPackages(self):
146
-        dependentPackages=[]
147
-        for key in self.spec.packages.keys():
148
-            pkg = self.spec.packages.get(key)
145
+        dependentPackages = []
146
+        for pkg in self.spec.packages.values():
149 147
             for dpkg in pkg.requires:
150 148
                 dependentPackages.append(dpkg.package)
151
-        dependentPackages=list(set(dependentPackages))
152
-        packageNames=self.getPackageNames()
149
+        dependentPackages = list(set(dependentPackages))
150
+        packageNames = self.getPackageNames()
153 151
         for pkgName in packageNames:
154 152
             if pkgName in dependentPackages:
155 153
                 dependentPackages.remove(pkgName)
156 154
         return dependentPackages
157 155
 
158 156
     def getBuildRequiresAllPackages(self):
159
-        dependentPackages=[]
160
-        for key in self.spec.packages.keys():
161
-            pkg = self.spec.packages.get(key)
157
+        dependentPackages = []
158
+        for pkg in self.spec.packages.values():
162 159
             for dpkg in pkg.buildrequires:
163 160
                 dependentPackages.append(dpkg.package)
164
-        dependentPackages=list(set(dependentPackages))
165
-        packageNames=self.getPackageNames()
161
+        dependentPackages = list(set(dependentPackages))
162
+        packageNames = self.getPackageNames()
166 163
         for pkgName in packageNames:
167 164
             if pkgName in dependentPackages:
168 165
                 dependentPackages.remove(pkgName)
169 166
         return dependentPackages
170 167
 
171 168
     def getCheckBuildRequiresAllPackages(self):
172
-        dependentPackages=[]
173
-        for key in self.spec.packages.keys():
174
-            pkg = self.spec.packages.get(key)
169
+        dependentPackages = []
170
+        for pkg in self.spec.packages.values():
175 171
             for dpkg in pkg.checkbuildrequires:
176 172
                 dependentPackages.append(dpkg.package)
177
-        dependentPackages=list(set(dependentPackages))
173
+        dependentPackages = list(set(dependentPackages))
178 174
         return dependentPackages
179 175
 
180
-    def getRequires(self,pkgName):
181
-        dependentPackages=[]
182
-        for key in self.spec.packages.keys():
183
-            pkg = self.spec.packages.get(key)
176
+    def getRequires(self, pkgName):
177
+        dependentPackages = []
178
+        for pkg in self.spec.packages.values():
184 179
             if pkg.name == pkgName:
185 180
                 for dpkg in pkg.requires:
186 181
                     dependentPackages.append(dpkg.package)
187 182
         return dependentPackages
188 183
 
189
-    def getBuildRequires(self,pkgName):
190
-        dependentPackages=[]
191
-        for key in self.spec.packages.keys():
192
-            pkg = self.spec.packages.get(key)
184
+    def getBuildRequires(self, pkgName):
185
+        dependentPackages = []
186
+        for pkg in self.spec.packages.values():
193 187
             if pkg.name == pkgName:
194 188
                 for dpkg in pkg.buildrequires:
195 189
                     dependentPackages.append(dpkg.package)
196 190
         return dependentPackages
197 191
 
198
-    def getProvides(self,packageName):
199
-        dependentPackages=[]
200
-        defaultPkgName=self.spec.packages['default'].name
192
+    def getProvides(self, packageName):
193
+        dependentPackages = []
194
+        defaultPkgName = self.spec.packages['default'].name
201 195
         pkg = None
202
-        if self.spec.packages.has_key(packageName):
196
+        if packageName in self.spec.packages:
203 197
             pkg = self.spec.packages.get(packageName)
204 198
         if defaultPkgName == packageName:
205
-            pkg=self.spec.packages['default']
199
+            pkg = self.spec.packages['default']
206 200
         if pkg is not None:
207 201
             for dpkg in pkg.provides:
208 202
                 dependentPackages.append(dpkg.package)
209 203
         else:
210
-            print "package not found"
204
+            print("package not found")
211 205
         return dependentPackages
212 206
 
213 207
     def getVersion(self):
... ...
@@ -226,9 +215,9 @@ class Specutils(object):
226 226
         return self.spec.globalSecurityHardening
227 227
 
228 228
     def isCheckAvailable(self):
229
-        check=False
229
+        check = False
230 230
         if self.spec.checkMacro is not None:
231
-            check=True
231
+            check = True
232 232
         return check
233 233
 
234 234
     def getDefinitions(self):
... ...
@@ -236,17 +225,16 @@ class Specutils(object):
236 236
 
237 237
 def main():
238 238
     spec = Specutils("/workspace1/myrepos/photon/SPECS/docker/docker.spec")
239
-    print "packages",spec.getPackageNames()
240
-    print "packages",spec.getRPMNames()
241
-    print "sources",spec.getSourceNames()
242
-    print "patches",spec.getPatchNames()
243
-    print "requires",spec.getRequires('libltdl-devel')
244
-    print "requires",spec.getRequires('libtool')
239
+    print("packages {}".format(spec.getPackageNames()))
240
+    print("packages {}".format(spec.getRPMNames()))
241
+    print("sources {}".format(spec.getSourceNames()))
242
+    print("patches {}".format(spec.getPatchNames()))
243
+    print("requires {}".format(spec.getRequires('libltdl-devel')))
244
+    print("requires {}".format(spec.getRequires('libtool')))
245 245
 
246
-    print "provides",spec.getProvides('libtool')
247
-    print "all-requires",spec.getRequiresAllPackages()
248
-    print "all-build-requires",spec.getBuildRequiresAllPackages()
246
+    print("provides {}".format(spec.getProvides('libtool')))
247
+    print("all-requires {}".format(spec.getRequiresAllPackages()))
248
+    print("all-build-requires {}".format(spec.getBuildRequiresAllPackages()))
249 249
 
250 250
 if __name__ == '__main__':
251 251
     main()
252
-
... ...
@@ -6,34 +6,36 @@ class StringUtils(object):
6 6
     # (aaa <= 3.1 or bbb) ccc (ddd or fff > 4.5.6)
7 7
     # into
8 8
     # aaa <= 3.1 ccc ddd
9
-    def getStringInConditionalBrackets(self,inputstring):
10
-        inputstring=inputstring.strip()
11
-        items = re.findall(r"([(][A-Za-z0-9 %{?}_\.\-<>=]+[)])",  inputstring)
9
+    def getStringInConditionalBrackets(self, inputstring):
10
+        inputstring = inputstring.strip()
11
+        items = re.findall(r"([(][A-Za-z0-9 %{?}_\.\-<>=]+[)])", inputstring)
12 12
         for m in items:
13 13
             out = m[m.find("(")+1 : m.find(" or ")].strip()
14
-            inputstring = inputstring.replace(m, out);
14
+            inputstring = inputstring.replace(m, out)
15 15
         return inputstring
16 16
 
17
-    def getFileNameFromURL(self,inputstring):
18
-        index=inputstring.rfind("/")
17
+    def getFileNameFromURL(self, inputstring):
18
+        index = inputstring.rfind("/")
19 19
         return inputstring[index+1:]
20 20
 
21
-    def getPackageNameFromURL(self,inputstring):
22
-        filename=self.getFileNameFromURL(inputstring)
23
-        m = re.search(r"(zip|mozjs|.+-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",  filename)
21
+    def getPackageNameFromURL(self, inputstring):
22
+        filename = self.getFileNameFromURL(inputstring)
23
+        m = re.search(r"(zip|mozjs|.+-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",
24
+                      filename)
24 25
         if m is None:
25
-            print "Unable to parse "+filename
26
+            print("Unable to parse " + filename)
26 27
             return inputstring
27 28
         name = m.group(1)
28 29
         if name.endswith("-"):
29 30
             name = name[:-1]
30 31
         return name
31 32
 
32
-    def getPackageVersionFromURL(self,inputstring):
33
-        filename=self.getFileNameFromURL(inputstring)
34
-        m = re.search(r"(zip|mozjs|.*-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",  filename)
33
+    def getPackageVersionFromURL(self, inputstring):
34
+        filename = self.getFileNameFromURL(inputstring)
35
+        m = re.search(r"(zip|mozjs|.*-)([0-9_.]+)(\.source|\.tar|-src|\.zip|\+md|\.tgz).*",
36
+                      filename)
35 37
         if m is None:
36
-            print "Unable to parse "+filename
38
+            print("Unable to parse " + filename)
37 39
             return inputstring
38 40
         name = m.group(2)
39 41
         return name.replace("_", ".")
... ...
@@ -1,73 +1,71 @@
1
-
2 1
 import WorkerThread
2
+
3 3
 class ThreadPool(object):
4
-    
5
-    mapWorkerThreads={}
6
-    activeWorkerThreads=[]
7
-    inactiveWorkerThreads=[]
8
-    mapPackageToCycle={}
9
-    listAvailableCyclicPackages=[]
10
-    listBuildOptionPackages=[]
11
-    pkgBuildOptionFile=""
12
-    pkgBuildType="chroot"
13
-    logger=None
14
-    statusEvent=None
15
-    
4
+
5
+    mapWorkerThreads = {}
6
+    activeWorkerThreads = []
7
+    inactiveWorkerThreads = []
8
+    mapPackageToCycle = {}
9
+    listAvailableCyclicPackages = []
10
+    listBuildOptionPackages = []
11
+    pkgBuildOptionFile = ""
12
+    pkgBuildType = "chroot"
13
+    logger = None
14
+    statusEvent = None
15
+
16 16
     @staticmethod
17 17
     def clear():
18 18
         ThreadPool.mapWorkerThreads.clear()
19
-        ThreadPool.activeWorkerThreads=[]
20
-        ThreadPool.inactiveWorkerThreads=[]
21
-    
19
+        ThreadPool.activeWorkerThreads = []
20
+        ThreadPool.inactiveWorkerThreads = []
21
+
22 22
     @staticmethod
23 23
     def getAllWorkerObjects():
24
-        listWorkerObjs=[]
24
+        listWorkerObjs = []
25 25
         listWorkerKeys = ThreadPool.mapWorkerThreads.keys()
26 26
         for x in listWorkerKeys:
27
-            xobj=ThreadPool.mapWorkerThreads[x]
27
+            xobj = ThreadPool.mapWorkerThreads[x]
28 28
             listWorkerObjs.append(xobj)
29 29
         return listWorkerObjs
30
-        
30
+
31 31
     @staticmethod
32 32
     def addWorkerThread(workerThreadName):
33 33
         workerThread = WorkerThread.WorkerThread(
34
-                ThreadPool.statusEvent,
35
-                workerThreadName,
36
-                ThreadPool.mapPackageToCycle,
37
-                ThreadPool.listAvailableCyclicPackages,
38
-                ThreadPool.logger,
39
-                ThreadPool.listBuildOptionPackages,
40
-                ThreadPool.pkgBuildOptionFile,
41
-                ThreadPool.pkgBuildType)
42
-        ThreadPool.mapWorkerThreads[workerThreadName]=workerThread
43
-   
34
+            ThreadPool.statusEvent,
35
+            workerThreadName,
36
+            ThreadPool.mapPackageToCycle,
37
+            ThreadPool.listAvailableCyclicPackages,
38
+            ThreadPool.logger,
39
+            ThreadPool.listBuildOptionPackages,
40
+            ThreadPool.pkgBuildOptionFile,
41
+            ThreadPool.pkgBuildType)
42
+        ThreadPool.mapWorkerThreads[workerThreadName] = workerThread
43
+
44 44
     @staticmethod
45 45
     def makeWorkerThreadActive(threadName):
46 46
         if threadName in ThreadPool.inactiveWorkerThreads:
47 47
             ThreadPool.inactiveWorkerThreads.remove(threadName)
48 48
         ThreadPool.activeWorkerThreads.append(threadName)
49
-        
49
+
50 50
     @staticmethod
51 51
     def makeWorkerThreadInActive(threadName):
52 52
         if threadName in ThreadPool.activeWorkerThreads:
53 53
             ThreadPool.activeWorkerThreads.remove(threadName)
54 54
         ThreadPool.inactiveWorkerThreads.append(threadName)
55
-    
55
+
56 56
     @staticmethod
57 57
     def startWorkerThread(threadName):
58 58
         ThreadPool.mapWorkerThreads[threadName].start()
59
-    
59
+
60 60
     @staticmethod
61 61
     def getListInactiveWorkerThreads():
62 62
         return ThreadPool.inactiveWorkerThreads
63
-    
63
+
64 64
     @staticmethod
65 65
     def activateWorkerThreads(numOfThreadsToActivate):
66 66
         while len(ThreadPool.inactiveWorkerThreads) > 0 and numOfThreadsToActivate > 0:
67
-            threadName=ThreadPool.inactiveWorkerThreads.pop()
67
+            threadName = ThreadPool.inactiveWorkerThreads.pop()
68 68
             ThreadPool.addWorkerThread(threadName)
69 69
             ThreadPool.startWorkerThread(threadName)
70 70
             ThreadPool.makeWorkerThreadActive(threadName)
71 71
             numOfThreadsToActivate = numOfThreadsToActivate -1
72
-
73
-            
... ...
@@ -1,106 +1,107 @@
1
+import os.path
2
+import platform
3
+import traceback
1 4
 from CommandUtils import CommandUtils
2 5
 from ChrootUtils import ChrootUtils
3 6
 from Logger import Logger
4 7
 from PackageUtils import PackageUtils
5 8
 from constants import constants
6
-import subprocess
7
-import os.path
8
-import platform
9
-import traceback
10
-import shutil
11 9
 
12 10
 class ToolChainUtils(object):
13 11
 
14
-    def __init__(self,logName=None,logPath=None):
12
+    def __init__(self, logName=None, logPath=None):
15 13
         if logName is None:
16 14
             logName = "Toolchain Utils"
17 15
         if logPath is None:
18 16
             logPath = constants.logPath
19
-        self.logName=logName
20
-        self.logPath=logPath
21
-        self.logger=Logger.getLogger(logName,logPath)
17
+        self.logName = logName
18
+        self.logPath = logPath
19
+        self.logger = Logger.getLogger(logName, logPath)
22 20
         self.adjustToolChainScript = "adjust-tool-chain.sh"
23 21
         self.localegenScript = "./locale-gen.sh"
24 22
         self.localegenConfig = "./locale-gen.conf"
25
-        self.prepareBuildRootCmd="./prepare-build-root.sh"
23
+        self.prepareBuildRootCmd = "./prepare-build-root.sh"
26 24
         self.rpmbuildCommand = "rpmbuild"
27
-        if os.geteuid()==0:
28
-            self.rpmCommand="rpm"
25
+        if os.geteuid() == 0:
26
+            self.rpmCommand = "rpm"
29 27
         else:
30
-            self.rpmCommand="fakeroot-ng rpm"
28
+            self.rpmCommand = "fakeroot-ng rpm"
31 29
 
32
-    def prepareBuildRoot(self,chrootID):
30
+    def prepareBuildRoot(self, chrootID):
33 31
         self.logger.info("Preparing build environment")
34 32
         cmdUtils = CommandUtils()
35
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/dev")
36
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/etc")
37
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/proc")
38
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/run")
39
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/sys")
40
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+"/tmp")
41
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath)
42
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/RPMS/"+platform.machine())
43
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/RPMS/noarch")
44
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/SOURCES")
45
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/SPECS")
46
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/LOGS")
47
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/BUILD")
48
-        cmdUtils.runCommandInShell("mkdir -p "+chrootID+constants.topDirPath+"/BUILDROOT")
33
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/dev")
34
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/etc")
35
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/proc")
36
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/run")
37
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/sys")
38
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + "/tmp")
39
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath)
40
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath +
41
+                                   "/RPMS/" + platform.machine())
42
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/RPMS/noarch")
43
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/SOURCES")
44
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/SPECS")
45
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/LOGS")
46
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/BUILD")
47
+        cmdUtils.runCommandInShell("mkdir -p " + chrootID + constants.topDirPath + "/BUILDROOT")
49 48
 
50
-        prepareChrootCmd=self.prepareBuildRootCmd+" "+chrootID
51
-        logFile=self.logPath+"/prepareBuildRoot.log"
52
-        returnVal=cmdUtils.runCommandInShell(prepareChrootCmd,logFile)
49
+        prepareChrootCmd = self.prepareBuildRootCmd + " " + chrootID
50
+        logFile = self.logPath + "/prepareBuildRoot.log"
51
+        returnVal = cmdUtils.runCommandInShell(prepareChrootCmd, logFile)
53 52
         if not returnVal:
54 53
             self.logger.error("Prepare build root script failed.Unable to prepare chroot.")
55 54
             raise Exception("Prepare build root script failed")
56 55
 
57
-        self.logger.info("Successfully prepared chroot:"+chrootID)
56
+        self.logger.info("Successfully prepared chroot:" + chrootID)
58 57
 
59
-    def findRPMFileInGivenLocation(self,package,rpmdirPath):
58
+    def findRPMFileInGivenLocation(self, package, rpmdirPath):
60 59
         cmdUtils = CommandUtils()
61
-        listFoundRPMFiles = cmdUtils.findFile(package+"-*.rpm",rpmdirPath)
62
-        listFilterRPMFiles=[]
60
+        listFoundRPMFiles = cmdUtils.findFile(package + "-*.rpm", rpmdirPath)
61
+        listFilterRPMFiles = []
63 62
         for f in listFoundRPMFiles:
64
-            rpmFileName=os.path.basename(f)
65
-            checkRPMName=rpmFileName.replace(package,"")
63
+            rpmFileName = os.path.basename(f)
64
+            checkRPMName = rpmFileName.replace(package, "")
66 65
             rpmNameSplit = checkRPMName.split("-")
67 66
             if len(rpmNameSplit) == 3:
68 67
                 listFilterRPMFiles.append(f)
69
-        if len(listFilterRPMFiles) == 1 :
68
+        if len(listFilterRPMFiles) == 1:
70 69
             return listFilterRPMFiles[0]
71
-        if len(listFilterRPMFiles) == 0 :
70
+        if len(listFilterRPMFiles) == 0:
72 71
             return None
73
-        if len(listFilterRPMFiles) > 1 :
74
-            self.logger.error("Found multiple rpm files for given package in rpm directory.Unable to determine the rpm file for package:"+package)
72
+        if len(listFilterRPMFiles) > 1:
73
+            self.logger.error("Found multiple rpm files for given package in rpm directory." +
74
+                              "Unable to determine the rpm file for package:" + package)
75 75
             return None
76 76
 
77 77
     def buildCoreToolChainPackages(self, listBuildOptionPackages, pkgBuildOptionFile):
78 78
         self.logger.info("Building core toolchain packages.....")
79
-        chrootID=None
79
+        chrootID = None
80 80
         pkgCount = 0
81 81
         try:
82
-            pkgUtils=PackageUtils(self.logName,self.logPath)
82
+            pkgUtils = PackageUtils(self.logName, self.logPath)
83 83
             for package in constants.listCoreToolChainPackages:
84
-                rpmPkg=pkgUtils.findRPMFileForGivenPackage(package)
84
+                rpmPkg = pkgUtils.findRPMFileForGivenPackage(package)
85 85
                 if rpmPkg is not None:
86 86
                     continue
87 87
                 self.logger.info("Building core toolchain package: " + package)
88
-                chrUtils = ChrootUtils(self.logName,self.logPath)
89
-                chrootName="build-"+package
90
-                destLogPath=constants.logPath+"/build-"+package
88
+                chrUtils = ChrootUtils(self.logName, self.logPath)
89
+                chrootName = "build-"+package
90
+                destLogPath = constants.logPath + "/build-" + package
91 91
                 if not os.path.isdir(destLogPath):
92 92
                     cmdUtils = CommandUtils()
93
-                    cmdUtils.runCommandInShell("mkdir -p "+destLogPath)
94
-                returnVal,chrootID = chrUtils.createChroot(chrootName)
93
+                    cmdUtils.runCommandInShell("mkdir -p " + destLogPath)
94
+                returnVal, chrootID = chrUtils.createChroot(chrootName)
95 95
                 if not returnVal:
96 96
                     self.logger.error("Creating chroot failed")
97 97
                     raise Exception("creating chroot failed")
98 98
                 self.installToolChainRPMS(chrootID, package, destLogPath)
99 99
                 pkgUtils.adjustGCCSpecs(package, chrootID, destLogPath)
100
-                pkgUtils.buildRPMSForGivenPackage(package, chrootID, listBuildOptionPackages, pkgBuildOptionFile, destLogPath)
100
+                pkgUtils.buildRPMSForGivenPackage(package, chrootID, listBuildOptionPackages,
101
+                                                  pkgBuildOptionFile, destLogPath)
101 102
                 pkgCount += 1
102 103
                 chrUtils.destroyChroot(chrootID)
103
-                chrootID=None
104
+                chrootID = None
104 105
             self.logger.info("Successfully built toolchain")
105 106
             if chrootID is not None:
106 107
                 chrUtils.destroyChroot(chrootID)
... ...
@@ -110,77 +111,87 @@ class ToolChainUtils(object):
110 110
             traceback.print_exc()
111 111
             raise e
112 112
         return pkgCount
113
-                
114
-    def installToolChainRPMS(self,chrootID, packageName, logPath=None):
113
+
114
+    def installToolChainRPMS(self, chrootID, packageName, logPath=None):
115 115
         if logPath is None:
116
-            logPath=self.logPath
116
+            logPath = self.logPath
117 117
         cmdUtils = CommandUtils()
118 118
         self.prepareBuildRoot(chrootID)
119 119
         self.logger.info("Installing Tool Chain RPMS.......")
120 120
         rpmFiles = ""
121 121
         packages = ""
122 122
         for package in constants.listToolChainRPMsToInstall:
123
-            pkgUtils=PackageUtils(self.logName,self.logPath)
123
+            pkgUtils = PackageUtils(self.logName, self.logPath)
124 124
             rpmFile = None
125 125
             if constants.rpmCheck:
126
-                rpmFile=pkgUtils.findRPMFileForGivenPackage(package)
126
+                rpmFile = pkgUtils.findRPMFileForGivenPackage(package)
127 127
             else:
128 128
                 if (packageName not in constants.listToolChainRPMsToInstall or
129
-                        constants.listToolChainRPMsToInstall.index(packageName) > constants.listToolChainRPMsToInstall.index(package)):
130
-                    rpmFile=pkgUtils.findRPMFileForGivenPackage(package)
129
+                        constants.listToolChainRPMsToInstall.index(packageName) >
130
+                        constants.listToolChainRPMsToInstall.index(package)):
131
+                    rpmFile = pkgUtils.findRPMFileForGivenPackage(package)
131 132
             if rpmFile is None:
132 133
                 # sqlite-autoconf package was renamed, but it still published as sqlite-autoconf
133 134
                 if (package == "sqlite") and (platform.machine() == "x86_64"):
134 135
                     package = "sqlite-autoconf"
135
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
136
+                rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
136 137
                 if rpmFile is None:
137 138
                     if package in constants.listOfRPMsProvidedAfterBuild:
138
-                        self.logger.info("No old version of "+package+" exists, skip until the new version is built")
139
+                        self.logger.info("No old version of " + package +
140
+                                         " exists, skip until the new version is built")
139 141
                         continue
140
-                    self.logger.error("Unable to find rpm "+ package +" in current and previous versions")
142
+                    self.logger.error("Unable to find rpm " + package +
143
+                                      " in current and previous versions")
141 144
                     raise Exception("Input Error")
142 145
             rpmFiles += " " + rpmFile
143 146
             packages += " " + package
144 147
 
145
-        self.logger.debug("Installing toolchain rpms:"+packages)
146
-        cmd=self.rpmCommand + " -i -v --nodeps --noorder --force --root "+chrootID+" --define \'_dbpath /var/lib/rpm\' "+ rpmFiles
147
-        retVal = cmdUtils.runCommandInShell(cmd, logPath+"/install_toolchain_rpms.log")
148
+        self.logger.debug("Installing toolchain rpms:" + packages)
149
+        cmd = (self.rpmCommand + " -i -v --nodeps --noorder --force --root " +
150
+               chrootID +" --define \'_dbpath /var/lib/rpm\' "+ rpmFiles)
151
+        retVal = cmdUtils.runCommandInShell(cmd, logPath + "/install_toolchain_rpms.log")
148 152
         if not retVal:
149 153
             self.logger.debug("Command Executed:" + cmd)
150 154
             self.logger.error("Installing tool chain  failed")
151 155
             raise Exception("RPM installation failed")
152
-        self.logger.info("Successfully installed default Tool Chain RPMS in Chroot:"+chrootID)
153
-        print "Building Package:"+ packageName
154
-        print constants.perPackageToolChain
156
+        self.logger.info("Successfully installed default Tool Chain RPMS in Chroot:" + chrootID)
157
+        print("Building Package: ".format(packageName))
158
+        print(constants.perPackageToolChain)
155 159
         if packageName in constants.perPackageToolChain:
156
-            print constants.perPackageToolChain[packageName]
157
-            self.installCustomToolChainRPMS(chrootID, constants.perPackageToolChain[packageName], packageName);
158
-   
160
+            print(constants.perPackageToolChain[packageName])
161
+            self.installCustomToolChainRPMS(chrootID, constants.perPackageToolChain[packageName],
162
+                                            packageName)
163
+
159 164
     def installCustomToolChainRPMS(self, chrootID, listOfToolChainPkgs, packageName):
160
-        self.logger.info("Installing package specific tool chain RPMs for " + packageName + ".......")
165
+        self.logger.info("Installing package specific tool chain RPMs for " + packageName +
166
+                         ".......")
161 167
         rpmFiles = ""
162 168
         packages = ""
163 169
         cmdUtils = CommandUtils()
164 170
         for package in listOfToolChainPkgs:
165
-            pkgUtils=PackageUtils(self.logName,self.logPath)
166
-            print "DEBUG:" + package
171
+            pkgUtils = PackageUtils(self.logName, self.logPath)
172
+            print("DEBUG:" + package)
167 173
             if "openjre8" in packageName or "openjdk8" in packageName:
168 174
                 # x86_64 has openjdk/jre as a published rpms but aarch64 has openjdk8/jre8
169 175
                 # Remove this condition after publishxrpms for x86_^4 got updated
170
-                if (package == "openjdk" or package == "openjre") and (platform.machine() == "aarch64"):
176
+                if ((package == "openjdk" or package == "openjre") and
177
+                        platform.machine() == "aarch64"):
171 178
                     package = package + "8"
172
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishXRPMRepo)
179
+                rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishXRPMRepo)
173 180
             else:
174
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
181
+                rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
175 182
             if rpmFile is None:
176
-                self.logger.error("Unable to find rpm "+ package +" in current and previous versions")
183
+                self.logger.error("Unable to find rpm "+ package +
184
+                                  " in current and previous versions")
177 185
                 raise Exception("Input Error")
178 186
             rpmFiles += " " + rpmFile
179 187
             packages += " " + package
180 188
 
181
-        self.logger.debug("Installing custom rpms:"+packages)
182
-        cmd=self.rpmCommand + " -i -v --nodeps --noorder --force --root "+chrootID+" --define \'_dbpath /var/lib/rpm\' "+ rpmFiles
183
-        retVal = cmdUtils.runCommandInShell(cmd, self.logPath+"/install_custom_toolchain_rpms.log")
189
+        self.logger.debug("Installing custom rpms:" + packages)
190
+        cmd = (self.rpmCommand + " -i -v --nodeps --noorder --force --root " +
191
+               chrootID + " --define \'_dbpath /var/lib/rpm\' " + rpmFiles)
192
+        retVal = cmdUtils.runCommandInShell(cmd, self.logPath +
193
+                                            "/install_custom_toolchain_rpms.log")
184 194
         if not retVal:
185 195
             self.logger.debug("Command Executed:" + cmd)
186 196
             self.logger.error("Installing tool chain  failed")
... ...
@@ -201,9 +212,11 @@ class ToolChainUtils(object):
201 201
                 rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
202 202
                 if rpmFile is None:
203 203
                     if package in constants.listOfRPMsProvidedAfterBuild:
204
-                        self.logger.info("No old version of " + package + " exists, skip until the new version is built")
204
+                        self.logger.info("No old version of " + package +
205
+                                         " exists, skip until the new version is built")
205 206
                         continue
206
-                    self.logger.error("Unable to find rpm " + package + " in current and previous versions")
207
+                    self.logger.error("Unable to find rpm " + package +
208
+                                      " in current and previous versions")
207 209
                     raise Exception("Input Error")
208 210
             if rpmFile.find("stage/PUBLISHRPMS"):
209 211
                 rpmFile = rpmFile.replace(constants.prevPublishRPMRepo, "/publishrpms")
... ...
@@ -224,7 +237,8 @@ class ToolChainUtils(object):
224 224
             self.logger.error("Installing tool chain in container failed")
225 225
             raise Exception("RPM installation in container failed")
226 226
         self.logger.info(tcInstallLog)
227
-        self.logger.info("Successfully installed default tool-chain RPMS in container: " + containerID.short_id)
227
+        self.logger.info("Successfully installed default tool-chain RPMS in container: " +
228
+                         containerID.short_id)
228 229
 
229 230
     def installCustomToolChainRPMSinContainer(self, containerID, listOfToolChainPkgs, packageName):
230 231
         self.logger.info("Installing package specific tool chain RPMs for " + packageName)
... ...
@@ -232,11 +246,12 @@ class ToolChainUtils(object):
232 232
         packages = ""
233 233
         for package in listOfToolChainPkgs:
234 234
             if "openjre8" in packageName or "openjdk8" in packageName:
235
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishXRPMRepo)
235
+                rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishXRPMRepo)
236 236
             else:
237
-                rpmFile=self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
237
+                rpmFile = self.findRPMFileInGivenLocation(package, constants.prevPublishRPMRepo)
238 238
             if rpmFile is None:
239
-                self.logger.error("Unable to find rpm " + package + " in current and previous versions")
239
+                self.logger.error("Unable to find rpm " + package +
240
+                                  " in current and previous versions")
240 241
                 raise Exception("Input Error")
241 242
             if rpmFile.find("stage/PUBLISHRPMS"):
242 243
                 rpmFile = rpmFile.replace(constants.prevPublishRPMRepo, "/publishrpms")
... ...
@@ -249,11 +264,13 @@ class ToolChainUtils(object):
249 249
 
250 250
         self.logger.debug("Installing rpms: " + packages)
251 251
         cmd = "rpm -Uvh --nodeps --force " + rpmFiles
252
-        self.logger.debug("VDBG-TCU-installCustomToolChainRPMSinContainer: Installing rpms cmd: " + cmd)
252
+        self.logger.debug("VDBG-TCU-installCustomToolChainRPMSinContainer: Installing rpms cmd: " +
253
+                          cmd)
253 254
         tcInstallLog = containerID.exec_run(cmd)
254 255
         # TODO: Find a way to collect exit status of the command that was run.
255 256
         if not tcInstallLog:
256 257
             self.logger.error("Installing tool chain in container failed")
257 258
             raise Exception("RPM installation in container failed")
258 259
         self.logger.info(tcInstallLog)
259
-        self.logger.info("Successfully installed all tool-chain XRPMS in container: " + containerID.short_id)
260
+        self.logger.info("Successfully installed all tool-chain XRPMS in container: " +
261
+                         containerID.short_id)
... ...
@@ -1,32 +1,33 @@
1
+import threading
1 2
 from PackageBuilder import PackageBuilderChroot
2 3
 from PackageBuilder import PackageBuilderContainer
3
-import threading
4 4
 import Scheduler
5 5
 import ThreadPool
6 6
 
7 7
 class WorkerThread(threading.Thread):
8 8
 
9
-    def __init__(self,event,name,mapPackageToCycle,listAvailableCyclicPackages,logger,listBuildOptionPackages,pkgBuildOptionFile,pkgBuildType):
9
+    def __init__(self, event, name, mapPackageToCycle, listAvailableCyclicPackages, logger,
10
+                 listBuildOptionPackages, pkgBuildOptionFile, pkgBuildType):
10 11
         threading.Thread.__init__(self)
11
-        self.statusEvent=event
12
-        self.name=name
13
-        self.mapPackageToCycle=mapPackageToCycle
14
-        self.listAvailableCyclicPackages=listAvailableCyclicPackages
15
-        self.logger=logger
16
-        self.listBuildOptionPackages=listBuildOptionPackages
17
-        self.pkgBuildOptionFile=pkgBuildOptionFile
18
-        self.pkgBuildType=pkgBuildType
12
+        self.statusEvent = event
13
+        self.name = name
14
+        self.mapPackageToCycle = mapPackageToCycle
15
+        self.listAvailableCyclicPackages = listAvailableCyclicPackages
16
+        self.logger = logger
17
+        self.listBuildOptionPackages = listBuildOptionPackages
18
+        self.pkgBuildOptionFile = pkgBuildOptionFile
19
+        self.pkgBuildType = pkgBuildType
19 20
 
20 21
     def run(self):
21
-        buildThreadFailed=False
22
+        buildThreadFailed = False
22 23
         ThreadPool.ThreadPool.makeWorkerThreadActive(self.name)
23
-        self.logger.info("Thread "+self.name +" is starting now")
24
+        self.logger.info("Thread " + self.name + " is starting now")
24 25
         while True:
25
-            outputMap={}
26
+            outputMap = {}
26 27
             pkg = Scheduler.Scheduler.getNextPackageToBuild()
27 28
             if pkg is None:
28 29
                 break
29
-            self.logger.info("Thread "+self.name+" is building package:"+ pkg)
30
+            self.logger.info("Thread " + self.name + " is building package:" + pkg)
30 31
             if self.pkgBuildType == "chroot":
31 32
                 pkgBuilder = PackageBuilderChroot(self.mapPackageToCycle,
32 33
                                                   self.listAvailableCyclicPackages,
... ...
@@ -39,15 +40,16 @@ class WorkerThread(threading.Thread):
39 39
                                                      self.listBuildOptionPackages,
40 40
                                                      self.pkgBuildOptionFile,
41 41
                                                      self.pkgBuildType)
42
-            t = threading.Thread(target=pkgBuilder.buildPackageThreadAPI,args=(pkg,outputMap,pkg))
42
+            t = threading.Thread(target=pkgBuilder.buildPackageThreadAPI,
43
+                                 args=(pkg, outputMap, pkg))
43 44
             t.start()
44 45
             t.join()
45
-            if not outputMap.has_key(pkg) or outputMap[pkg] == False:
46
+            if pkg not in outputMap or outputMap[pkg] == False:
46 47
                 buildThreadFailed = True
47 48
                 Scheduler.Scheduler.notifyPackageBuildFailed(pkg)
48 49
                 self.logger.info("Thread "+self.name +" stopped building package:" + pkg)
49 50
                 break
50
-            self.logger.info("Thread "+self.name+" finished building package:" + pkg)
51
+            self.logger.info("Thread "+ self.name + " finished building package:" + pkg)
51 52
             Scheduler.Scheduler.notifyPackageBuildCompleted(pkg)
52 53
 
53 54
         if buildThreadFailed:
... ...
@@ -1,85 +1,102 @@
1
-#!/usr/bin/env python
1
+#!/usr/bin/env python3
2 2
 
3 3
 from argparse import ArgumentParser
4 4
 import os.path
5 5
 import platform
6
+import collections
7
+import traceback
8
+import sys
9
+import json
6 10
 from CommandUtils import CommandUtils
7 11
 from Logger import Logger
8 12
 from constants import constants
9 13
 from PackageManager import PackageManager
10
-import json
11
-import sys
12 14
 from SpecData import SPECS
13
-from SpecUtils import Specutils
14
-from StringUtils import StringUtils
15
-import collections
16
-import traceback
17 15
 from PackageInfo import PackageInfo
18 16
 
19 17
 def main():
20 18
     usage = "Usage: %prog [options] <package name>"
21 19
     parser = ArgumentParser(usage)
22
-    parser.add_argument("-s",  "--spec-path",  dest="specPath",  default="../../SPECS")
23
-    parser.add_argument("-x",  "--source-path",  dest="sourcePath",  default="../../stage/SOURCES")
24
-    parser.add_argument("-r",  "--rpm-path",  dest="rpmPath",  default="../../stage/RPMS")
25
-    parser.add_argument("-i",  "--install-package", dest="installPackage",  default=False,  action ="store_true")
26
-    parser.add_argument("-p",  "--publish-RPMS-path", dest="publishRPMSPath",  default="../../stage/PUBLISHRPMS")
27
-    parser.add_argument("-e",  "--publish-XRPMS-path", dest="publishXRPMSPath",  default="../../stage/PUBLISHXRPMS")
28
-    parser.add_argument("-l",  "--log-path", dest="logPath",  default="../../stage/LOGS")
29
-    parser.add_argument("-z",  "--top-dir-path", dest="topDirPath",  default="/usr/src/photon")
30
-    parser.add_argument("-b",  "--build-root-path", dest="buildRootPath",  default="/mnt")
31
-    parser.add_argument("-t",  "--threads", dest="buildThreads",  default=1, type=int, help="Number of working threads")
32
-    parser.add_argument("-m",  "--tool-chain-stage", dest="toolChainStage",  default="None")
33
-    parser.add_argument("-c",  "--pullsources-config", dest="pullsourcesConfig",  default="pullsources.conf")
34
-    parser.add_argument("-d",  "--dist", dest="dist",  default="")
35
-    parser.add_argument("-k",  "--input-RPMS-path", dest="inputRPMSPath",   default=None)
36
-    parser.add_argument("-n",  "--build-number", dest="buildNumber",  default="0000000")
37
-    parser.add_argument("-v",  "--release-version", dest="releaseVersion",  default="NNNnNNN")
38
-    parser.add_argument("-u",  "--enable-rpmcheck", dest="rpmCheck",  default=False, action ="store_true")
39
-    parser.add_argument("-a",  "--source-rpm-path",  dest="sourceRpmPath",  default="../../stage/SRPMS")
40
-    parser.add_argument("-w",  "--pkginfo-file",  dest="pkgInfoFile",  default="../../stage/pkg_info.json")
41
-    parser.add_argument("-g",  "--pkg-build-option-file",  dest="pkgBuildOptionFile",  default="../../common/data/pkg_build_options.json")
42
-    parser.add_argument("-q",  "--rpmcheck-stop-on-error", dest="rpmCheckStopOnError",  default=False, action ="store_true")
43
-    parser.add_argument("-bd", "--publish-build-dependencies", dest="publishBuildDependencies", default=False)
20
+    parser.add_argument("-s", "--spec-path", dest="specPath", default="../../SPECS")
21
+    parser.add_argument("-x", "--source-path", dest="sourcePath",
22
+                        default="../../stage/SOURCES")
23
+    parser.add_argument("-r", "--rpm-path", dest="rpmPath",
24
+                        default="../../stage/RPMS")
25
+    parser.add_argument("-i", "--install-package", dest="installPackage",
26
+                        default=False, action="store_true")
27
+    parser.add_argument("-p", "--publish-RPMS-path", dest="publishRPMSPath",
28
+                        default="../../stage/PUBLISHRPMS")
29
+    parser.add_argument("-e", "--publish-XRPMS-path", dest="publishXRPMSPath",
30
+                        default="../../stage/PUBLISHXRPMS")
31
+    parser.add_argument("-l", "--log-path", dest="logPath", default="../../stage/LOGS")
32
+    parser.add_argument("-z", "--top-dir-path", dest="topDirPath", default="/usr/src/photon")
33
+    parser.add_argument("-b", "--build-root-path", dest="buildRootPath", default="/mnt")
34
+    parser.add_argument("-t", "--threads", dest="buildThreads",
35
+                        default=1, type=int, help="Number of working threads")
36
+    parser.add_argument("-m", "--tool-chain-stage", dest="toolChainStage", default="None")
37
+    parser.add_argument("-c", "--pullsources-config", dest="pullsourcesConfig",
38
+                        default="pullsources.conf")
39
+    parser.add_argument("-d", "--dist", dest="dist", default="")
40
+    parser.add_argument("-k", "--input-RPMS-path", dest="inputRPMSPath", default=None)
41
+    parser.add_argument("-n", "--build-number", dest="buildNumber", default="0000000")
42
+    parser.add_argument("-v", "--release-version", dest="releaseVersion", default="NNNnNNN")
43
+    parser.add_argument("-u", "--enable-rpmcheck", dest="rpmCheck",
44
+                        default=False, action="store_true")
45
+    parser.add_argument("-a", "--source-rpm-path", dest="sourceRpmPath",
46
+                        default="../../stage/SRPMS")
47
+    parser.add_argument("-w", "--pkginfo-file", dest="pkgInfoFile",
48
+                        default="../../stage/pkg_info.json")
49
+    parser.add_argument("-g", "--pkg-build-option-file", dest="pkgBuildOptionFile",
50
+                        default="../../common/data/pkg_build_options.json")
51
+    parser.add_argument("-q", "--rpmcheck-stop-on-error", dest="rpmCheckStopOnError",
52
+                        default=False, action="store_true")
53
+    parser.add_argument("-bd", "--publish-build-dependencies", dest="publishBuildDependencies",
54
+                        default=False)
44 55
     parser.add_argument("-pw", "--package-weights-path", dest="packageWeightsPath", default=None)
45
-    parser.add_argument("-y",  "--generate-pkg-yaml-files",  dest="generatePkgYamlFiles",  default=False, action ="store_true")
46
-    parser.add_argument("-j",  "--pkg-yaml-dir-path",  dest="pkgYamlDirPath",  default="../../stage/")
47
-    parser.add_argument("-f",  "--pkg-blacklist-file",  dest="pkgBlacklistFile",  default=None)
48
-    parser.add_argument("-bt", "--build-type",  dest="pkgBuildType",  default="chroot")
49
-    parser.add_argument("-F",  "--kat-build", dest="katBuild",  default=None)
56
+    parser.add_argument("-y", "--generate-pkg-yaml-files", dest="generatePkgYamlFiles",
57
+                        default=False, action="store_true")
58
+    parser.add_argument("-j", "--pkg-yaml-dir-path", dest="pkgYamlDirPath",
59
+                        default="../../stage/")
60
+    parser.add_argument("-f", "--pkg-blacklist-file", dest="pkgBlacklistFile", default=None)
61
+    parser.add_argument("-bt", "--build-type", dest="pkgBuildType", default="chroot")
62
+    parser.add_argument("-F", "--kat-build", dest="katBuild", default=None)
50 63
     parser.add_argument("PackageName", nargs='?')
51 64
     options = parser.parse_args()
52
-    cmdUtils=CommandUtils()
65
+    cmdUtils = CommandUtils()
53 66
     if not os.path.isdir(options.logPath):
54
-        cmdUtils.runCommandInShell("mkdir -p "+options.logPath)
67
+        cmdUtils.runCommandInShell("mkdir -p " + options.logPath)
55 68
 
56
-    logger=Logger.getLogger(options.logPath+"/Main")
57
-    errorFlag=False
69
+    logger = Logger.getLogger(options.logPath + "/Main")
70
+    errorFlag = False
58 71
     package = None
59 72
     pkgInfoJsonFile = options.pkgInfoFile
60 73
     if not os.path.isdir(options.sourcePath):
61
-        logger.error("Given Sources Path is not a directory:"+options.sourcePath)
74
+        logger.error("Given Sources Path is not a directory:" + options.sourcePath)
62 75
         errorFlag = True
63 76
     if not os.path.isdir(options.specPath):
64
-        logger.error("Given Specs Path is not a directory:"+options.specPath)
77
+        logger.error("Given Specs Path is not a directory:" + options.specPath)
65 78
         errorFlag = True
66 79
     if not os.path.isdir(options.publishRPMSPath):
67
-        logger.error("Given RPMS Path is not a directory:"+options.publishRPMSPath)
80
+        logger.error("Given RPMS Path is not a directory:" + options.publishRPMSPath)
68 81
         errorFlag = True
69 82
     if not os.path.isdir(options.publishXRPMSPath):
70
-        logger.error("Given X RPMS Path is not a directory:"+options.publishXRPMSPath)
83
+        logger.error("Given X RPMS Path is not a directory:" + options.publishXRPMSPath)
71 84
         errorFlag = True
72
-    if not os.path.isdir(options.publishRPMSPath+"/" + platform.machine()):
73
-        logger.error("Given RPMS Path is missing "+platform.machine()+" sub-directory:"+options.publishRPMSPath)
85
+    if not os.path.isdir(options.publishRPMSPath + "/" + platform.machine()):
86
+        logger.error("Given RPMS Path is missing " + platform.machine()+
87
+                     " sub-directory:"+options.publishRPMSPath)
74 88
         errorFlag = True
75 89
     if not os.path.isdir(options.publishXRPMSPath+"/" + platform.machine()):
76
-        logger.error("Given X RPMS Path is missing "+platform.machine()+" sub-directory:"+options.publishXRPMSPath)
90
+        logger.error("Given X RPMS Path is missing "+platform.machine()+
91
+                     " sub-directory:"+options.publishXRPMSPath)
77 92
         errorFlag = True
78 93
     if not os.path.isdir(options.publishRPMSPath+"/noarch"):
79
-        logger.error("Given RPMS Path is missing noarch sub-directory:"+options.publishRPMSPath)
94
+        logger.error("Given RPMS Path is missing noarch sub-directory:"+
95
+                     options.publishRPMSPath)
80 96
         errorFlag = True
81 97
     if not os.path.isdir(options.publishXRPMSPath+"/noarch"):
82
-        logger.error("Given X RPMS Path is missing noarch sub-directory:"+options.publishXRPMSPath)
98
+        logger.error("Given X RPMS Path is missing noarch sub-directory:"+
99
+                     options.publishXRPMSPath)
83 100
         errorFlag = True
84 101
     if not os.path.isfile(options.pkgBuildOptionFile):
85 102
         logger.warning("Given JSON File is not a file:"+options.pkgBuildOptionFile)
... ...
@@ -93,16 +110,19 @@ def main():
93 93
         errorFlag = True
94 94
 
95 95
     if options.generatePkgYamlFiles:
96
-        if options.pkgBlacklistFile is not None and options.pkgBlacklistFile != "" and not os.path.isfile(options.pkgBlacklistFile):
97
-            logger.error("Given package blacklist file is not valid:"+options.pkgBlacklistFile)
96
+        if (options.pkgBlacklistFile is not None and
97
+                options.pkgBlacklistFile != "" and
98
+                not os.path.isfile(options.pkgBlacklistFile)):
99
+            logger.error("Given package blacklist file is not valid:"+
100
+                         options.pkgBlacklistFile)
98 101
             errorFlag = True
99 102
 
100
-    if options.installPackage :
103
+    if options.installPackage:
101 104
         if not options.PackageName:
102 105
             logger.error("Please provide package name")
103 106
             errorFlag = True
104 107
         else:
105
-            package=options.PackageName
108
+            package = options.PackageName
106 109
 
107 110
     if errorFlag:
108 111
         logger.error("Found some errors. Please fix input options and re-run it.")
... ...
@@ -139,7 +159,7 @@ def main():
139 139
     try:
140 140
         constants.initialize(options)
141 141
         # parse SPECS folder
142
-        SPECS();
142
+        SPECS()
143 143
         if package == "packages_list":
144 144
             buildPackagesList(options.buildRootPath+"/../packages_list.csv")
145 145
         elif options.generatePkgYamlFiles:
... ...
@@ -153,9 +173,12 @@ def main():
153 153
             pkgManager = PackageManager()
154 154
             pkgManager.buildToolChainPackages(options.buildThreads)
155 155
         elif options.installPackage:
156
-            buildAPackage(package, listBuildOptionPackages, options.pkgBuildOptionFile, options.buildThreads, options.pkgBuildType)
156
+            buildAPackage(package, listBuildOptionPackages, options.pkgBuildOptionFile,
157
+                          options.buildThreads, options.pkgBuildType)
157 158
         else:
158
-            buildPackagesForAllSpecs(listBuildOptionPackages, options.pkgBuildOptionFile, logger, options.buildThreads, pkgInfoJsonFile, options.pkgBuildType)
159
+            buildPackagesForAllSpecs(listBuildOptionPackages, options.pkgBuildOptionFile,
160
+                                     logger, options.buildThreads, pkgInfoJsonFile,
161
+                                     options.pkgBuildType)
159 162
     except Exception as e:
160 163
         logger.error("Caught an exception")
161 164
         logger.error(str(e))
... ...
@@ -167,7 +190,7 @@ def main():
167 167
 def buildPackagesList(csvFilename):
168 168
     csvFile = open(csvFilename, "w")
169 169
     csvFile.write("Package,Version,License,URL,Sources,Patches\n")
170
-    listPackages =  SPECS.getData().getListPackages()
170
+    listPackages = SPECS.getData().getListPackages()
171 171
     listPackages.sort()
172 172
     for package in listPackages:
173 173
         name = package
... ...
@@ -201,7 +224,7 @@ def buildSourcesList(yamlDir, blackListPkgs, logger, singleFile=True):
201 201
         cmdUtils.runCommandInShell("mkdir -p "+yamlSourceDir)
202 202
     if singleFile:
203 203
         yamlFile = open(yamlSourceDir+"/sources_list.yaml", "w")
204
-    listPackages =  SPECS.getData().getListPackages()
204
+    listPackages = SPECS.getData().getListPackages()
205 205
     listPackages.sort()
206 206
     import PullSources
207 207
     for package in listPackages:
... ...
@@ -211,7 +234,7 @@ def buildSourcesList(yamlDir, blackListPkgs, logger, singleFile=True):
211 211
         ossversion = SPECS.getData().getVersion(package)
212 212
         modified = False
213 213
         listPatches = SPECS.getData().getPatches(package)
214
-        if listPatches is not None and len(listPatches) > 0 :
214
+        if listPatches is not None and len(listPatches) > 0:
215 215
             modified = True
216 216
         url = SPECS.getData().getSourceURL(package)
217 217
         if url is None:
... ...
@@ -219,11 +242,12 @@ def buildSourcesList(yamlDir, blackListPkgs, logger, singleFile=True):
219 219
 
220 220
         sourceName = None
221 221
         listSourceNames = SPECS.getData().getSources(package)
222
-        if len(listSourceNames) >0:
223
-            sourceName=listSourceNames[0]
222
+        if len(listSourceNames) > 0:
223
+            sourceName = listSourceNames[0]
224 224
             sha1 = SPECS.getData().getSHA1(package, sourceName)
225 225
             if sha1 is not None:
226
-                PullSources.get(sourceName, sha1, yamlSourceDir, constants.pullsourcesConfig, logger)
226
+                PullSources.get(sourceName, sha1, yamlSourceDir,
227
+                                constants.pullsourcesConfig, logger)
227 228
 
228 229
         if not singleFile:
229 230
             yamlFile = open(yamlSourceDir+"/"+ossname+"-"+ossversion+".yaml", "w")
... ...
@@ -252,7 +276,7 @@ def buildSRPMList(srpmPath, yamlDir, blackListPkgs, logger, singleFile=True):
252 252
         cmdUtils.runCommandInShell("mkdir -p "+yamlSrpmDir)
253 253
     if singleFile:
254 254
         yamlFile = open(yamlSrpmDir+"/srpm_list.yaml", "w")
255
-    listPackages =  SPECS.getData().getListPackages()
255
+    listPackages = SPECS.getData().getListPackages()
256 256
     listPackages.sort()
257 257
     for package in listPackages:
258 258
         if package in blackListPkgs:
... ...
@@ -261,17 +285,18 @@ def buildSRPMList(srpmPath, yamlDir, blackListPkgs, logger, singleFile=True):
261 261
         ossversion = SPECS.getData().getVersion(package)
262 262
         ossrelease = SPECS.getData().getRelease(package)
263 263
 
264
-        listFoundSRPMFiles = cmdUtils.findFile(ossname+"-"+ossversion+"-"+ossrelease+".src.rpm",srpmPath)
264
+        listFoundSRPMFiles = cmdUtils.findFile(ossname+"-"+ossversion+"-"+ossrelease+".src.rpm",
265
+                                               srpmPath)
265 266
         srpmName = None
266 267
         if len(listFoundSRPMFiles) == 1:
267
-            srpmFullPath = listFoundSRPMFiles[0];
268
+            srpmFullPath = listFoundSRPMFiles[0]
268 269
             srpmName = os.path.basename(srpmFullPath)
269 270
             cpcmd = "cp "+ srpmFullPath +" "+yamlSrpmDir+"/"
270 271
             returnVal = cmdUtils.runCommandInShell(cpcmd)
271 272
             if not returnVal:
272 273
                 logger.error("Copy SRPM File is failed for package:"+ossname)
273 274
         else:
274
-             logger.error("SRPM file is not found:" +ossname)
275
+            logger.error("SRPM file is not found:" +ossname)
275 276
 
276 277
         if not singleFile:
277 278
             yamlFile = open(yamlSrpmDir+"/"+ossname+"-"+ossversion+"-"+ossrelease+".yaml", "w")
... ...
@@ -291,15 +316,18 @@ def buildSRPMList(srpmPath, yamlDir, blackListPkgs, logger, singleFile=True):
291 291
         yamlFile.close()
292 292
     logger.info("Generated srpm yaml files for all packages")
293 293
 
294
-def buildAPackage(package, listBuildOptionPackages, pkgBuildOptionFile, buildThreads, pkgBuildType):
295
-    listPackages=[]
294
+def buildAPackage(package, listBuildOptionPackages, pkgBuildOptionFile,
295
+                  buildThreads, pkgBuildType):
296
+    listPackages = []
296 297
     listPackages.append(package)
297 298
     pkgManager = PackageManager(pkgBuildType=pkgBuildType)
298 299
     if constants.rpmCheck:
299 300
         constants.setTestForceRPMS(listPackages[:])
300
-    pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile, buildThreads, pkgBuildType)
301
+    pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile,
302
+                             buildThreads, pkgBuildType)
301 303
 
302
-def buildPackagesForAllSpecs(listBuildOptionPackages, pkgBuildOptionFile, logger, buildThreads, pkgInfoJsonFile, pkgBuildType):
304
+def buildPackagesForAllSpecs(listBuildOptionPackages, pkgBuildOptionFile, logger,
305
+                             buildThreads, pkgInfoJsonFile, pkgBuildType):
303 306
     listPackages = SPECS.getData().getListPackages()
304 307
 
305 308
     logger.info("List of packages to build:")
... ...
@@ -307,7 +335,8 @@ def buildPackagesForAllSpecs(listBuildOptionPackages, pkgBuildOptionFile, logger
307 307
     if constants.rpmCheck:
308 308
         constants.setTestForceRPMS(listPackages[:])
309 309
     pkgManager = PackageManager(pkgBuildType=pkgBuildType)
310
-    pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile, buildThreads, pkgBuildType)
310
+    pkgManager.buildPackages(listPackages, listBuildOptionPackages, pkgBuildOptionFile,
311
+                             buildThreads, pkgBuildType)
311 312
 
312 313
     #Generating package info file which is required by installer
313 314
     logger.info("Writing Package info to the file:"+pkgInfoJsonFile)
... ...
@@ -323,7 +352,7 @@ def get_packages_with_build_options(pkg_build_options_file):
323 323
         jsonData.close()
324 324
         pkgs_sorted = pkg_build_option_json.items()
325 325
         for pkg in pkgs_sorted:
326
-            p =  pkg[0].encode('utf-8')
326
+            p = pkg[0].encode('utf-8')
327 327
             packages.append(str(p))
328 328
 
329 329
     return packages
... ...
@@ -338,12 +367,12 @@ def get_all_package_names(build_install_option):
338 338
 
339 339
     for install_option in options_sorted:
340 340
         filename = os.path.join(base_path, install_option[1]["file"])
341
-        jsonData=open(filename)
341
+        jsonData = open(filename)
342 342
         package_list_json = json.load(jsonData)
343 343
         jsonData.close()
344 344
         packages = packages + package_list_json["packages"]
345 345
 
346 346
     return packages
347 347
 
348
-if __name__=="__main__":
348
+if __name__ == "__main__":
349 349
     main()
... ...
@@ -1,16 +1,16 @@
1
-#!/usr/bin/env python
1
+#!/usr/bin/python3
2 2
 import subprocess
3 3
 import sys
4 4
 
5 5
 def cleanUpChroot(chrootPath):
6
-    returnVal,listmountpoints=findmountpoints(chrootPath)
6
+    returnVal, listmountpoints = findmountpoints(chrootPath)
7 7
 
8 8
     if not returnVal:
9 9
         return False
10 10
 
11
-    sortmountpoints(listmountpoints, chrootPath)
11
+    sortmountpoints(listmountpoints)
12 12
 
13
-    print listmountpoints
13
+    print(listmountpoints)
14 14
 
15 15
     if not unmountmountpoints(listmountpoints):
16 16
         return False
... ...
@@ -21,62 +21,67 @@ def cleanUpChroot(chrootPath):
21 21
     return True
22 22
 
23 23
 def removeAllFilesFromChroot(chrootPath):
24
-    cmd="rm -rf "+chrootPath+"/*"
25
-    process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
24
+    cmd = "rm -rf " + chrootPath + "/*"
25
+    process = subprocess.Popen("%s" %cmd, shell=True,
26
+                               stdout=subprocess.PIPE,
27
+                               stderr=subprocess.PIPE)
26 28
     retval = process.wait()
27
-    if retval!=0:
28
-        print "Unable to remove files from chroot "+chrootPath
29
+    if retval != 0:
30
+        print("Unable to remove files from chroot " + chrootPath)
29 31
         return False
30 32
     return True
31 33
 
32 34
 def unmountmountpoints(listmountpoints):
33 35
     if listmountpoints is None:
34 36
         return True
35
-    result=True
37
+    result = True
36 38
     for mountpoint in listmountpoints:
37
-        cmd="umount "+mountpoint
38
-        process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
39
+        cmd = "umount " + mountpoint
40
+        process = subprocess.Popen("%s" %cmd, shell=True, stdout=subprocess.PIPE,
41
+                                   stderr=subprocess.PIPE)
39 42
         retval = process.wait()
40
-        if retval!=0:
43
+        if retval != 0:
41 44
             result = False
42
-            print "Unable to unmount "+mountpoint
45
+            print("Unable to unmount " + mountpoint)
43 46
             break
44 47
     if not result:
45
-        print "Unable to unmount all mounts. Unable to clean up the chroot"
48
+        print("Unable to unmount all mounts. Unable to clean up the chroot")
46 49
         return False
47 50
     return True
48 51
 
49 52
 def findmountpoints(chrootPath):
50 53
     if not chrootPath.endswith("/"):
51 54
         chrootPath = chrootPath + "/"
52
-    cmd="mount | grep "+chrootPath+" | cut -d' ' -s -f3"
53
-    process = subprocess.Popen("%s" %cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
55
+    cmd = "mount | grep " + chrootPath + " | cut -d' ' -s -f3"
56
+    process = subprocess.Popen("%s" %cmd, shell=True,
57
+                               stdout=subprocess.PIPE,
58
+                               stderr=subprocess.PIPE)
54 59
     retval = process.wait()
55
-    if retval!=0:
56
-        print "Unable to find mountpoints in chroot"
57
-        return False,None
58
-    mountpoints=process.communicate()[0]
59
-    mountpoints= mountpoints.replace("\n"," ").strip()
60
+    if retval != 0:
61
+        print("Unable to find mountpoints in chroot")
62
+        return False, None
63
+    mountpoints = process.communicate()[0].decode()
64
+    mountpoints = mountpoints.replace("\n", " ").strip()
60 65
     if mountpoints == "":
61
-        print "No mount points found"
62
-        return True,None
63
-    listmountpoints=mountpoints.split(" ")
64
-    return True,listmountpoints
66
+        print("No mount points found")
67
+        return True, None
68
+    listmountpoints = mountpoints.split(" ")
69
+    return True, listmountpoints
65 70
 
66
-def sortmountpoints(listmountpoints,chrootPath):
71
+def sortmountpoints(listmountpoints):
67 72
     if listmountpoints is None:
68 73
         return True
69
-    sortedmountpoints=listmountpoints
74
+    sortedmountpoints = listmountpoints
70 75
     sorted(sortedmountpoints)
71 76
     sortedmountpoints.reverse()
72 77
 
73 78
 def main():
74 79
     if len(sys.argv) < 2:
75
-        print "Usage: ./clean-up-chroot.py <chrootpath>"
80
+        print("Usage: ./clean-up-chroot.py <chrootpath>")
76 81
         sys.exit(1)
77 82
     if not cleanUpChroot(sys.argv[1]):
78 83
         sys.exit(1)
79 84
     sys.exit(0)
80 85
 
81
-if __name__=="__main__":
86
+if __name__ == "__main__":
82 87
     main()
... ...
@@ -1,25 +1,25 @@
1 1
 from Logger import Logger
2 2
 
3 3
 class constants(object):
4
-    specPath=""
5
-    sourcePath=""
6
-    rpmPath=""
7
-    logPath=""
8
-    topDirPath=""
9
-    buildRootPath="/mnt"
10
-    prevPublishRPMRepo=""
11
-    prevPublishXRPMRepo=""
12
-    pullsourcesConfig=""
13
-    buildPatch=False
14
-    inputRPMSPath=""
15
-    rpmCheck=False
16
-    sourceRpmPath=""
17
-    publishBuildDependencies=False
18
-    packageWeightsPath=None
19
-    dockerUnixSocket="/var/run/docker.sock"
20
-    userDefinedMacros={}
4
+    specPath = ""
5
+    sourcePath = ""
6
+    rpmPath = ""
7
+    logPath = ""
8
+    topDirPath = ""
9
+    buildRootPath = "/mnt"
10
+    prevPublishRPMRepo = ""
11
+    prevPublishXRPMRepo = ""
12
+    pullsourcesConfig = ""
13
+    buildPatch = False
14
+    inputRPMSPath = ""
15
+    rpmCheck = False
16
+    sourceRpmPath = ""
17
+    publishBuildDependencies = False
18
+    packageWeightsPath = None
19
+    dockerUnixSocket = "/var/run/docker.sock"
20
+    userDefinedMacros = {}
21 21
 
22
-    noDepsPackageList=[
22
+    noDepsPackageList = [
23 23
         "texinfo",
24 24
         "bzip2",
25 25
         "bzip2-libs",
... ...
@@ -32,7 +32,7 @@ class constants(object):
32 32
         "sqlite-libs"]
33 33
 
34 34
     # These packages will be built in first order as build-core-toolchain stage
35
-    listCoreToolChainPackages=[
35
+    listCoreToolChainPackages = [
36 36
         "filesystem",
37 37
         "linux-api-headers",
38 38
         "glibc",
... ...
@@ -52,7 +52,7 @@ class constants(object):
52 52
         "bash"]
53 53
 
54 54
     # These packages will be built in a second stage to replace publish RPMS
55
-    listToolChainPackages=[
55
+    listToolChainPackages = [
56 56
         "filesystem",
57 57
         "linux-api-headers",
58 58
         "glibc",
... ...
@@ -114,7 +114,7 @@ class constants(object):
114 114
     # package. This list should be ordered by install order. On a stage1
115 115
     # and stage2 published rpms will/might be used after stage2 only local
116 116
     # RPMS will be used
117
-    listToolChainRPMsToInstall=[
117
+    listToolChainRPMsToInstall = [
118 118
         "filesystem",
119 119
         "linux-api-headers",
120 120
         "glibc",
... ...
@@ -123,6 +123,7 @@ class constants(object):
123 123
         "glibc-tools",
124 124
         "zlib",
125 125
         "zlib-devel",
126
+        "file-libs",
126 127
         "file",
127 128
         "binutils",
128 129
         "binutils-devel",
... ...
@@ -211,42 +212,48 @@ class constants(object):
211 211
         "cpio",
212 212
         "go"]
213 213
 
214
-    perPackageToolChain = dict.fromkeys(["openjdk8", "openjdk8-doc", "openjdk8-src", "openjdk8-sample", "openjre8" ], [
215
-        "icu-devel",
216
-        "openjdk",
217
-        "openjre",
218
-        "icu",
219
-        "alsa-lib",
220
-        "alsa-lib-devel",
221
-        "xcb-proto",
222
-        "libXdmcp-devel",
223
-        "libXau-devel",
224
-        "util-macros",
225
-        "xtrans",
226
-        "libxcb-devel",
227
-        "proto",
228
-        "libXdmcp",
229
-        "libxcb",
230
-        "libXau",
231
-        "xtrans-devel",
232
-        "libX11",
233
-        "libX11-devel",
234
-        "libXext",
235
-        "libXext-devel",
236
-        "libICE-devel",
237
-        "libSM",
238
-        "libICE",
239
-        "libSM-devel",
240
-        "libXt",
241
-        "libXmu",
242
-        "libXt-devel",
243
-        "libXmu-devel",
244
-        "libXrender",
245
-        "libXrender-devel"])
214
+    perPackageToolChain = dict.fromkeys(
215
+        ["openjdk8",
216
+         "openjdk8-doc",
217
+         "openjdk8-src",
218
+         "openjdk8-sample",
219
+         "openjre8"],
220
+        [
221
+            "icu-devel",
222
+            "openjdk",
223
+            "openjre",
224
+            "icu",
225
+            "alsa-lib",
226
+            "alsa-lib-devel",
227
+            "xcb-proto",
228
+            "libXdmcp-devel",
229
+            "libXau-devel",
230
+            "util-macros",
231
+            "xtrans",
232
+            "libxcb-devel",
233
+            "proto",
234
+            "libXdmcp",
235
+            "libxcb",
236
+            "libXau",
237
+            "xtrans-devel",
238
+            "libX11",
239
+            "libX11-devel",
240
+            "libXext",
241
+            "libXext-devel",
242
+            "libICE-devel",
243
+            "libSM",
244
+            "libICE",
245
+            "libSM-devel",
246
+            "libXt",
247
+            "libXmu",
248
+            "libXt-devel",
249
+            "libXmu-devel",
250
+            "libXrender",
251
+            "libXrender-devel"])
246 252
     perPackageToolChain["apache-maven"] = ["apache-maven"]
247 253
     # List of RPMs which are not published. They will be created during the
248 254
     # build process
249
-    listOfRPMsProvidedAfterBuild=[
255
+    listOfRPMsProvidedAfterBuild = [
250 256
         "util-linux-devel",
251 257
         "flex-devel",
252 258
         "nspr-devel",
... ...
@@ -260,11 +267,12 @@ class constants(object):
260 260
         "xz-libs",
261 261
         "sqlite",
262 262
         "sqlite-libs",
263
+        "file-libs",
263 264
         "rpm-libs"]
264 265
 
265 266
     # List of packages that will be installed in addition for each
266 267
     # package to make check
267
-    listMakeCheckRPMPkgtoInstall=[
268
+    listMakeCheckRPMPkgtoInstall = [
268 269
         "python2",
269 270
         "python2-devel",
270 271
         "python2-libs",
... ...
@@ -313,14 +321,14 @@ class constants(object):
313 313
         "unzip",
314 314
         "systemd-devel",
315 315
         "gnupg",
316
-        "ncurses-terminfo" ]
316
+        "ncurses-terminfo"]
317 317
 
318
-    listReInstallPackages=[
318
+    listReInstallPackages = [
319 319
         "go"]
320 320
 
321 321
     # List of packages that requires privileged docker
322 322
     # to run make check.
323
-    listReqPrivilegedDockerForTest=[
323
+    listReqPrivilegedDockerForTest = [
324 324
         "elfutils", # SYS_PTRACE
325 325
         "gdb",
326 326
         "glibc",
... ...
@@ -330,7 +338,7 @@ class constants(object):
330 330
     # Requires(post):/sbin/useradd
331 331
     # Build system should interpret it as
332 332
     # Requires: shadow
333
-    providedBy={
333
+    providedBy = {
334 334
         "/usr/sbin/useradd":"shadow",
335 335
         "/usr/sbin/groupadd":"shadow",
336 336
         "/usr/bin/which":"which",
... ...
@@ -338,7 +346,7 @@ class constants(object):
338 338
     }
339 339
 
340 340
     # list of spec files to skip for parsing for given arch
341
-    skipSpecsForArch={
341
+    skipSpecsForArch = {
342 342
         "x86_64":[
343 343
             "u-boot-rpi3.spec",
344 344
             "openjdk8_aarch64.spec"
... ...
@@ -370,35 +378,12 @@ class constants(object):
370 370
             "mysql.spec",
371 371
             # irqbalance for arm64 ?
372 372
             "irqbalance.spec",
373
-            # no X rpms to build openjdk, skip all java packages
373
+            # openjdk8.spec is for x86_64 arch
374 374
             "openjdk8.spec",
375
-            "ant-contrib.spec",
376
-            "apache-ant.spec",
377
-            "apache-maven.spec",
378
-            "apache-tomcat.spec",
379
-            "cassandra.spec",
380
-            "commons-daemon.spec",
381
-            "jna.spec",
375
+            # dashboard failed to build libxslt during `npm install`
382 376
             "kubernetes-dashboard.spec",
383
-            "lightwave.spec",
384
-            "mesos.spec",
385
-            "protobuf.spec",
377
+            # test issue (java null pointer exception) before compilation
386 378
             "wavefront-proxy.spec",
387
-            "zookeeper.spec",
388
-            # requires lightwave
389
-            "pmd.spec",
390
-            # requires protobuf
391
-            "calico-felix.spec",
392
-            "lightstep-tracer-cpp.spec",
393
-            "protobuf-c.spec",
394
-            "runc.spec",
395
-            # requires cassandra
396
-            "python-cqlsh.spec",
397
-            # requires python-pyinstaller, but it has unresolved glibc deps
398
-            "calico-k8s-policy.spec",
399
-            "libcalico.spec",
400
-            # pcstat requires patching for aarch64
401
-            "pcstat.spec",
402 379
             # sysdig for aarch64 requires luajit, skip it and falco
403 380
             # https://github.com/draios/sysdig/issues/833
404 381
             "sysdig.spec",
... ...
@@ -445,37 +430,37 @@ class constants(object):
445 445
         constants.logPath = options.logPath
446 446
         constants.prevPublishRPMRepo = options.publishRPMSPath
447 447
         constants.prevPublishXRPMRepo = options.publishXRPMSPath
448
-        constants.buildRootPath=options.buildRootPath
448
+        constants.buildRootPath = options.buildRootPath
449 449
         constants.pullsourcesConfig = options.pullsourcesConfig
450
-        constants.inputRPMSPath=options.inputRPMSPath
451
-        constants.testForceRPMS=[]
450
+        constants.inputRPMSPath = options.inputRPMSPath
451
+        constants.testForceRPMS = []
452 452
         constants.rpmCheck = options.rpmCheck
453 453
         constants.rpmCheckStopOnError = options.rpmCheckStopOnError
454
-        constants.publishBuildDependencies=options.publishBuildDependencies
455
-        constants.packageWeightsPath=options.packageWeightsPath
454
+        constants.publishBuildDependencies = options.publishBuildDependencies
455
+        constants.packageWeightsPath = options.packageWeightsPath
456 456
         constants.tmpDirPath = "/dev/shm"
457 457
         if constants.rpmCheck:
458
-            constants.testLogger=Logger.getLogger("MakeCheckTest",constants.logPath)
459
-            constants.addMacro("with_check","1")
458
+            constants.testLogger = Logger.getLogger("MakeCheckTest", constants.logPath)
459
+            constants.addMacro("with_check", "1")
460 460
         else:
461
-            constants.addMacro("with_check","0")
461
+            constants.addMacro("with_check", "0")
462 462
 
463 463
         #adding distribution rpm macro
464
-        constants.addMacro("dist",options.dist)
464
+        constants.addMacro("dist", options.dist)
465 465
 
466 466
         #adding buildnumber rpm macro
467
-        constants.addMacro("photon_build_number",options.buildNumber)
467
+        constants.addMacro("photon_build_number", options.buildNumber)
468 468
 
469 469
         #adding releasenumber rpm macro
470
-        constants.addMacro("photon_release_version",options.releaseVersion)
470
+        constants.addMacro("photon_release_version", options.releaseVersion)
471 471
 
472
-        if options.katBuild != None:
472
+        if options.katBuild is not None:
473 473
             constants.addMacro("kat_build", options.katBuild)
474 474
 
475 475
     @staticmethod
476 476
     def setTestForceRPMS(listsPackages):
477
-        constants.testForceRPMS=listsPackages
477
+        constants.testForceRPMS = listsPackages
478 478
 
479 479
     @staticmethod
480 480
     def addMacro(macroName, macroValue):
481
-        constants.userDefinedMacros[macroName]=macroValue
481
+        constants.userDefinedMacros[macroName] = macroValue
... ...
@@ -1,5 +1,3 @@
1
-#!/usr/bin/python2
2
-#
3 1
 #    Copyright (C) 2015 vmware inc.
4 2
 #
5 3
 #    Author: Sharath George <sharathg@vmware.com>
... ...
@@ -10,16 +8,21 @@ import collections
10 10
 
11 11
 class JsonWrapper(object):
12 12
 
13
-    def __init__(self,  filename):
13
+    def __init__(self, filename):
14 14
         self.filename = filename
15
-
15
+        self.data = None
16 16
     def read(self):
17
-        json_data = open(self.filename)
18
-        self.data = json.load(json_data, object_pairs_hook=collections.OrderedDict)
19
-        json_data.close()
17
+        try:
18
+            with open(self.filename) as json_data:
19
+                self.data = json.load(json_data, object_pairs_hook=collections.OrderedDict)
20
+        except Exception as _:
21
+            raise Exception("Unable to read {}".format(self.filename))
20 22
         return self.data
21 23
 
22
-    def write(self,  data):
24
+    def write(self, data):
23 25
         self.data = data
24
-        outfile = open(self.filename,  'wb')
25
-        json.dump(data,  outfile)
26
+        try:
27
+            with open(self.filename, 'w') as outfile:
28
+                json.dump(data, outfile)
29
+        except Exception as _:
30
+            raise Exception("Unable to write {}".format(self.filename))