2005-06-22

j2me_wtk

Днес се измъчих с таз джаджа. java-1.5.0-sun беше лесно - nosrc.rpm от http://www.jpackage.org/, малко лутане из сайта на sun, rpmbuild --rebuild и запя (хубаво нещо са alternatives ot chkconfig-а). За j2me_wtk обаче пакет няма. Намерих само един стар спецификационен файл в листата на jpackage. В новата версия (2.2) се оказа че има preverify1.0 и preverify1.1 в добавка към preverify, е, може и да съм изтървал някое друго допълнение. Получи се следния spec файл:

# based on https://www.zarb.org/pipermail/jpackage-discuss/2005-February/007127.html
Name: wtk2
Version: 2.2.01
Release: 0.0.jpp.0

Summary: Sun J2ME Wireless Toolkit
Group: Development/Java

License: Sun Microsystems Inc. Binary Code Agreement
URL: http://java.sun.com/developer/releases/j2mewtoolkit/
#http://java.sun.com/products/sjwtoolkit/download-2_2.html

#Source0: j2me_wireless_toolkit-1_0_4_01-bin-linuxi386.bin
Source0: j2me_wireless_toolkit-2_2-linux-i386.bin
NoSource: 0

BuildArch: i586
BuildRoot: %{_tmppath}/%{name}-%{version}-root

#BuildRequires: jpackage-utils >= 1.5
BuildRequires: jpackage-utils >= 1.6.3
#Requires: java-devel >= 1.3

%description
The Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit is a
state-of-the-art toolbox for developing wireless applications that are based on
J2ME's Connected Limited Device Configuration (CLDC) and Mobile Information
Device Profile (MIDP), and designed to run on cell phones, mainstream personal
digital assistants, and other small mobile devices. The toolkit includes the
emulation environments, performance optimization and tuning features,
documentation, and examples that developers need to bring efficient and
successful wireless applications to market quickly.

%package demos
Summary: MIDP demos
Group: Development/Demos

%description demos
A collection of MIDP demos

%package javadoc
Summary: Wireless Toolkit javadoc
Group: Development/Documentation

%description javadoc
API documentation for the Wireless Toolkit

%prep
rm -fr %{name}-%{version}
mkdir %{name}-%{version}
cd %{name}-%{version}

# Looking at the shell script at the begining of the binary...
dd if=%{SOURCE0} of=j2me-linux.zip bs=1k skip=20
unzip -q j2me-linux.zip
chmod -R go=u-w *
chmod -R u+w *

%build
# nothing
# TODO: Would be good to remove some +x flags here (from jars for example)

%install
[ $RPM_BUILD_ROOT != "/" ] && rm -fr $RPM_BUILD_ROOT
cd %{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}
cp -a * $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_javadocdir}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/docs/api $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}

mkdir -p $RPM_BUILD_ROOT%{_docdir}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/docs $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.html $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
#mv $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.css $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}

rm $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/*.zip

%clean
rm -fr %{name}-%{version}
[ $RPM_BUILD_ROOT != "/" ] && rm -fr $RPM_BUILD_ROOT

%post
# A bit of alternative magic :)
alternatives \
--install %{_datadir}/wtk wtk %{_datadir}/%{name}-%{version} $(echo %{version} | sed -e 's/\.//g') \
--slave %{_bindir}/defaultdevice defaultdevice %{_datadir}/%{name}-%{version}/bin/defaultdevice \
--slave %{_bindir}/emulator emulator %{_datadir}/%{name}-%{version}/bin/emulator \
--slave %{_bindir}/ktoolbar ktoolbar %{_datadir}/%{name}-%{version}/bin/ktoolbar \
--slave %{_bindir}/prefs prefs %{_datadir}/%{name}-%{version}/bin/prefs \
--slave %{_bindir}/preverify preverify %{_datadir}/%{name}-%{version}/bin/preverify \
--slave %{_bindir}/runmidlet runmidlet %{_datadir}/%{name}-%{version}/bin/runmidlet \
--slave %{_bindir}/utils utils %{_datadir}/%{name}-%{version}/bin/utils \
--slave %{_bindir}/zayit zayit %{_datadir}/%{name}-%{version}/bin/zayit \

%preun
alternatives --remove wtk %{_datadir}/%{name}-%{version}

%files
%defattr (-,root,root)
%doc %{_docdir}/%{name}-%{version}
%{_datadir}/%{name}-%{version}/appdb
%{_datadir}/%{name}-%{version}/bin
%{_datadir}/%{name}-%{version}/lib
%{_datadir}/%{name}-%{version}/sessions
%{_datadir}/%{name}-%{version}/wtklib

%files demos
%defattr (-,root,root)
%{_datadir}/%{name}-%{version}/apps

%files javadoc
%defattr (-,root,root)
%{_javadocdir}/%{name}-%{version}

%changelog
* Wed Jun 22 2005 Doncho Gunchev <gunchev at gmail.com> 2.2.01-0.0.jpp.0
- update the version
- minor fix with 'no more .css' at root archive dir
- add preverify10 and preverify11 to alternatives

* Wed Feb 16 2005 Lyle Dietz <dietzla at tsgpacific.com.au> 1.0.4.01-0.0.jpp.0
- Initial RPM version

Това ми е първия java пакет (в който съм си врял носа) и сигурно е голяма каша, но работи.

SUN доста ме разочароваха... как може ktoolbar да се опитва да си записва настройките в директорията в която му се намира изпълнимия файл, или да се опитва там да прави някакви .lock файлове за com портове до колкото разбрах? Те и от mozilla не са много на ти с UNIX-а /custom search engines/, обаче тези хич не са... Ако ми остане време, или по-скоро ми се наложи да го направя, ще взема да разгледам не мога ли някак да го поизлъжа това чудо.

ПП: Примерен мидлет - http://www.devx.com/tips/Tip/20098.

Няма коментари: