native_blacklist=native_tizen_common_blacklist
blacklist=tizen_common_blacklist, tmp_tizen_common_blacklist
whitelist=whitelist_tizen_common
-recipes_dir_sources=${YOCTO_WORKDIR}/meta-tizen/recipes-tizen
+recipes_dir_sources=${YOCTO_WORKDIR}/meta-tizen
recipes_dir_group=${YOCTO_WORKDIR}/yoctoTizen/meta-tizen-generic/recipes-packagegroups/packagegroups
blacklist_autoreconf=tizen_common_autoreconf
group=Base-System
priority=2
[whitelist_tizen_common]
-list=smack, rpm, uthash, lua, weston-common, fdupes, crosswalk, libslp-location, location-manager, vconf, appcore-agent, dlog, common, system-server, aul-1, librua, pkgmgr-info, libdevice-node, xdgmime, libprivilege-control, ail, bundle, app-checker, privacy-manager, vconf-internal-keys, system-info, libiri, sound-manager, iniparser, libmm-sound, libmm-session, libmm-common, libmm-log, heynoti, security-server, audio-session-manager, avsystem, libmm-ta, slp-pkgmgr, app-core, libslp-sensor, libsf-common, tizen-platform-config, application, libslp-db-util, tizen-platform-wrapper, app-svc, notification, alarm-manager, com-core, libtapi, libtapi-legacy, alsa-scenario-0.2, systemd, hwdata, user-session-units, meta, pam, desktop-skin, default-ac-domains, sensor, tizen-extensions-crosswalk, app-manager, package-manager, bluetooth, connection, device, power, runtime-info, system-settings, favorites, url-download, media-content, bluetooth-frwk, libmedia-service, libmedia-thumbnail, download-provider, media-server, libmm-utility, libmm-fileinfo, libwifi-direct, libdevice-node, tethering, syspopup, status,libnet-client, libdevice-node, drm-client, efl, elementary, ibus, libtbm, libbullet, dbus-python, gobject-introspection, edbus, bluetooth-tools, Modello_AMBSimulator, Modello_Appmanager, Modello_Common, Modello_Dashboard, Modello_Homescreen, Modello_Hvac, Modello_Installer, Modello_Multimediaplayer, Modello_Nav, Modello_Phone, Modello_SDL, automotive-message-broker, efl-theme-tizen, festival, genivi-audio-manager, ico-uxf-device-input-controller, ico-uxf-utilities, ico-uxf-weston-plugin, ico-vic-amb-plugin, ico-vic-carsimulator, lemolo, libwebsockets, message-port-dbus, murphy, node-startup-controller, phoned, pulseaudio-module-murphy-ivi, rygel, sphinxbase, udev-rules, wayland-ivi-extension, weston-ivi, weston-ivi-shell, dlt-daemon, contacts-service, evolution-data-server, badge, libaccounts-svc, gcr, libsecret, image-util, python-setuptools, pims-ipc, update-desktop-files, gpg2 , adns,libgsignon-glib,nfc, nfc-manager-neard , neardal, libsvi , wifi, wav-player, weekeyboard, ibus-hangul, libhangul, ibus-libpinyin, libpinyin, desktop-file-utils, gsignond, ecryptfs-utils, keyutils, wrt-widgets, meta-generic, net-config, weston, gsignond-plugin-oauth, gsignond-plugin-sasl, libgsasl, common-api-dbus-runtime, common-api-runtime, sync-agent, xmlsec1, calendar-service, msg-service,libmm-player, ca-certificates-tizen, libwbxml2, libslp-memo, libav, vala,tdb, ico-uxf-homescreen,pulseaudio, ico-uxf-homescreen-sample-apps, libxml2,libdrm, tiff, libgee, GUPnP-DLNA, GUPnP, GUPnP-AV,testkit-lite, common-crosswalk-suite, common-graphics-suite, common-multimedia-suite, common-sanity-suite, ivi-sanity-suite, common-suite-launcher, testkit-stub, python-requests
+uri=https://raw.githubusercontent.com/eurogiciel-oss/yoctoTizenTools/master/documention/recipes_path.txt
[substitute]
pkgconfig(zlib)=zlib-devel
dbus= pkgconfig(dbus-1),dbus-devel, dbus-1
dbus-glib=pkgconfig(dbus-glib-1),dbus-glib-devel
dlog=pkgconfig(dlog)
-glibc=glibc-devel, pkgconfig(gobject-2.0), pkgconfig(gio-2.0), /sbin/ldconfig, pkgconfig(gmodule-2.0), /usr/bin/getent
+glibc=glibc-devel, pkgconfig(gobject-2.0), pkgconfig(gio-2.0), /sbin/ldconfig, pkgconfig(gmodule-2.0), /usr/bin/getent, getent
elfutils=libelf-devel
file=file-devel
fontconfig=pkgconfig(fontconfig)
capi-location-manager=pkgconfig(capi-location-manager)
libslp-location=pkgconfig(location)
lua=pkgconfig(lua), lua-devel
-mesa=pkgconfig(egl), pkgconfig(glesv2), pkgconfig(gbm),mesa-devel, mesa-libEGL, mesa-libGLESv2
+virtual/egl=pkgconfig(egl), mesa-libEGL
+virtual/libgles2=pkgconfig(glesv2), mesa-libGLESv2
+mesa=pkgconfig(gbm)
+virtual/libgl=mesa-devel
mtdev=pkgconfig(mtdev)
ncurses=ncurses-devel
nspr=nspr-devel
glib-2.0= pkgconfig(glib-2.0), pkgconfig(gmodule-2.0), pkgconfig(gthread-2.0),glib2-devel, pkgconfig(gio-unix-2.0), pkgconfig(gmodule-no-export-2.0), glib2, glib2-tools
libgcrypt=libgcrypt-devel
util-linux=libblkid-devel, libmount-devel, pkgconfig(uuid), libuuid-devel
-kmod=libkmod-devel
-smack=smack-devel, pkgconfig(libsmack), libsmack
+kmod=libkmod-devel,pkgconfig(libkmod)
+smack=smack-devel, pkgconfig(libsmack), libsmack,/usr/bin/chsmack
db=db4-devel
coreutils=/usr/bin/install, /usr/bin/chmod, /usr/bin/mkdir, /bin/touch, /bin/chown, /bin/chmod, /usr/bin/sha256sum
bluez4=pkgconfig(bluez)
eet= pkgconfig(eet)
ethumb=pkgconfig(ethumb)
eldbus=pkgconfig(eldbus)
-efl=pkgconfig(efl)
+efl=pkgconfig(efl), pkgconfig(evas-wayland-shm), pkgconfig(evas-wayland-egl)
edbus=pkgconfig(edbus)
gnutls=gnutls-devel, pkgconfig(gnutls)
curl=curl-devel,libcurl-devel, pkgconfig(libcurl)
pkgconfig=pkgconfig(pkg-config)
libpciaccess=pkgconfig(pciaccess)
gconf=gconf-dbus, pkgconfig(gconf-2.0)
+secure-storage=pkgconfig(secure-storage)
+dukgenerator=pkgconfig(dukgenerator)
+libcryptsvc=pkgconfig(cryptsvc)
# RPM macros for packages installing systemd unit files
%_unitdir ${systemd_unitdir}/system
-%_unitdir_user ${systemd_unitdir}/user
+%_unitdir_user %{_prefix}/lib/systemd/user
%_presetdir ${systemd_unitdir}/system-preset
%_udevhwdbdir /usr/lib/udev/hwdb.d
%_udevrulesdir /usr/lib/udev/rules.d
%_sysconfdir %{_buildPrefix}${sysconfdir}
%_localstatedir %{_buildPrefix}${localstatedir}
%_defaultdocdir %{_usr}/share/doc/packages
-%_unitdir_user ${systemd_unitdir}/user
+
+%_rootprefix /
+%_unitdir_user %{_prefix}/lib/systemd/user
%_unitdir ${systemd_unitdir}/system
# package build macros
%define _wrt_option_call_history 1
%optflags \${CFLAGS}
+
+
-Name: message-port
-Summary: Message Port library
-Version: 1.2.2.1
-Release: 0
-Group: Application Framework/Libraries
-License: Apache-2.0
-Source0: %{name}-%{version}.tar.gz
-Source1001: message-port.manifest
-BuildRequires: cmake
-BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(bundle)
-BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(chromium)
-BuildRequires: pkgconfig(aul)
-
-# runtime requires
-Requires: chromium
-
-Requires(post): /sbin/ldconfig
-Requires(post): coreutils
-Requires(postun): /sbin/ldconfig
-Provides: libmessage-port.so.1
+%define build_tests 1
+%define use_session_bus 0
+%define systemddir /lib/systemd
+
+Name: message-port
+Summary: Message port daemon
+Version: 1.0.2
+Release: 1
+Group: System/Service
+License: LGPL-2.1+
+Source0: %{name}-%{version}.tar.gz
+Source1: %{name}.manifest
+
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(gio-2.0)
+BuildRequires: pkgconfig(gio-unix-2.0)
+BuildRequires: pkgconfig(glib-2.0) >= 2.30
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(pkgmgr-info)
%description
-Message Port library package.
+This daemon allows the webapplications to communicates using
+Tizen MessagePort WebAPI.
+
+
+%package -n lib%{name}
+Summary: Client library for message port
+Group: Base/Libraries
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+Requires: %{name} = %{version}-%{release}
+BuildRequires: pkgconfig(bundle)
+
+%description -n lib%{name}
+Client library that porvies C APIs to work with message port.
+
+
+%package -n lib%{name}-devel
+Summary: Development files for libmessage-port
+Group: Development/Libraries
+Requires: lib%{name} = %{version}-%{release}
+
+%description -n lib%{name}-devel
+Development files for message-port client library.
+
+%if %{build_tests} == 1
+
+%package -n %{name}-tests
+Summary: Unit tests for messageport
+Group: Development/Testing
+Requires: lib%{name} = %{version}-%{release}
+
+%description -n %{name}-tests
+Unit tests for messageport implementation.
-%package devel
-Summary: Message Port library (Development)
-Group: Application Framework/Development
-Requires: %{name} = %{version}-%{release}
+%endif
-%description devel
-Message Port library (Development) package.
%prep
-%setup -q
-cp %{SOURCE1001} .
+%setup -q -n %{name}-%{version}
+cp -a %{SOURCE1} .
+mkdir m4 > /dev/null
+autoreconf -f -i
+
%build
-MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
-# Call make instruction with smp support
-%__make %{?jobs:-j%jobs}
+%configure \
+%if %{build_tests} == 1
+ --enable-tests\
+%endif
+%if %{use_session_bus} == 1
+ --enable-sessionbus \
+%endif
+
+make %{?_smp_mflags}
+
%install
-rm -rf %{buildroot}
%make_install
-%post -p /sbin/ldconfig
+mkdir -p ${RPM_BUILD_ROOT}%{systemddir}/system
+cp messageportd.service $RPM_BUILD_ROOT%{systemddir}/system
+
+%post
+/bin/systemctl enable messageportd.service
+
+%postun
+/bin/systemctl disable messageportd.service
+
+%post -n lib%{name}
+/sbin/ldconfig
+
+%postun -n lib%{name}
+/sbin/ldconfig
+
+
+# daemon: message-port
+%files -n %{name}
+%defattr(-,root,root,-)
+%{_bindir}/messageportd
+%if %{use_session_bus} == 1
+%{_datadir}/dbus-1/services/org.tizen.messageport.service
+%manifest %{name}.manifest
+%endif
+%{systemddir}/system/messageportd.service
+
+# libmessage-port
+%files -n lib%{name}
+%defattr(-,root,root,-)
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING.LIB README
+%{_libdir}/lib%{name}.so*
-%postun -p /sbin/ldconfig
-%files
+#libmessage-port-devel
+%files -n lib%{name}-devel
+%defattr(-,root,root,-)
%manifest %{name}.manifest
-%{_libdir}/libmessage-port.so.*
-%license LICENSE.APLv2
+%{_libdir}/pkgconfig/%{name}.pc
+%{_includedir}/*.h
-%files devel
+%if %{build_tests} == 1
+%files -n %{name}-tests
+%defattr(-,root,root,-)
%manifest %{name}.manifest
-%{_includedir}/appfw/*.h
-%{_libdir}/pkgconfig/*.pc
-%{_libdir}/libmessage-port.so
+%{_bindir}/msgport-test-app
+%{_bindir}/msgport-test-app-cpp
+%endif
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(sqlite3)
-BuildRequires: pkgconfig(capi-system-info)
-BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(libtzplatform-config)
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
-DVERSION=%{version} \
-DFILTER_LISTED_PKG=ON \
-DPRIVACY_POPUP=OFF
-make %{?_smp_mflags}
+%__make %{?_smp_mflags}
%install
mkdir -p %{buildroot}%{_prefix}/bin
%make_install
-mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
-#install -m 0644 %{SOURCE1} %{buildroot}%{_libdir}/systemd/system/privacy-manager-server.service
-#ln -sf /usr/lib/systemd/system/privacy-manager-server.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/privacy-manager-server.service
+#mkdir -p %%{buildroot}%%{_libdir}/systemd/system/multi-user.target.wants
+#install -m 0644 %%{SOURCE1} %%{buildroot}%%{_libdir}/systemd/system/privacy-manager-server.service
+#ln -sf /usr/lib/systemd/system/privacy-manager-server.service %%{buildroot}%%{_libdir}/systemd/system/multi-user.target.wants/privacy-manager-server.service
%post -n privacy-manager-server
-/sbin/ldconfig
+ldconfig
echo "Check privacy DB"
if [ ! -f %{TZ_SYS_DB}/.privacy.db ]
then
echo "Create privacy DB"
- %{_bindir}/privacy_manager_create_clean_db.sh
+ privacy_manager_create_clean_db.sh
fi
chsmack -a 'User' %{TZ_SYS_DB}/.privacy.db*
chsmack -a 'User' %{TZ_SYS_DB}/.privacylist.db*
%manifest privacy-manager-server.manifest
%{_libdir}/libprivacy-manager-server.so*
%{TZ_SYS_DB}/.privacylist.db
-/usr/bin/*
+%{_bindir}/*
%files -n privacy-manager-server-devel
%{_includedir}/privacy_manager/server/privacy_manager_daemon.h
rm -fr ../specfile-initial/${gitName}/*
mkdir -p ../specfile-initial/${gitName}/packaging/
- SPEC_FILE=$(spec2yocto findBestSpecFile ${gitName}/packaging --package_pn=${gitName})
- cp ${SPEC_FILE} ../specfile-initial/${gitName}/packaging/
+ #SPEC_FILE=$(spec2yocto findBestSpecFile ${gitName}/packaging --package_pn=${gitName})
+ cp ${gitName}/packaging/*.spec ../specfile-initial/${gitName}/packaging/
if [ $? == 0 ] ; then ERROR_COPYSPEC_LIST=${ERROR_COPYSPEC_LIST}${gitName}' ' ; fi
CURPKG=$(( ${CURPKG} +1 ))
else:
return default_value
+ def get_whitelist( self , project ):
+ '''
+
+ '''
+ packages_dico={}
+ whitelist_list=self.__get_list(project,"whitelist", None)
+ for whitelist_v in whitelist_list:
+ whitelist_uri = self.__get_value(whitelist_v,"uri", None )
+
+ if whitelist_uri.startswith( "http" ):
+ whitelist_file=download_url( whitelist_uri )
+ else:
+ f=open(whitelist_uri,'r')
+ whitelist_file=f.read()
+ f.close()
+
+ for w_pkg in whitelist_file.split("\n"):
+ if len(w_pkg)>1:
+ pkg,path=w_pkg.split("\t")
+
+ packages_dico[pkg]=path
+
+ return packages_dico
+
+
+
def __get_value( self, section, option, default_value ):
'''
generic fonction to get value.
def __init__( self,
package_recipes_dir,
package_name,
+ package_meta_path,
package_spec_path,
package_git_srv_src,
package_git_srv_path,
'''
self.__package_name = package_name.replace( "_", "-" )
-
+ self.__package_meta_path=package_meta_path
+
self.__package_git_srv_src = package_git_srv_src
self.__package_git_srv_path = package_git_srv_path
self.__rdepends_dico = self.__spec_parser.get_rdepends()
self.__package_name = self.__spec_parser.get_name().replace( "_", "-" )
- self.__package_recipes_dir = os.path.join(package_recipes_dir,self.__package_name)
+ self.__package_recipes_dir = os.path.join(package_recipes_dir,self.__package_meta_path)
self.__base_file = self.__package_name + ".inc"
#self.__base_depends_file = self.__package_name + "-depends.inc"
#self.__base_rdepends_file = self.__package_name + "-rdepends.inc"
class package_def:
- def __init__( self, project, name, path, revision, priority, git_src ):
+ def __init__( self, project, name, git_path, meta_path, revision, priority, git_src ):
self.__project = project
self.name = name
- self.git_path = path
+ self.git_path = git_path
+ self.meta_path = meta_path
self.git_revision = revision
self.priority = priority
self.git_src = git_src
self.__my_meta_spec = MetaSpec( package_recipes_dir,
self.name,
+ self.meta_path,
package_spec_path,
self.git_src,
self.git_path,
alias_package["cross-arm-binutils"] = "binutils"
alias_package["cross-armv7hl-gcc47-icecream-backend"] = "gcc47"
alias_package["libffi47"] = "gcc47"
-
+ alias_package["crosswalk-bin"] = "crosswalk"
+
for alias in alias_package.keys():
alias_to = alias_package[alias]
if alias_to in packages_dico.keys() and alias not in packages_dico.keys():
packages_dico[alias] = package_def( project,
alias,
a_package_def.git_path,
+ a_package_def.meta_path,
a_package_def.git_revision,
a_package_def.priority,
a_package_def.git_src )
if manifest_git is not None:
remote = manifest_git
- whitelist = SPEC2YOCTO_CONFIG.get_list(self.__my_project, "whitelist")
- if len( whitelist ) != 0:
- list_packages = set(whitelist)
+ whitelist_dico = SPEC2YOCTO_CONFIG.get_whitelist(self.__my_project)
+
+ if len( whitelist_dico.keys() ) != 0:
+ list_packages = set(whitelist_dico.keys())
else:
list_packages = set(packages_dico.keys())
blacklist = set(SPEC2YOCTO_CONFIG.get_list(self.__my_project, "blacklist"))
list_packages=list_packages.difference(blacklist)
for package in list_packages:
+ meta_path=whitelist_dico[package]
if package in packages_dico.keys():
- [path, revision] = packages_dico[package]
+ [git_path, revision] = packages_dico[package]
+
if package in self.__my_package_dico.keys():
if manifest_priority > self.__my_package_dico[package].priority:
self.__my_package_dico[package] = package_def( self.__my_project,
package,
- path,
+ git_path,
+ meta_path,
revision,
manifest_priority,
remote )
else:
self.__my_package_dico[package] = package_def( self.__my_project,
package,
- path,
+ git_path,
+ meta_path,
revision,
manifest_priority,
remote )
- for package in whitelist:
+ for package in whitelist_dico.keys():
if package not in self.__my_package_dico.keys():
msg = "package \"%s\" is in the white list but not in the manifest."
msg = msg % ( package )
'''
self.__recipes_dir_dest = SPEC2YOCTO_CONFIG.get_recipes_sources_directory( self.__my_project )
- self.__clean_old_bb_files(self.__recipes_dir_dest)
+ #self.__clean_old_bb_files(self.__recipes_dir_dest)
if self.__recipes_dir_dest is None:
msg = "In the project \"%s\" recipes_dir_sources is not define."