From: jk7744.park Date: Sat, 24 Oct 2015 05:32:48 +0000 (+0900) Subject: tizen 2.4 release X-Git-Tag: accepted/tizen/2.4/base/20151026.115102^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_2.4_base;p=toolchains%2Fruby-x86.git tizen 2.4 release --- diff --git a/packaging/OBS-Accelerator-0.1.tar.bz2 b/packaging/OBS-Accelerator-0.1.tar.bz2 new file mode 100755 index 0000000..b569eac Binary files /dev/null and b/packaging/OBS-Accelerator-0.1.tar.bz2 differ diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf new file mode 100755 index 0000000..a279b90 --- /dev/null +++ b/packaging/baselibs.conf @@ -0,0 +1,2 @@ +arch i586 targets armv5tel:arm armv6l:arm armv7l:arm armv7hl:arm armv7nhl:arm +arch x86_64 targets armv5tel:arm armv6l:arm armv7l:arm armv7hl:arm armv7nhl:arm diff --git a/packaging/binaries_to_prepare b/packaging/binaries_to_prepare new file mode 100755 index 0000000..b2a42d4 --- /dev/null +++ b/packaging/binaries_to_prepare @@ -0,0 +1 @@ +/usr/bin/ruby diff --git a/packaging/ruby-x86.changes b/packaging/ruby-x86.changes new file mode 100755 index 0000000..8315090 --- /dev/null +++ b/packaging/ruby-x86.changes @@ -0,0 +1,34 @@ +* Sat Jun 28 2014 UkJung Kim - None +- PROJECT: toolchains/ruby-x86 +- COMMIT_ID: 4168f6bb42eec77ea5823aef1921e94c772b3548 +- BRANCH: master +- PATCHSET_REVISION: 4168f6bb42eec77ea5823aef1921e94c772b3548 +- CHANGE_OWNER: \"UkJung Kim\" +- PATCHSET_UPLOADER: \"UkJung Kim\" +- CHANGE_URL: http://slp-info.sec.samsung.net/gerrit/534496 +- PATCHSET_REVISION: 4168f6bb42eec77ea5823aef1921e94c772b3548 +- TAGGER: UkJung Kim +- Gerrit patchset approval info: +- Newton Lee Code-Review : 2 +- Newton Lee Verified : 1 +- CHANGE_SUBJECT: Merged x86_64 support to master + +- Merged x86_64 support to master + +* Wed Jun 28 12:00:00 KST 2014 - UkJung Kim - 1.0 +- Update to support x86_64 + +* Fri Jul 6 14:30:00 KST 2012 - UkJung Kim - 1.0 +- Added and updated OBS-Accelerator-0.1.tar.bz2 + +* Sun Apr 24 08:02:35 UTC 2011 - Jan-Simon Möller - 1.0 +- Add baselibs.conf to src.rpm + +* Mon Jan 3 21:03:00 UTC 2011 Carsten Munk - 1.0 +- Add armv7hl and armv7nhl support, part of fix for BMC#12112 + +* Mon May 3 22:27:34 UTC 2010 Jan-Simon Möller - 1.0 +- Update to armv7 crossbuild. + +* Tue Apr 20 17:03:30 UTC 2010 Jan-Simon Möller - 1.0 +- Initial version on meego.com diff --git a/packaging/ruby-x86.spec b/packaging/ruby-x86.spec new file mode 100755 index 0000000..eabb78b --- /dev/null +++ b/packaging/ruby-x86.spec @@ -0,0 +1,346 @@ +%define release_prefix 9 +%define __strip /bin/true +%define _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.vanish.rpm +# meta spec file for cross-chroot setup +# +# Copyright (c) 2009-2011 Martin Mohring (martin.mohring@opensuse.org) +# Copyright (c) 2011 5eEcoSystems (info@5eecosystems.com) +# +# All modifications and additions to the file contributed by third parties +# remain the property of the copyright owners, unless otherwise agreed +# upon. The cross build accelerators as is, and modifications +# and additions to the it, are licensed under the GPLv2. +# In addition, the cross build accelerators are licensed together with +# a package where they will be contained in +# under the license of the prestine package (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +#\/\/\/\/\/\/\/\/\/\/ +### only changes here + +# +# The original package name +# e.g. qemu +# +%define oldname ruby + +# +# The architectures this meta package is built on +# e.g. i586 +# +%define myexclusive i586 x86_64 + +# +# The required package for building this package +# This can be distribution dependent. Good start is: +# e.g. rpm grep tar sed patchelf +# +BuildRequires: rpm grep tar sed patchelf + +# +# Additional required packages needed in addition to those of original package +# e.g. (usually empty) for an accelerator to be 100% compatible +# +#Requires: + +### no changes needed below this line +# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +### no changes needed + +# For a real accelerator, also the old packge is required for compatibility +# pls change this only if you know what you do +Requires: %oldname + +# +# Release under which to put the accelerator +# +Release: %release_prefix + +# +# 64bit arch +%ifarch x86_64 +%define x64 x64 +%endif +# +# The new package name - convention is %oldname-%{!?x64:x86}%{?x64} +%define newname %{oldname}-%{!?x64:x86}%{?x64} +# +# The version of the original package is read from its rpm db info +%{expand:%%define newversion %(rpm -q --qf '[%{version}]' %oldname)} +# +# The license of the original package is read from its rpm db info +%{expand:%%define newlicense %(rpm -q --qf '[%{license}]' %oldname)} +# +# The group information of the original package +%{expand:%%define newgroup %(rpm -q --qf '[%{group}]' %oldname)} +# +# The summary of the original package +%{expand:%%define newsummary %(rpm -q --qf '[%{summary} - special version ]' %oldname)} +# +# New rpath to add to files on request +%define newrpath "/emul/ia32-linux/%{_lib}:/emul/ia32-linux/usr/%{_lib}" +%define newinterpreter /emul/ia32-linux/%{_lib}/ld-linux%{?x64:-x86-64}.so.2 +# +# Some automatic checks for availability +# binaries_to_prepare +%define binaries_to_prepare %{expand:%(test -e %{_sourcedir}/binaries_to_prepare && echo 1 || echo 0)} +%define libraries_to_prepare %{expand:%(test -e %{_sourcedir}/libraries_to_prepare && echo 1 || echo 0)} +%define special_script %{expand:%(test -e %{_sourcedir}/special_script && echo 1 || echo 0)} +%define files_to_ignore %{expand:%(test -e %{_sourcedir}/files_to_ignore && echo 1 || echo 0)} +# +### no changes needed below this line +%define nodebug 1 + + +Name: %newname +Version: %newversion +AutoReqProv: 0 +Provides: %newname +BuildRequires: %oldname +# no auto requirements - they're generated +License: %newlicense +Group: %newgroup +ExclusiveArch: %myexclusive +Summary: Dont use %newsummary ! +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if %binaries_to_prepare +Source10: binaries_to_prepare +%endif +%if %libraries_to_prepare +Source20: libraries_to_prepare +%endif +%if %special_script +Source30: special_script +%endif +%if %files_to_ignore +Source40: files_to_ignore +%endif +Source100: baselibs.conf + +%description +This is a meta-package providing %name. +It is not intended to be used on a normal system/device! +Original description: +%{expand:%(rpm -q --qf '[%{description}]' %oldname)} + +%prep + +%build + +%install +%if %nodebug +set +x +%endif +mkdir -p %buildroot +rpm -ql %oldname > filestoinclude1 + +# ignore files - construct sed script +sedtmp="sedtmp.$$" +echo "s#^%{_docdir}.*##" >> $sedtmp +echo "s#^%{_mandir}.*##" >> $sedtmp +echo "s#^%{_infodir}.*##" >> $sedtmp + +# evaluate files_to_ignore +%if %files_to_ignore +for i in `cat %{_sourcedir}/files_to_ignore`; do + echo "Ignoring file: $i" + echo "s#^${i}.*##" >> $sedtmp +done +%endif + +# ignore default filesystem files +for i in `rpm -ql filesystem`; do + echo "s#^${i}\$##" >> $sedtmp +done + +# ignore directories +for i in `cat filestoinclude1`; do + if test -d $i ; then + echo "s#^${i}\$##" >> $sedtmp + fi +done + +#finish up +echo "/^\$/d" >> $sedtmp + +#execute +sed -f $sedtmp -i filestoinclude1 + +# tar copy to buildroot +tar -T filestoinclude1 -cpf - | ( cd %buildroot && tar -xpf - ) +rm filestoinclude1 + +# Todo: refractor +# no directories, in filelist +find %buildroot > filestoinclude2 +cat filestoinclude2 | sed -e "s#%{buildroot}##g" | uniq | sort > filestoinclude1 +for i in `cat filestoinclude1`; do +# no directories + if ! test -d %buildroot/$i ; then + # + echo "$i" >> filestoinclude + fi +done +rm filestoinclude1 +rm filestoinclude2 + +# patchelf the binaries +%if %binaries_to_prepare +echo "" +echo "[ .oO Preparing binaries Oo. ]" +echo "" +cat %{_sourcedir}/binaries_to_prepare | sed "s/@LIB@/%{_lib}/g" > binaries_to_prepare1 +mkdir -p %buildroot/%{_prefix}/share/applybinary/ +for binary in `cat binaries_to_prepare1` ; do + echo "Processing binary: $binary" + tmp="tmp.$$" +%if %nodebug + debug= +%else + debug="--debug" +%endif + if file $binary | grep -q dynamic; then + ldd $binary | grep -v "ld-linux" | grep -v "linux-gate" | grep -v "linux-vdso" | sed -e "s#=.*##g" -e "s#^\t*##g" > $tmp + deps=$(for i in `cat $tmp` ; do rpm -q --whatprovides "${i}%{?x64:()(64bit)}" | grep -v "no package"; done) + cleandeps=$(echo "$cleandeps" "$deps" | sort | uniq | sed -e "s/-[0-9].*//g") + patchelf $debug --set-rpath %newrpath %buildroot/$binary + patchelf $debug --set-interpreter %newinterpreter %buildroot/$binary + if test -n "$debug"; then + patchelf --print-rpath %buildroot/$binary + patchelf --print-interpreter %buildroot/$binary + fi + fi + echo "$binary" >> %buildroot/%{_prefix}/share/applybinary/%name + echo "" +done +%endif + +# stub +%if %libraries_to_prepare +echo "" +echo "[ .oO Preparing libraries Oo. ]" +echo "" +cat %{_sourcedir}/libraries_to_prepare | sed "s/@LIB@/%{_lib}/g" > libraries_to_prepare1 +%endif + +# stub +%if %special_script +echo "" +echo "[ .oO Executing special script Oo. ]" +echo "" +%endif + +# lets start the shellquote nightmare ;) +shellquote() +{ + for arg; do + arg=${arg//\\/\\\\} +# arg=${arg//\$/\$} # already needs quoting ;( +# arg=${arg/\"/\\\"} # dito +# arg=${arg//\`/\`} # dito + arg=${arg//\\|/\|} + arg=${arg//\\|/|} + echo "$arg" + done +} + + +echo "Creating baselibs_new.conf" +echo "" +rm -rRf /tmp/baselibs_new.conf || true + +shellquote "%{name}" >> /tmp/baselibs_new.conf +shellquote " targettype x86 block!" >> /tmp/baselibs_new.conf +shellquote " targettype 32bit block!" >> /tmp/baselibs_new.conf +shellquote " targettype arm autoreqprov off" >> /tmp/baselibs_new.conf + +# automagically fill in basic requirements +for i in $cleandeps ; do + shellquote " targettype arm requires \"${i}-%{!?x64:x86}%{?x64}-arm\"" >> /tmp/baselibs_new.conf +done + +# we require the native version +shellquote " targettype arm requires \"%{oldname}\" " >> /tmp/baselibs_new.conf +shellquote " targettype arm prefix /emul/ia32-linux" >> /tmp/baselibs_new.conf +shellquote " targettype arm extension -arm" >> /tmp/baselibs_new.conf +shellquote " targettype arm +/" >> /tmp/baselibs_new.conf + +# safe space and download time +shellquote " targettype arm -/%{_mandir}" >> /tmp/baselibs_new.conf +shellquote " targettype arm -/%{_docdir}" >> /tmp/baselibs_new.conf +shellquote " targettype arm requires \"tizen-accelerator\"" >> /tmp/baselibs_new.conf + +shellquote " targettype arm post \" ln -s /emul/ia32-linux/usr/include/ruby/ruby-1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux /usr/include/ruby/ruby-1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux \"" >> /tmp/baselibs_new.conf +shellquote " targettype arm post \" ln -s /emul/ia32-linux/usr/lib/ruby/1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux /usr/lib/ruby/1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux \"" >> /tmp/baselibs_new.conf + +# replace native with x86 binaries as defined in file +%if %binaries_to_prepare +# Todo: error handling if .orig-arm is present +for binary in `cat binaries_to_prepare1` ; do + shellquote " targettype arm post \" if test -e ${binary}.orig-arm -a -h ${binary}; then \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" echo \"${binary}.orig-arm already present - skipping.\" \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" else \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" mv ${binary} ${binary}.orig-arm ; ln -s ${binary} ${binary} \"" >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" fi \" " >> /tmp/baselibs_new.conf +done + +shellquote " " >> /tmp/baselibs_new.conf +for binary in `cat binaries_to_prepare1` ; do + + shellquote " targettype arm preun \" if test -e ${binary}.orig-arm ; then \"" >> /tmp/baselibs_new.conf + shellquote " targettype arm preun \" rm -f ${binary} ; mv ${binary}.orig-arm ${binary}\"" >> /tmp/baselibs_new.conf + shellquote " targettype arm preun \" fi \"" >> /tmp/baselibs_new.conf + +done +%endif + +%if %libraries_to_prepare +# Todo: error handling if .orig-arm is present +for library in `cat libraries_to_prepare1` ; do + shellquote " targettype arm post \" if test -e ${library}.orig-arm -a -h ${library}; then \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" echo \"${library}.orig-arm already present - skipping.\" \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" else \" " >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" mv ${library} ${library}.orig-arm ; ln -s ${library} ${library} \"" >> /tmp/baselibs_new.conf + shellquote " targettype arm post \" fi \" " >> /tmp/baselibs_new.conf +done + +shellquote " " >> /tmp/baselibs_new.conf +for library in `cat libraries_to_prepare1` ; do + + shellquote " targettype arm preun \" if test -e ${library}.orig-arm ; then \"" >> /tmp/baselibs_new.conf + shellquote " targettype arm preun \" rm -f ${library} ; mv ${library}.orig-arm ${library}\"" >> /tmp/baselibs_new.conf + shellquote " targettype arm preun \" fi \"" >> /tmp/baselibs_new.conf + +done +%endif + +shellquote " targettype arm preun \" rm -f /usr/include/ruby/ruby-1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux \"" >> /tmp/baselibs_new.conf +shellquote " targettype arm preun \" rm -f /usr/lib/ruby/1.9.1/%{!?x64:i586}%{?x64:x86_64}-linux \"" >> /tmp/baselibs_new.conf + +cat /tmp/baselibs_new.conf >> %{_sourcedir}/baselibs.conf + +echo "################################################################################" +echo "" +echo "" +echo "REQUIREMENTS:" +grep "requires" %{_sourcedir}/baselibs.conf | sort | uniq | sed -e "s# targettype.*requires ##g" | while read k ; do + echo "CBinstall: $k" +done +echo "Runscripts: %{newname}-arm" +echo "" +echo "" +echo "################################################################################" +set -x + +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f filestoinclude +%defattr(-,root,root) +%if %binaries_to_prepare +/%{_prefix}/share/applybinary/%name +%endif