Init. 37/5837/1 master tizen_2.2 2.2_release accepted/tizen_2.2/20130718.053705 submit/tizen_2.2/20130718.041137 submit/tizen_2.2/20130718.061413
authorJunfeng.dong <junfeng.dong@intel.com>
Thu, 18 Jul 2013 02:45:27 +0000 (10:45 +0800)
committerJunfeng.dong <junfeng.dong@intel.com>
Thu, 18 Jul 2013 02:45:58 +0000 (10:45 +0800)
Change-Id: I5af7dd4a7bd135ee805721954a5e0cdb10836733
Signed-off-by: Junfeng.dong <junfeng.dong@intel.com>
packaging/baselibs.conf [new file with mode: 0644]
packaging/eglibc-devel-arm.changes [new file with mode: 0644]
packaging/eglibc-devel-arm.spec [new file with mode: 0644]
packaging/files_to_ignore [new file with mode: 0644]

diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf
new file mode 100644 (file)
index 0000000..3d6f12b
--- /dev/null
@@ -0,0 +1,7 @@
+arch armv5tel targets i586:armv5tel
+arch armv6l targets i586:armv6l
+arch armv7l targets i586:armv7l
+arch armv7hl targets i586:armv7hl
+arch armv7nhl targets i586:armv7nhl
+
+
diff --git a/packaging/eglibc-devel-arm.changes b/packaging/eglibc-devel-arm.changes
new file mode 100644 (file)
index 0000000..d459f0e
--- /dev/null
@@ -0,0 +1,2 @@
+* Thu Aug 4 2011 Junfeng Dong <junfeng.dong@intel.com> -1.0
+- Initial version for SLP.
diff --git a/packaging/eglibc-devel-arm.spec b/packaging/eglibc-devel-arm.spec
new file mode 100644 (file)
index 0000000..7108cb8
--- /dev/null
@@ -0,0 +1,255 @@
+# meta spec file for cross-chroot setup 
+#
+# Copyright (c) 2010  Jan-Simon Möller (jsmoeller@linuxfoundation.org)
+# License: GPLv2
+
+## README
+##
+## In this file:
+## 1) define name of original package (see oldname)
+## 
+## File binaries_to_prepare:
+## 2) fill in the binaries which need to be available to the foreign chroot
+##    e.g. /bin/bash   -  this will make a i586 bash available
+##
+
+#\/\/\/\/\/\/\/\/\/\/
+### only changes here
+#
+# The original package name
+%define oldname eglibc-devel
+#
+# The architectures this meta package is built on
+%define myexclusive %arm
+#
+### no changes needed below this line
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+
+### no changes needed
+#
+# The new package name - convention is %oldname-x86
+%define newname %{oldname}-arm
+#
+# 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 "/opt/cross/%_target_platform/sys-root/lib:/opt/cross/%_target_platform/sys-root/usr/lib"
+%define newinterpreter /opt/cross/%_target_platform/sys-root/lib/ld-linux.so.3
+#
+# 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 __strip /bin/true
+%define nodebug 1
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+
+
+Name:          %newname
+Version:       %newversion
+Release:       7
+AutoReqProv:   0
+Provides:      %newname
+BuildRequires: rpm grep tar patchelf sed -rpmlint-Moblin -rpmlint-mini -post-build-checks -rpmlint-mini-x86-arm
+BuildRequires: %oldname
+Requires:      %oldname
+# no auto requirements - they're generated
+License:       %newlicense
+Group:         %newgroup
+ExclusiveArch: %myexclusive
+Summary:       Don't 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
+
+Provides: glibc-devel-arm
+
+%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
+
+#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 ""
+mkdir %buildroot/%{_prefix}/share/applybinary/
+for binary in `cat %{_sourcedir}/binaries_to_prepare` ; do
+  echo "Processing binary: $binary"
+  tmp="tmp.$$"
+%if %nodebug
+  debug=
+%else
+  debug="--debug"
+%endif
+  ldd $binary  | grep -v "ld-linux" | grep -v "linux-gate" |  sed -e "s#=.*##g" -e "s#^\t*##g"  > $tmp
+  deps=$(for i in `cat $tmp` ; do rpm -q --whatprovides "$i" | 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
+  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
+  echo "$binary" >> %buildroot/%{_prefix}/share/applybinary/%name
+  echo ""
+done
+%endif
+
+# stub
+%if %libraries_to_prepare
+echo ""
+echo "[ .oO Preparing libraries Oo. ]"
+echo ""
+%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 %{_target_cpu} autoreqprov off" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} targetname cross-%{_target_cpu}-%{oldname} " >> /tmp/baselibs_new.conf
+for i in $cleandeps ; do 
+  shellquote "  targettype %{_target_cpu} requires \"${i}-cross-%{_target_cpu}-x86\"" >> /tmp/baselibs_new.conf
+done
+shellquote "  targettype %{_target_cpu} prefix /opt/cross/%_target_platform/sys-root" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} extension -x86" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} +/" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} -%{_mandir}" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} -%{_docdir}" >> /tmp/baselibs_new.conf
+shellquote "  targettype %{_target_cpu} requires \"tizen-cross-%{_target_cpu}-sysroot\"" >> /tmp/baselibs_new.conf
+
+cat /tmp/baselibs_new.conf >> %{_sourcedir}/baselibs.conf
+
+# Print requirements
+echo ""
+echo ""
+echo ""
+echo "REQUIREMENTS:"
+grep "requires" %{_sourcedir}/baselibs.conf
+echo ""
+echo ""
+echo ""
+sleep 2
+set -x
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files -f filestoinclude
+%defattr(-,root,root)
+%if %binaries_to_prepare
+/%{_prefix}/share/applybinary/%name
+%endif
diff --git a/packaging/files_to_ignore b/packaging/files_to_ignore
new file mode 100644 (file)
index 0000000..a447291
--- /dev/null
@@ -0,0 +1,4 @@
+/usr/sbin/glibc_post_upgrade*
+/var/cache/ldconfig
+/etc/ld.so.conf.d/tizen-accelerator.conf 
+/etc/ld.so.cache