[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