dummy line to avoid confusing diff-mode
--- config_office/configure.in
+++ config_office/configure.in
@@ -5189,6 +5189,23 @@
 echo "*                                                                  *"
 echo "********************************************************************"
 
+AC_MSG_CHECKING([OpenOffice.org version])
+OOO_PACKAGEVERSION=`grep -m 1 PACKAGEVERSION ../instsetoo_native/util/openoffice.lst | sed -e 's/.*N *//' -e 's/ //g'`
+AC_MSG_RESULT([$OOO_PACKAGEVERSION])
+AC_SUBST(OOO_PACKAGEVERSION)
+OOO_PACKAGEVERSION_MAJOR=`echo $OOO_PACKAGEVERSION | cut -d. -f1`
+OOO_PACKAGEVERSION_MINOR=`echo $OOO_PACKAGEVERSION | cut -d. -f2`
+OOO_PACKAGEVERSION_MICRO=`echo $OOO_PACKAGEVERSION | cut -d. -f3`
+OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO=`expr $OOO_PACKAGEVERSION_MINOR '*' 100 + $OOO_PACKAGEVERSION_MICRO`
+AC_SUBST(OOO_PACKAGEVERSION_MAJOR)
+AC_SUBST(OOO_PACKAGEVERSION_MINOR)
+AC_SUBST(OOO_PACKAGEVERSION_MICRO)
+AC_SUBST(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO)
+if test -z "$OOO_PATCHLEVEL"; then
+  OOO_PATCHLEVEL=0
+fi
+AC_SUBST(OOO_PATCHLEVEL)
+
 if test -z "$COMPATH"; then
    AC_MSG_ERROR([No compiler found.])
 fi
dummy line to avoid confusing diff-mode
--- config_office/set_soenv.in
+++ config_office/set_soenv.in
@@ -1510,6 +1510,12 @@
 if ("@ENABLE_WERROR@" eq "FALSE") {
 ToFile( "EXTERNAL_WARNINGS_NOT_ERRORS", "TRUE",  "e" );
 }
+ToFile( "OOO_PACKAGEVERSION","@OOO_PACKAGEVERSION@","e" );
+ToFile( "OOO_PACKAGEVERSION_MAJOR","@OOO_PACKAGEVERSION_MAJOR@","e" );
+ToFile( "OOO_PACKAGEVERSION_MINOR","@OOO_PACKAGEVERSION_MINOR@","e" );
+ToFile( "OOO_PACKAGEVERSION_MICRO","@OOO_PACKAGEVERSION_MICRO@","e" );
+ToFile( "OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO","@OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO@","e" );
+ToFile( "OOO_PATCHLEVEL","@OOO_PATCHLEVEL@","e" );
 ToFile( "PRODUCT",           "@PRODUCT@",        "e" );
 ToFile( "PROFULLSWITCH",     "@PROFULLSWITCH@",  "e" );
 ToFile( "PROEXT",            $PROEXT,            "e" );
dummy line to avoid confusing diff-mode
--- solenv/inc/tg_app.mk
+++ solenv/inc/tg_app.mk
@@ -144,6 +144,12 @@
 .ENDIF		# "$(APP$(TNR)ICON)" != ""
 .IF "$(APP$(TNR)VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP$(TNR)VERINFO)$(EMQ)" >> $(MISC)$/$(APP$(TNR)LINKRES:b).rc
 .ENDIF		# "$(APP$(TNR)VERINFO)" != ""
 	$(RC) -DWIN32 $(APP$(TNR)PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP$(TNR)LINKRES:b).rc
dummy line to avoid confusing diff-mode
--- solenv/inc/_tg_app.mk
+++ solenv/inc/_tg_app.mk
@@ -107,6 +107,12 @@
 .ENDIF		# "$(APP1ICON)" != ""
 .IF "$(APP1VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP1LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP1LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP1VERINFO)$(EMQ)" >> $(MISC)$/$(APP1LINKRES:b).rc
 .ENDIF		# "$(APP1VERINFO)" != ""
 	$(RC) -DWIN32 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP1LINKRES:b).rc
@@ -273,6 +274,12 @@
 .ENDIF		# "$(APP2ICON)" != ""
 .IF "$(APP2VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP2LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP2LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP2VERINFO)$(EMQ)" >> $(MISC)$/$(APP2LINKRES:b).rc
 .ENDIF		# "$(APP2VERINFO)" != ""
 	$(RC) -DWIN32 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP2LINKRES:b).rc
@@ -439,6 +441,12 @@
 .ENDIF		# "$(APP3ICON)" != ""
 .IF "$(APP3VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP3LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP3LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP3VERINFO)$(EMQ)" >> $(MISC)$/$(APP3LINKRES:b).rc
 .ENDIF		# "$(APP3VERINFO)" != ""
 	$(RC) -DWIN32 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP3LINKRES:b).rc
@@ -605,6 +608,12 @@
 .ENDIF		# "$(APP4ICON)" != ""
 .IF "$(APP4VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP4LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP4LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP4VERINFO)$(EMQ)" >> $(MISC)$/$(APP4LINKRES:b).rc
 .ENDIF		# "$(APP4VERINFO)" != ""
 	$(RC) -DWIN32 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP4LINKRES:b).rc
@@ -771,6 +775,12 @@
 .ENDIF		# "$(APP5ICON)" != ""
 .IF "$(APP5VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP5LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP5LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP5VERINFO)$(EMQ)" >> $(MISC)$/$(APP5LINKRES:b).rc
 .ENDIF		# "$(APP5VERINFO)" != ""
 	$(RC) -DWIN32 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP5LINKRES:b).rc
@@ -937,6 +942,12 @@
 .ENDIF		# "$(APP6ICON)" != ""
 .IF "$(APP6VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP6LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP6LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP6VERINFO)$(EMQ)" >> $(MISC)$/$(APP6LINKRES:b).rc
 .ENDIF		# "$(APP6VERINFO)" != ""
 	$(RC) -DWIN32 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP6LINKRES:b).rc
@@ -1103,6 +1109,12 @@
 .ENDIF		# "$(APP7ICON)" != ""
 .IF "$(APP7VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP7LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP7LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP7VERINFO)$(EMQ)" >> $(MISC)$/$(APP7LINKRES:b).rc
 .ENDIF		# "$(APP7VERINFO)" != ""
 	$(RC) -DWIN32 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP7LINKRES:b).rc
@@ -1269,6 +1276,12 @@
 .ENDIF		# "$(APP8ICON)" != ""
 .IF "$(APP8VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP8LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP8LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP8VERINFO)$(EMQ)" >> $(MISC)$/$(APP8LINKRES:b).rc
 .ENDIF		# "$(APP8VERINFO)" != ""
 	$(RC) -DWIN32 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP8LINKRES:b).rc
@@ -1435,6 +1443,12 @@
 .ENDIF		# "$(APP9ICON)" != ""
 .IF "$(APP9VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP9LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP9LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP9VERINFO)$(EMQ)" >> $(MISC)$/$(APP9LINKRES:b).rc
 .ENDIF		# "$(APP9VERINFO)" != ""
 	$(RC) -DWIN32 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP9LINKRES:b).rc
@@ -1601,6 +1610,12 @@
 .ENDIF		# "$(APP10ICON)" != ""
 .IF "$(APP10VERINFO)" != ""
 	@-echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(APP10LINKRES:b).rc
+	@-echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(APP10LINKRES:b).rc
 	@-echo $(EMQ)#include  $(EMQ)"$(APP10VERINFO)$(EMQ)" >> $(MISC)$/$(APP10LINKRES:b).rc
 .ENDIF		# "$(APP10VERINFO)" != ""
 	$(RC) -DWIN32 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(APP10LINKRES:b).rc
dummy line to avoid confusing diff-mode
--- solenv/inc/tg_shl.mk
+++ solenv/inc/tg_shl.mk
@@ -280,6 +280,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL$(TNR)TARGET)$(DLLPOST) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
dummy line to avoid confusing diff-mode
--- solenv/inc/_tg_shl.mk
+++ solenv/inc/_tg_shl.mk
@@ -243,6 +243,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL1TARGET)$(DLLPOST) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET:b) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL1DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL1DEFAULTRES:b).rc
@@ -640,6 +641,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL2TARGET)$(DLLPOST) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL2TARGET:b) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL2DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL2DEFAULTRES:b).rc
@@ -1037,6 +1039,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL3TARGET)$(DLLPOST) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL3TARGET:b) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL3DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL3DEFAULTRES:b).rc
@@ -1434,6 +1437,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL4TARGET)$(DLLPOST) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL4TARGET:b) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL4DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL4DEFAULTRES:b).rc
@@ -1831,6 +1835,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL5TARGET)$(DLLPOST) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL5TARGET:b) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL5DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL5DEFAULTRES:b).rc
@@ -2228,6 +2233,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL6TARGET)$(DLLPOST) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL6TARGET:b) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL6DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL6DEFAULTRES:b).rc
@@ -2625,6 +2631,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL7TARGET)$(DLLPOST) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL7TARGET:b) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL7DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL7DEFAULTRES:b).rc
@@ -3022,6 +3029,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL8TARGET)$(DLLPOST) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL8TARGET:b) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL8DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL8DEFAULTRES:b).rc
@@ -3419,6 +3427,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL9TARGET)$(DLLPOST) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL9TARGET:b) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL9DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL9DEFAULTRES:b).rc
@@ -3816,6 +3825,12 @@
 	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
 	@echo $(EMQ)#define ORG_NAME	$(SHL10TARGET)$(DLLPOST) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
 	@echo $(EMQ)#define INTERNAL_NAME $(SHL10TARGET:b) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION $(OOO_PACKAGEVERSION) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MAJOR $(OOO_PACKAGEVERSION_MAJOR) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR $(OOO_PACKAGEVERSION_MINOR) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MICRO $(OOO_PACKAGEVERSION_MICRO) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO $(OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
+	@echo $(EMQ)#define OOO_PATCHLEVEL $(OOO_PATCHLEVEL) >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
 	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)$/$(SHL10DEFAULTRES:b).rc
 .ENDIF			# "$(use_shl_versions)" != ""
 	$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL10DEFAULTRES:b).rc
dummy line to avoid confusing diff-mode
--- desktop/util/ooverinfo.rc
+++ desktop/util/ooverinfo.rc
@@ -88,8 +88,71 @@
 // -----------------------------------------------------------------------
 
 VS_VERSION_INFO versioninfo
-	fileversion    VERSION, SUBVERSION, VERVARIANT, VER_COUNT
-	productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT
+
+	// In the 2.0.4 branch we used a fileversion like
+	// <major>.<minor*100+micro>.<vervariant>.<patchlevel> where
+	// <vervariant> is the upstream "build number" (that
+	// uninformative milestone specific number, 9073 in
+	// OOO_2_0_4). My thoughts were was that it's a good idea to
+	// have the fileversion include also the actual Novell build
+	// "patchlevel".
+
+	// So we thus got fileversions like 2.4.9073.6 for a file
+	// rebuilt at patch level 6. But, it turned out to be a pain
+	// to remember updating this diff file and doing make
+	// patch.apply before incremental rebuilds. And it isn't
+	// exactly repeatable either. Also, MSI patching doesn't
+	// require that the fileversion increases.
+
+	// So, we could leave out the minor*100+micro shit and just use
+	//
+	// fileversion OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR, OOO_PACKAGEVERSION_MICRO, VERVARIANT
+	//
+	// and thus get fileversions like 2.1.0.9095 which would be
+	// clean and very descriptive.
+
+	// But that would then mean the fileversions would effectively
+	// decrease from 2.0.4 to 2.1.0 (from 2.4.9073.6 to
+	// 2.1.0.9095), which would be confusing.
+
+	// So, we still do the minor*100+micro thing. This means
+	// fileversions in 2.1.0 will be like 2.100.9095.0. Oh well.
+
+	// BUT, WAIT. CAN YOU BELIEVE THIS CRAP:
+
+	// It turns out that the braindamaged resource compiler just
+	// ignores the multiplication with 100 if we would use:
+	//
+	// fileversion    OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR*100+OOO_PACKAGEVERSION_MICRO, VERVARIANT, 0
+	//
+	//
+	// So we would have to hardcode 100 == 1*100 explicitly and
+	// remember to change this to 101 in 2.1.1, to 102 in 2.1.2,
+	// to 200 in 2.2.0, etc. Oh, my head spins.
+
+	// So forget clever arithmetic. Let's just do this:
+
+	// (Nope, see below.)
+	// fileversion    VERVARIANT, OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR, OOO_PACKAGEVERSION_MICRO
+
+	// I.e. fileversion in 2.1.0 will be 9095.2.1.0 which is rather nice
+	// actually.
+
+	// Let's hope that VERVARIANT continues to increase
+	// monotonically and stays small enough to fit into 16
+	// bits. But it should, as upstream also uses VERVARIANT as
+	// one of the 16 bit parts of fileversion.
+
+	// (Later:) Nope. I was wrong above. We do need space for a
+	// patch level too in the DLLs and EXEs. So as we can't do 
+	// multiplication in the resource compiler, we have now precomputed
+	// OOO_PACKAGEVERSION_MINOR*100+OOO_PACKAGEVERSION_MICRO
+	// as OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO and use that here.
+
+	fileversion 	VERVARIANT, OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO, OOO_PATCHLEVEL
+
+	// productversion can be straightforward
+	productversion OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR, OOO_PACKAGEVERSION_MICRO, VERVARIANT
 	fileflagsmask 0x3F
 	fileflags
 #if defined(DEBUG)
@@ -112,10 +112,10 @@
 			block "040704E4"
 			{
 				// German StringTable
-				value "CompanyName",		"OpenOffice.org\0"
+				value "CompanyName",		"Novell, Inc.\0"
 				value "FileDescription", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
-				value "FileVersion",		PPS(VER_LEVEL) "\0"
-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "FileVersion",		PPS(OOO_PACKAGEVERSION) "\0"
+				value "ProductVersion",		PPS(OOO_PACKAGEVERSION) "\0" 
 				value "OriginalFilename",	"SOFFICE.EXE\0"
 				value "InternalName",		"SOFFICE\0"
 				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
@@ -124,10 +124,10 @@
 			block "040904E4"
 			{
 				// International StringTable
-				value "CompanyName", 		"OpenOffice.org\0"
+				value "CompanyName", 		"Novell, Inc.\0"
 				value "FileDescription",	"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\0"
-				value "FileVersion",		PPS(VER_LEVEL) "\0"
-				value "ProductVersion",		PPS(VER_LEVEL) "\0"
+				value "FileVersion",		PPS(OOO_PACKAGEVERSION) "\0"
+				value "ProductVersion",		PPS(OOO_PACKAGEVERSION) "\0"
 				value "OriginalFilename",	"SOFFICE.EXE\0"
 				value "InternalName", 		"SOFFICE\0"
 				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
dummy line to avoid confusing diff-mode
--- solenv/inc/shlinfo.rc
+++ solenv/inc/shlinfo.rc
@@ -35,7 +35,7 @@
 
 #define VERSION			2
 #define SUBVERSION		3
-#define VERVARIANT		0
+// #define VERVARIANT		0
 
 // .0 + VER_CONCEPT
 // .100 + VER_ALPHA
@@ -90,11 +90,13 @@
 
 VS_VERSION_INFO versioninfo
 #ifndef SUBVERSION
-	fileversion    VERSION, 0, 0, VERVARIANT
-	productversion VERSION, 0, 0, VERVARIANT
+	// See long comment in desktop/util/ooverinfo.rc
+	fileversion    VERVARIANT, OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO, OOO_PATCHLEVEL
+	productversion OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR, OOO_PACKAGEVERSION_MICRO, VERVARIANT
 #else
-	fileversion    VERSION, VERVARIANT, VER_COUNT
-	productversion VERSION, VERVARIANT, VER_COUNT
+	// See long comment in desktop/util/ooverinfo.rc
+	fileversion    VERVARIANT, OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR_TIMES_100_PLUS_MICRO, OOO_PATCHLEVEL
+	productversion OOO_PACKAGEVERSION_MAJOR, OOO_PACKAGEVERSION_MINOR, OOO_PACKAGEVERSION_MICRO, VERVARIANT
 #endif
 	fileflagsmask 0x3F
 	fileflags
@@ -118,8 +118,8 @@
 			block "040704E4"
 			{
 				// German StringTable
-				value "CompanyName",		"Sun Microsystems, Inc.\0"
-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "CompanyName",		"Novell, Inc.\0"
+				value "FileVersion",		PPS(OOO_PACKAGEVERSION) "\0"
 				value "OriginalFilename",	PPS(ORG_NAME) "\0"
 				value "InternalName", 		PPS(INTERNAL_NAME) "\0"
 				value "LegalCopyright",		S_CRIGHT " Sun Microsystems, Inc.\0"
@@ -131,8 +131,8 @@
 			block "040904E4"
 			{
 				// International StringTable
-				value "CompanyName", 		"Sun Microsystems, Inc.\0"
-				value "FileVersion",		PPS(VER_LEVEL) "\0"
+				value "CompanyName", 		"Novell, Inc.\0"
+				value "FileVersion",		PPS(OOO_PACKAGEVERSION) "\0"
 				value "OriginalFilename",	PPS(ORG_NAME) "\0"
 				value "InternalName", 		PPS(INTERNAL_NAME) "\0"
 				value "LegalCopyright", 	S_CRIGHT " Sun Microsystems, Inc.\0"
dummy line to avoid confusing diff-mode
