diff --git a/perl-xCAT/perl-xCAT.spec b/perl-xCAT/perl-xCAT.spec
index c8de4c5f3..7c89c8c1c 100644
--- a/perl-xCAT/perl-xCAT.spec
+++ b/perl-xCAT/perl-xCAT.spec
@@ -24,6 +24,7 @@ Provides perl xCAT libraries for core functionality.  Required for all xCAT inst
 Includes xCAT::Table, xCAT::NodeRange, among others.
 
 %define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi)
+%define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi)
 %define svninfo %(svn info | grep Revision | awk '{print $2}')
 
 %prep
@@ -75,6 +76,16 @@ rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPC*.pm
 cp xCAT/PPCdb.pm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/
 chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPCdb.pm
 %endif
+# Don't ship these on FSM, to reduce dependencies
+%if %fsm
+rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/hpoa.pm
+rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/vboxService.pm
+rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/FSP*.pm
+rm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPC*.pm
+# have to put PPCdb.pm back because it is needed by Postage.pm
+cp xCAT/PPCdb.pm $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/
+chmod 644 $RPM_BUILD_ROOT/%{prefix}/lib/perl/xCAT/PPCdb.pm
+%endif
 
 cp LICENSE.html $RPM_BUILD_ROOT/%{prefix}/share/doc/packages/perl-xCAT
 chmod 644 $RPM_BUILD_ROOT/%{prefix}/share/doc/packages/perl-xCAT/*
diff --git a/xCAT-server/xCAT-server.spec b/xCAT-server/xCAT-server.spec
index 037f3507f..a66f56681 100644
--- a/xCAT-server/xCAT-server.spec
+++ b/xCAT-server/xCAT-server.spec
@@ -33,6 +33,7 @@ Provides: xCAT-server = %{epoch}:%{version}
 xCAT-server provides the core server and configuration management components of xCAT.  This package should be installed on your management server
 
 %define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi)
+%define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi)
 
 # %define VERBOSE %(if [ "$VERBOSE" = "1" -o "$VERBOSE" = "yes" ];then echo 1; else echo 0; fi)
 # %define NOVERBOSE %(if [ "$VERBOSE" = "1" -o "$VERBOSE" = "yes" ];then echo 0; else echo 1; fi)