File 0001-Scriptlet-and-rules-to-replace-bundled-jars.patch of Package intellij-idea

From e60d995c0ae29bcf1b83f59ecad4d6885b12a871 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Sat, 31 Oct 2009 12:02:57 +0100
Subject: [PATCH] Scriptlet and rules to replace bundled jars

This is kept separate from RPM to ease package development.
---
 replacedeps.sh   |   36 ++++++++++
 replacerules.txt |  207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 243 insertions(+), 0 deletions(-)
 create mode 100644 replacedeps.sh
 create mode 100644 replacerules.txt

diff --git a/replacedeps.sh b/replacedeps.sh
new file mode 100644
index 0000000..d905651
--- /dev/null
+++ b/replacedeps.sh
@@ -0,0 +1,36 @@
+set -e
+
+awk '/^[^ \t#]/ {jar=$0} /^\t[^#]/ {print jar; print $0}' |
+while read ORIG
+do
+	read LINE
+	LINE="$(eval "echo $LINE")"
+
+	NEW=
+	for ENTRY in $LINE
+	do
+		if [ "$ENTRY" != :erase ]
+		then
+			echo $ENTRY |grep -q ^/ || ENTRY=$(build-classpath $ENTRY)
+			[ -f "$ENTRY" ] || echo "Replacement for $ORIG not found"
+			[ -f "$ENTRY" ]
+			NEW="$NEW $ENTRY"
+		fi
+	done
+
+	[ "$1" = -v ] && echo "$ORIG ==> $NEW" >/dev/stderr
+
+	OPATH='jar://$PROJECT_DIR$/lib/'$ORIG'!/'
+	for FILE in $(grep -l "$OPATH" .idea/libraries/* java/compiler/impl/compiler-impl.iml)
+	do
+		NEWCONTENT=;
+		for NEWFILE in $NEW
+		do
+			NEWCONTENT="$NEWCONTENT $(sed -n "s|$OPATH|jar://$NEWFILE!/|p" $FILE)"
+		done
+		sed "s|.*$OPATH.*|$NEWCONTENT|" -i $FILE
+		sed '/:erase/d' -i $FILE
+	done
+
+	rm -rf lib/$ORIG
+done
diff --git a/replacerules.txt b/replacerules.txt
new file mode 100644
index 0000000..d7e09d9
--- /dev/null
+++ b/replacerules.txt
@@ -0,0 +1,207 @@
+# Rules for replacing bundled jars in IntelliJ IDEA source
+# Consumed by replacedeps.sh
+#
+# Entry format is:
+#
+# <original.jar>	(as referenced in .idea/libraries/*.xml)
+# <tab># <comment>	(ignored)
+# <tab>:erase		(the reference is just removed)
+# <tab><replacement>	(first expanded by shell. If it does not expand
+# 			 to an absolute path, it is fed to build-classpath)
+
+commons-codec-1.3.jar
+	commons-codec
+
+commons-collections.jar
+	commons-collections
+
+commons-lang-2.4.jar
+	commons-lang
+
+commons-net-1.4.1.jar
+	jakarta-commons-net
+
+jaxen-1.1.1.jar
+	jaxen
+
+jdom.jar
+	jdom
+
+jgoodies-forms.jar
+	$(build-classpath jgoodies-forms 2>/dev/null || build-classpath forms)
+
+jna.jar
+	jna
+
+velocity.jar
+	velocity
+
+xerces.jar
+	xerces-j2
+
+xmlrpc-2.0.jar
+	$(build-classpath xmlrpc 2>/dev/null || build-classpath xmlrpc2)
+
+junit.jar
+	junit
+
+log4j.jar
+	log4j
+
+looks-2.2.2.jar
+	$(build-classpath jgoodies-looks 2>/dev/null || build-classpath looks)
+
+org.eclipse.jdt.core_3.4.4.v_894_R34x.jar
+	$(for F in /usr/{lib/eclipse/dropins/jdt,share/eclipse}/plugins/org.eclipse.jdt.core_*.jar; do [ -f $F ] && echo $F; done)
+
+asm.jar
+	objectweb-asm/asm
+
+asm-commons.jar
+	objectweb-asm/asm-commons
+
+
+groovy-all-1.6.3.jar
+	groovy
+
+jh.jar
+	javahelp2
+
+nanoxml-2.2.3.jar
+	nanoxml-2.2.3
+
+picocontainer.jar
+	# https://bugzilla.redhat.com/show_bug.cgi?id=252119 dead review
+	# http://hany.sk/mirror/jpackage/1.7/generic/free/SRPMS/picocontainer-1.3-1jpp.src.rpm
+	# http://hany.sk/mirror/jpackage/1.7/generic/free/RPMS/picocontainer-1.3-1jpp.noarch.rpm
+	# proxytoys dependency
+	picocontainer
+
+resolver.jar
+	xml-commons-resolver
+
+trove4j.jar
+	# Locally patched 1.0.2 fork
+	# gnu-trove from jpackage is not sufficient
+	$PWD/trove4j/trove4j.jar
+
+xbean.jar
+	xmlbeans/xbean
+
+xstream.jar
+	xstream
+
+junit-4.6.jar
+	# Need 4.6. 4.5, which is in rawhide is too old
+	junit4-4.6
+
+cglib-nodep-2.1_3.jar
+	cglib objectweb-asm/asm
+
+jsr173_1.0_api.jar
+	:erase
+
+dev/easymockclassextension.jar
+	:erase
+
+dev/easymock.jar
+	:erase
+
+dev/jmock-1.0.1.jar
+	:erase
+
+dev/jmock-cglib-1.0.1.jar
+	:erase
+
+microba.jar
+	microba
+
+oromatcher.jar
+	oro
+
+eawtstub.jar
+	# http://netbeans.sourcearchive.com/documentation/6.1/dir_058efec17710427ed803a9cbd4a5c4fa.html
+	# Separately packaged
+	$PWD/eawtstub/dist/eawtstub.jar
+
+jna-utils.jar
+	# The jna package needs to be patched!
+	jna-examples
+
+serviceMessages.jar
+	# From jetbrains, soruce included
+	# XXX: needs idea jars to build, we need to bootstrap somehow!
+	
+dev/compilerapi.jar
+	# Needs s/DefaultFileManager/JavacFileManager/ change in OpenJDK 1.6.0
+	../jvm/java/lib/tools
+
+# Directories
+src
+	:erase
+ant
+	:erase
+dev
+	:erase
+
+# ANT
+ant/lib/ant-apache-oro.jar
+	ant/ant-apache-oro
+ant/lib/ant-nodeps.jar
+	ant/ant-nodeps
+
+# These are in Fedora, but we don't seem to need them
+ant/lib/ant-apache-resolver.jar
+	:erase
+ant/lib/ant-commons-net.jar
+	:erase
+ant/lib/ant.jar
+	:erase
+ant/lib/ant-javamail.jar
+	:erase
+ant/lib/ant-junit.jar
+	:erase
+ant/lib/ant-antlr.jar
+	:erase
+ant/lib/ant-jsch.jar
+	:erase
+ant/lib/ant-jdepend.jar
+	:erase
+ant/lib/ant-apache-bsf.jar
+	:erase
+ant/lib/ant-swing.jar
+	:erase
+ant/lib/ant-apache-log4j.jar
+	:erase
+ant/lib/ant-apache-regexp.jar
+	:erase
+ant/lib/ant-commons-logging.jar
+	:erase
+ant/lib/ant-trax.jar
+	:erase
+ant/lib/ant-apache-bcel.jar
+	:erase
+
+# These don't seem to be in Fedora
+ant/lib/ant-jmf.jar
+	:erase
+ant/lib/ant-jai.jar
+	:erase
+ant/lib/ant-launcher.jar
+	:erase
+ant/lib/libraries.properties
+	:erase
+ant/lib/ant-testutil.jar
+	:erase
+ant/lib/ant-starteam.jar
+	:erase
+ant/lib/ant-weblogic.jar
+	:erase
+ant/lib/xml-apis.jar
+	:erase
+ant/lib/ant-stylebook.jar
+	:erase
+ant/lib/xercesImpl.jar
+	:erase
+ant/lib/ant-netrexx.jar
+	:erase
-- 
1.6.5.1

openSUSE Build Service is sponsored by