[packages/java-skype] up to 1.4

glen glen at pld-linux.org
Sun Aug 19 17:41:35 CEST 2012


commit 4cb885712a7b1c822d57e52b9207ff6d2f5494a9
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Sun Aug 19 18:15:29 2012 +0300

    up to 1.4
    
    build native library to system dir, do not bundle it into .jar

 java-skype.spec      | 56 ++++++++++++++++++++++++++++------------
 jni-link.patch       | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests-no-win32.patch | 41 +++++++++++++++++++++++++++++
 3 files changed, 153 insertions(+), 17 deletions(-)
---
diff --git a/java-skype.spec b/java-skype.spec
index 6f6b0dc..39a0190 100644
--- a/java-skype.spec
+++ b/java-skype.spec
@@ -1,23 +1,29 @@
-# TODO
-# - drop .jar extracing for shared lib, load it directly:
-#   src/main/java/com/skype/connector/ConnectorUtils.java (loadLibrary)
+#
+# Conditional build:
+%bcond_with	tests		# don't build and run tests
+
 %define		srcname		skype-java-api
 %include	/usr/lib/rpm/macros.java
 Summary:	Skype API for Java, based on Skype4Java library
 Name:		java-skype
-Version:	1.3
-Release:	0.1
+Version:	1.4
+Release:	0.4
 License:	Apache v2.0, EPL v1.0
 Group:		Libraries/Java
 Source0:	https://github.com/taksan/skype-java-api/tarball/%{srcname}-%{version}/%{srcname}-%{version}.tgz
-# Source0-md5:	7358dc4381a7d594a7b799422810cdf5
+# Source0-md5:	35de3010cb61e6e39544d8732fd0b958
+Patch0:		jni-link.patch
+Patch1:		tests-no-win32.patch
 URL:		http://taksan.github.com/skype-java-api/
+BuildRequires:	dbus-devel
+BuildRequires:	dbus-glib-devel
 BuildRequires:	java-commons-lang >= 2.1
 BuildRequires:	java-junit >= 3.8.2
 BuildRequires:	jpackage-utils
 BuildRequires:	maven
 BuildRequires:	rpm-javaprov
 BuildRequires:	rpmbuild(macros) >= 1.553
+BuildRequires:	xorg-lib-libX11-devel
 Requires:	jpackage-utils
 # Not noarch, because we compile only specific platform and arch
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -30,6 +36,8 @@ APIs.
 %prep
 %setup -qc
 mv taksan-%{srcname}-*/* .
+%patch0 -p1
+%patch1 -p1
 
 find -name '*.class' | xargs -r rm -v
 find -name '*.jar' | xargs -r rm -v
@@ -45,6 +53,9 @@ find -name win32 | xargs -r rm -vr
 find -name osx | xargs rm -vr
 find -name src_osx | xargs rm -vr
 
+# imports win32 stuff
+%{__rm} src/test/java/com/skype/connector/ConnectorUtilsTest.java
+
 %build
 export JAVA_HOME="%{java_home}"
 
@@ -52,24 +63,33 @@ export JAVA_HOME="%{java_home}"
 mvn compile test-compile
 
 # native lib needs classes first
-%ifarch %{ix86}
-target=x86
-%endif
-%ifarch %{x8664}
-target=x64
-%endif
-%{__make} -C src-native/src_linux libskype_$target.so \
-	CC="%{__cc} %{rpmcppflags} %{rpmcflags} -fPIC" \
+%{__make} -C src-native/src_linux \
+	CC="%{__cc}" \
 	LINK="%{__cc}" \
-	LFLAGS="%{rpmldflags} -shared"
+	CFLAGS="%{rpmcflags} -fPIC -I../commons $(pkg-config --cflags dbus-1 dbus-glib-1)" \
+	JDK_DIR=%{_jvmdir}/java \
+	LFLAGS="%{rpmldflags} -shared" \
+	TARGET=$(pwd) \
+	X86='libskype_$(IMPLEMENTATION).so' \
+	X64='' \
+	%{nil}
 
 # make final jar
-mvn package
+mvn package \
+	-Dmaven.test.skip=true -DskipTests=true
+
+%if %{with tests}
+# note: src/test/java/com/skype/connector/test/TestConnector fails
+mvn test
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_javadir}
+install -d $RPM_BUILD_ROOT{%{_javadir},%{_libdir}}
+
+install -p libskype*.so $RPM_BUILD_ROOT%{_libdir}
 cp -p target/%{srcname}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}
+
 ln -s %{srcname}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}.jar
 # old lib names
 ln -s %{srcname}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/skype4java-%{version}.jar
@@ -81,6 +101,8 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %doc README
+%attr(755,root,root) %{_libdir}/libskype_dbus.so
+%attr(755,root,root) %{_libdir}/libskype_x11.so
 %{_javadir}/%{srcname}-%{version}.jar
 %{_javadir}/%{srcname}.jar
 %{_javadir}/skype4java-%{version}.jar
diff --git a/jni-link.patch b/jni-link.patch
new file mode 100644
index 0000000..aadc91a
--- /dev/null
+++ b/jni-link.patch
@@ -0,0 +1,73 @@
+--- java-skype-1.4/src-native/src_linux/Makefile.common~	2012-07-09 06:27:23.000000000 +0300
++++ java-skype-1.4/src-native/src_linux/Makefile.common	2012-08-19 16:46:01.540647781 +0300
+@@ -22,12 +22,10 @@
+ 	javah -classpath $(TARGET_CLASSES) com.skype.connector.linux.SkypeFramework
+ 
+ SkypeFramework: com_skype_connector_linux_SkypeFramework.h SkypeFramework.c
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m32 -o $@.o $@.c
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m64 -o $@_x64.o $@.c
++	$(CC) -c $(CFLAGS) $(INCPATH) -o $@.o $@.c
+ 
+ Logging: com_skype_connector_linux_SkypeFramework.h $(LOGGING)
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m32 -o $@.o $(LOGGING)
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m64 -o $@_x64.o $(LOGGING)
++	$(CC) -c $(CFLAGS) $(INCPATH) -o $@.o $(LOGGING)
+ 
+ 
+ clean:
+--- java-skype-1.4/src-native/src_linux/dbus/Makefile	2012-08-19 16:49:10.349304304 +0300
++++ java-skype-1.4/src-native/src_linux/dbus/Makefile	2012-08-19 16:53:40.721849182 +0300
+@@ -35,12 +35,11 @@
+ 
+ $(X86): SkypeFramework Logging SkypeService
+-	$(LINK) $(LD_FLAGS) -m32 -o $(TARGET)/$(X86) $(OBJECTS) $(LIBS_32) 
++	$(LINK) $(LD_FLAGS) -o $(TARGET)/$(X86) $(OBJECTS) $(LIBS_32) 
+ 
+ $(X64): SkypeFramework Logging SkypeService
+ 	$(LINK) $(LD_FLAGS) -m64 -o $(TARGET)/$(X64) $(OBJECTS_X64) $(LIBS)
+ 
+ SkypeService: skype-service.h skype-service-object-glue.h SkypeService.c
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m32 -o $@.o $@.c
+-	$(CC) -c $(CFLAGS) $(INCPATH) -m64 -o $@_x64.o $@.c
++	$(CC) -c $(CFLAGS) $(INCPATH) -o $@.o $@.c
+ 
+ 
+--- java-skype-1.4/src-native/src_linux/x11/Makefile~	2012-07-09 06:27:23.000000000 +0300
++++ java-skype-1.4/src-native/src_linux/x11/Makefile	2012-08-19 16:50:10.025373673 +0300
+@@ -31,7 +31,7 @@
+ all: $(X86) $(X64)
+ 
+ $(X86): SkypeFramework Logging
+-	$(LINK) $(LD_FLAGS) -m32 -o $(TARGET)/$(X86) $(OBJECTS) $(LIBS) 
++	$(LINK) $(LD_FLAGS) -o $(TARGET)/$(X86) $(OBJECTS) $(LIBS) 
+ $(X64): SkypeFramework Logging
+ 	$(LINK) $(LD_FLAGS) -m64 -o $(TARGET)/$(X64) $(OBJECTS_X64) $(LIBS)
+ 
+--- java-skype-1.4/./src/main/java/com/skype/connector/linux/SkypeFramework.java~	2012-07-09 06:27:23.000000000 +0300
++++ java-skype-1.4/./src/main/java/com/skype/connector/linux/SkypeFramework.java	2012-08-19 17:44:51.743314730 +0300
+@@ -51,12 +51,7 @@
+     static void init() throws LoadLibraryException {
+         synchronized(initializedFieldMutex) {
+             if (!initialized) {
+-            	if (SystemUtils.OS_ARCH.contains("64")) {
+-            		ConnectorUtils.loadLibrary(getLibName("x64"));
+-            	}
+-            	else {
+-            		ConnectorUtils.loadLibrary(getLibName("skype_x86"));
+-            	}
++                ConnectorUtils.loadLibrary(getLibName());
+                 setup0();
+                 
+                 eventLoopFinishedLatch = new CountDownLatch(1);
+@@ -73,9 +68,9 @@
+         }
+     }
+ 
+-	private static String getLibName(String arch) {
++	private static String getLibName() {
+ 		String libImpl = System.getProperty(SKYPE_API_LINUX_IMPL_PROPERTY, "dbus");
+-		return "libskype_"+libImpl+"_"+arch+".so";
++		return "skype_"+libImpl;
+ 	}
+     
+     private static native void setup0();
diff --git a/tests-no-win32.patch b/tests-no-win32.patch
new file mode 100644
index 0000000..438831e
--- /dev/null
+++ b/tests-no-win32.patch
@@ -0,0 +1,41 @@
+--- java-skype-1.4/src/test/java/com/skype/connector/ConnectorUtilsTest.java~	2012-07-09 06:27:23.000000000 +0300
++++ java-skype-1.4/src/test/java/com/skype/connector/ConnectorUtilsTest.java	2012-08-19 17:23:35.890545642 +0300
+@@ -6,37 +6,8 @@
+ 
+ import org.junit.Test;
+ 
+-import com.skype.connector.win32.Win32Connector;
+-
+-public class ConnectorUtilsTest {
+-	@Test
+-	public void getTempDir_ShouldReturnARandomTemporaryDirUnderTempDir()
+-	{
+-		String tempDir = System.getProperty("java.io.tmpdir");
+-		String actual = ConnectorUtils.getSkypeTempDir();
+-		
+-		Assert.assertTrue(actual.contains(tempDir));
+-		Assert.assertFalse(actual.endsWith(tempDir));
+-		File actualDir = new File(actual);
+-		Assert.assertTrue(actualDir.exists());
+-		Assert.assertTrue(actualDir.isDirectory());
+-		
+-		String anotherActual = ConnectorUtils.getSkypeTempDir();
+-		Assert.assertEquals(actual, anotherActual);
+-	}
+-	
+-	@Test
+-	public void getConnectorInstance_ShouldReturnValidConnector() {
++getConnectorInstance_ShouldReturnValidConnector() {
+ 		ensureSkypeDirIsCleanBeforeTestingInitialization();
+-		
+-		if (Connector.getInstance() instanceof Win32Connector) {
+-			class Win32ConnectorToTest extends Win32Connector {
+-				public void runInit() {
+-					initializeImpl();
+-				}
+-			}
+-			new Win32ConnectorToTest().runInit();
+-		}
+ 	}
+ 
+ 	private void ensureSkypeDirIsCleanBeforeTestingInitialization() {


More information about the pld-cvs-commit mailing list