-%bcond_with wayland
-
Name: pkgmgr
Summary: Packager Manager client library package
-Version: 0.2.89
+Version: 0.13.0
Release: 0
Group: Application Framework/Package Management
License: Apache-2.0
Source1001: %{name}.manifest
Source1002: %{name}-client.manifest
Source1003: %{name}-client-devel.manifest
-Source1004: %{name}-server.manifest
-Source1005: %{name}-installer.manifest
-Source1006: %{name}-installer-devel.manifest
-Source1007: %{name}-types-devel.manifest
-Source1008: %{name}.conf
+Source1004: %{name}-installer.manifest
+Source1005: %{name}-installer-devel.manifest
+Source1006: %{name}-types-devel.manifest
+Source1007: %{name}.conf
+Source1008: %{name}-installer-signal-agent.service
+Source1009: %{name}-installer-signal-agent.socket
+Requires(post): /usr/sbin/useradd
+Requires(post): capi-system-info
BuildRequires: cmake
BuildRequires: unzip
BuildRequires: gettext-tools
-BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(iniparser)
BuildRequires: pkgconfig(libtzplatform-config)
-BuildRequires: pkgconfig(security-manager)
BuildRequires: pkgconfig(xdgmime)
BuildRequires: pkgconfig(db-util)
BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(libsystemd)
+BuildRequires: pkgconfig(minizip)
BuildRequires: pkgmgr-info-parser-devel
BuildRequires: pkgmgr-info-parser
BuildRequires: fdupes
Package Manager client library develpoment package for packaging
-%package server
-Summary: Package Manager server
-Requires: %{name} = %{version}-%{release}
-
-%description server
-Package Manager server for packaging
-
-
%package installer
Summary: Library for installer frontend/backend
Requires: %{name} = %{version}-%{release}
%package installer-devel
Summary: Dev package for libpkgmgr-installer
Requires: %{name} = %{version}-%{release}
+Requires: pkgmgr-installer = %{version}-%{release}
%description installer-devel
Dev package for libpkgmgr-installer for packaging.
%description types-devel
Package Manager client types develpoment package for packaging
-
%prep
%setup -q
-cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} %{SOURCE1004} %{SOURCE1005} %{SOURCE1006} %{SOURCE1007} .
+cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} %{SOURCE1004} %{SOURCE1005} %{SOURCE1006} .
%build
-%cmake .
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
%__make %{?_smp_mflags}
rm -f %{buildroot}%{_libdir}/libpkgmgr_parser_lib_sample.so
mkdir -p %{buildroot}%{_tmpfilesdir}/
-install -m 0644 %{SOURCE1008} %{buildroot}%{_tmpfilesdir}/pkgmgr.conf
+install -m 0644 %{SOURCE1007} %{buildroot}%{_tmpfilesdir}/pkgmgr.conf
+
+mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
+install -m 0644 %{SOURCE1008} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.service
+install -m 0644 %{SOURCE1009} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.socket
+ln -sf ../pkgmgr-installer-signal-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backend
mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backendlib
mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade
-touch %{buildroot}%{_sysconfdir}/package-manager/backend/rpm
-chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/rpm
-touch %{buildroot}%{_sysconfdir}/package-manager/backend/pkg
-chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkg
-touch %{buildroot}%{_sysconfdir}/package-manager/backend/getsize
-chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/getsize
-touch %{buildroot}%{_sysconfdir}/package-manager/backend/clearcache
-chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/clearcache
+touch %{buildroot}%{_sysconfdir}/package-manager/backend/default
+chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/default
+touch %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
+chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
+touch %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
+chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
-mkdir -p %{buildroot}%{_sysconfdir}/package-manager/server
-
%fdupes %{buildroot}
%post
/sbin/ldconfig
-# For pkgmgr-install:
-# Update mime database to support package mime types
-update-mime-database %{_datadir}/mime
-chsmack -a '*' %{TZ_SYS_RW_PACKAGES}
+# Create tizenglobalapp user needed for global installation
+useradd %TZ_SYS_GLOBALAPP_USER -r -c "system user for common applications" -g root -u 201
+
+# change owner of TZ_USER_APP (/etc/skel/apps_rw) to tizenglobalapp
+saveHOME="$HOME"
+HOME="%{_sysconfdir}/skel"
+. "%{_sysconfdir}/tizen-platform.conf"
+
+chown %TZ_SYS_GLOBALAPP_USER:root $TZ_USER_APP
-%post -n pkgmgr-server -p /sbin/ldconfig
+# add .shared and .shared_tmp at skel
+mkdir -p $TZ_USER_APP/.shared
+mkdir -p $TZ_USER_APP/.shared_tmp
+chsmack -a User::Home $TZ_USER_APP/.shared
+chsmack -a User::Home $TZ_USER_APP/.shared_tmp
+chmod 755 $TZ_USER_APP/.shared
+chmod 755 $TZ_USER_APP/.shared_tmp
+
+HOME="$saveHOME"
%post -n pkgmgr-client -p /sbin/ldconfig
%postun -n pkgmgr-installer -p /sbin/ldconfig
+%posttrans
+if [ ! -f %{TZ_SYS_DB}/.pkgmgr_parser.db ]; then
+ pkg_initdb --ro
+ install_preload_pkg
+ if [ -f /tmp/.preload_install_error ]; then
+ if [ ! -d /tmp/.postscript/error ]; then
+ mkdir -p /tmp/.postscript/error
+ fi
+ echo "preload install failed" > /tmp/.postscript/error/%{name}_error
+ else
+ pkgcmd -l --global 1>&2
+ fi
+ %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
+fi
+rm -rf %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
%files
%manifest %{name}.manifest
%defattr(-,root,root,-)
%dir %{_sysconfdir}/package-manager/backend
%dir %{_sysconfdir}/package-manager/backendlib
-%dir %{_sysconfdir}/opt/upgrade
%{_sysconfdir}/package-manager/backend/*
-%{_sysconfdir}/opt/upgrade/pkgmgr.patch.sh
-%{_bindir}/pkgcmd
-%attr(06755,root,root) %{_bindir}/pkg_initdb
-%attr(755,root,root) %{_sysconfdir}/gumd/useradd.d/10_package-manager-add.post
-%{_bindir}/pkg_getsize
-%{_bindir}/pkg_clearcache
-%{_bindir}/pkg_privilege
-%{_bindir}/pkg_install_ug
-%{_bindir}/pkginfo
-%{_datadir}/mime/packages/mime.wac.xml
-%{_datadir}/mime/packages/mime.tpk.xml
%{_tmpfilesdir}/pkgmgr.conf
-%exclude %{_includedir}/pkgmgr/comm_client.h
-%exclude %{_includedir}/pkgmgr/comm_config.h
-%exclude %{_sysconfdir}/package-manager/server/queue_status
%files client
%manifest %{name}-client.manifest
+%license LICENSE
%defattr(-,root,root,-)
%dir %{_sysconfdir}/package-manager
%config %{_sysconfdir}/package-manager/pkg_path.conf
%files client-devel
%manifest %{name}-client-devel.manifest
%defattr(-,root,root,-)
-%{_includedir}/package-manager.h
+%{_includedir}/*.h
%{_libdir}/pkgconfig/pkgmgr.pc
%{_libdir}/libpkgmgr-client.so
-%files server
-%manifest %{name}-server.manifest
-%defattr(-,root,root,-)
-%{_datadir}/dbus-1/system-services/org.tizen.pkgmgr.service
-%config %{_sysconfdir}/dbus-1/system.d/org.tizen.pkgmgr.conf
-%{_bindir}/pkgmgr-server
-%{_sysconfdir}/package-manager/server
-
%files installer
%manifest %{name}-installer.manifest
+%license LICENSE
%defattr(-,root,root,-)
%{_libdir}/libpkgmgr_installer.so.*
-%{_libdir}/libpkgmgr_installer_client.so.*
+%{_bindir}/pkgmgr-installer-signal-agent
+%{_unitdir_user}/pkgmgr-installer-signal-agent.service
+%{_unitdir_user}/pkgmgr-installer-signal-agent.socket
+%{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
%files installer-devel
%manifest %{name}-installer-devel.manifest
%defattr(-,root,root,-)
%dir %{_includedir}/pkgmgr
-%{_includedir}/pkgmgr/pkgmgr_installer.h
+%{_includedir}/pkgmgr/*.h
%{_libdir}/pkgconfig/pkgmgr-installer.pc
-%{_libdir}/pkgconfig/pkgmgr-installer-client.pc
%{_libdir}/libpkgmgr_installer.so
-%{_libdir}/libpkgmgr_installer_client.so
%files types-devel
%manifest %{name}-types-devel.manifest
%defattr(-,root,root,-)
-%{_includedir}/package-manager-types.h
-%{_includedir}/package-manager-plugin.h
+%{_includedir}/package-manager-*.h
%{_libdir}/pkgconfig/pkgmgr-types.pc