diff --git a/cmssw-tool-conf.spec b/cmssw-tool-conf.spec
index 1acbebb9434..2ce2f805ee8 100644
--- a/cmssw-tool-conf.spec
+++ b/cmssw-tool-conf.spec
@@ -52,6 +52,7 @@ Requires: libpng-toolfile
Requires: libtiff-toolfile
Requires: libungif-toolfile
Requires: libxml2-toolfile
+Requires: lwtnn-toolfile
Requires: mcdb-toolfile
Requires: meschach-toolfile
Requires: openssl-toolfile
diff --git a/eigen-toolfile.spec b/eigen-toolfile.spec
index 50d3806d34e..7301882199b 100644
--- a/eigen-toolfile.spec
+++ b/eigen-toolfile.spec
@@ -11,7 +11,7 @@ cat << \EOF_TOOLFILE >%i/etc/scram.d/eigen.xml
-
+
diff --git a/eigen.spec b/eigen.spec
index af831eda785..dc019e15aaa 100644
--- a/eigen.spec
+++ b/eigen.spec
@@ -1,16 +1,24 @@
### RPM external eigen 3.2.2
+## INITENV +PATH PKG_CONFIG_PATH %{i}/share/pkgconfig
## NOCOMPILER
%define tag 87b069eefbf748ee3aba16fe5f84b4ccd6227082
%define branch cms/3.2.2
%define github_user cms-externals
Source: git+https://github.com/%github_user/eigen.git?obj=%{branch}/%{tag}&export=%{n}-%{realversion}&output=/%{n}-%{realversion}.tgz
+BuildRequires: cmake
+
%prep
%setup -n %n-%{realversion}
%build
-mkdir -p %i/include
+mkdir build
+cd build
+cmake -DCMAKE_INSTALL_PREFIX=%{i} ../
%install
-cp -r Eigen %i/include
+cd build
+make install
+%post
+%{relocateConfig}share/pkgconfig/eigen3.pc
diff --git a/lwtnn-1.0-boost-fix.patch b/lwtnn-1.0-boost-fix.patch
new file mode 100644
index 00000000000..ca583e8648a
--- /dev/null
+++ b/lwtnn-1.0-boost-fix.patch
@@ -0,0 +1,16 @@
+diff --git a/makefile b/makefile
+index 8e7e65a..53270ac 100644
+--- a/makefile
++++ b/makefile
+@@ -24,9 +24,9 @@
+
+ # --- set compiler and flags (roll c options and include paths together)
+ CXX ?= g++
+-CXXFLAGS := -O2 -Wall -fPIC -I$(INC) -g -std=c++11 -pedantic
+-LIBS := # blank, more will be added below
+-LDFLAGS := # blank, more will be added below
++CXXFLAGS := -O2 -Wall -fPIC -I$(INC) -I$(BOOST_ROOT)/include -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -g -std=c++11 -pedantic
++LIBS := -lboost_thread -lboost_system # blank, more will be added below
++LDFLAGS := -L$(BOOST_ROOT)/lib # blank, more will be added below
+ # add eigen
+ CXXFLAGS += $(shell pkg-config eigen3 --cflags)
diff --git a/lwtnn-toolfile.spec b/lwtnn-toolfile.spec
new file mode 100644
index 00000000000..a936870d069
--- /dev/null
+++ b/lwtnn-toolfile.spec
@@ -0,0 +1,24 @@
+### RPM external lwtnn-toolfile 1.0
+Requires: lwtnn
+%prep
+
+%build
+
+%install
+
+mkdir -p %i/etc/scram.d
+cat << \EOF_TOOLFILE >%i/etc/scram.d/lwtnn.xml
+
+
+
+
+
+
+
+
+
+
+
+EOF_TOOLFILE
+
+## IMPORT scram-tools-post
diff --git a/lwtnn.spec b/lwtnn.spec
new file mode 100644
index 00000000000..15166a5cbba
--- /dev/null
+++ b/lwtnn.spec
@@ -0,0 +1,17 @@
+### RPM external lwtnn 1.0
+Source: https://github.com/lwtnn/lwtnn/archive/v%{realversion}.tar.gz
+BuildRequires: py2-pkgconfig
+Requires: eigen boost
+Patch0: lwtnn-1.0-boost-fix
+%prep
+%setup -n %{n}-%{realversion}
+%patch0 -p1
+
+%build
+
+export BOOST_ROOT
+make all
+
+%install
+cp -r {lib,bin,include} %{i}/
+
diff --git a/py2-nose-toolfile.spec b/py2-nose-toolfile.spec
new file mode 100644
index 00000000000..c7f4c60ae86
--- /dev/null
+++ b/py2-nose-toolfile.spec
@@ -0,0 +1,24 @@
+### RPM external py2-nose-toolfile 1.0
+Requires: py2-nose
+%prep
+
+%build
+
+%install
+
+mkdir -p %{i}/etc/scram.d
+cat << \EOF_TOOLFILE >%{i}/etc/scram.d/py2-nose.xml
+
+
+
+
+
+
+
+
+EOF_TOOLFILE
+
+export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
+
+## IMPORT scram-tools-post
+
diff --git a/py2-nose.spec b/py2-nose.spec
new file mode 100644
index 00000000000..d61da60452d
--- /dev/null
+++ b/py2-nose.spec
@@ -0,0 +1,17 @@
+### RPM external py2-nose 1.3.7
+## INITENV +PATH PYTHONPATH %{i}/$PYTHON_LIB_SITE_PACKAGES
+%define my_name %(echo %n | cut -f2 -d-)
+Source: https://pypi.python.org/packages/58/a5/0dc93c3ec33f4e281849523a5a913fa1eea9a3068acfa754d44d88107a44/nose-%{realversion}.tar.gz
+Requires: python
+BuildRequires: py2-setuptools
+
+%prep
+%setup -n %{my_name}-%{realversion}
+
+%build
+python setup.py build
+
+%install
+python setup.py install --single-version-externally-managed --record=/dev/null --skip-build --prefix=%{i}
+perl -p -i -e "s|^#!.*python|#!/usr/bin/env python|" %{i}/bin/nosetests-2.7 %{i}/bin/nosetests
+
diff --git a/py2-pkgconfig-toolfile.spec b/py2-pkgconfig-toolfile.spec
new file mode 100644
index 00000000000..b650d8c5aeb
--- /dev/null
+++ b/py2-pkgconfig-toolfile.spec
@@ -0,0 +1,24 @@
+### RPM external py2-pkgconfig-toolfile 1.0
+Requires: py2-pkgconfig
+%prep
+
+%build
+
+%install
+
+mkdir -p %i/etc/scram.d
+cat << \EOF_TOOLFILE >%i/etc/scram.d/py2-pkgconfig.xml
+
+
+
+
+
+
+
+EOF_TOOLFILE
+
+export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
+
+## IMPORT scram-tools-post
+
+
diff --git a/py2-pkgconfig.spec b/py2-pkgconfig.spec
new file mode 100644
index 00000000000..4de0467c6a6
--- /dev/null
+++ b/py2-pkgconfig.spec
@@ -0,0 +1,16 @@
+### RPM external py2-pkgconfig 1.1.0
+## INITENV +PATH PYTHONPATH %{i}/$PYTHON_LIB_SITE_PACKAGES
+
+Source: https://pypi.python.org/packages/87/35/4af9634270c00e3411cf951b7e0ea796c262922357cfc7609a86d31f072b/pkgconfig-1.1.0.tar.gz
+BuildRequires: py2-setuptools
+Requires: python py2-nose
+
+%prep
+%setup -n pkgconfig-%{realversion}
+
+%build
+python setup.py build
+
+%install
+python setup.py install --single-version-externally-managed --record=/dev/null --skip-build --prefix=%{i}
+