- filtering of repos with non-matching repos moved to RepoManager
[platform/upstream/libzypp.git] / libzypp.spec.cmake
index 1fb2e4f..8d07f1f 100644 (file)
@@ -24,22 +24,23 @@ Prefix:         /usr
 Provides:       yast2-packagemanager
 Obsoletes:      yast2-packagemanager
 BuildRequires:  cmake
-BuildRequires:  libsatsolver-devel openssl-devel
-BuildRequires:  boost-devel curl-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel rpm-devel
+BuildRequires:  libsatsolver-devel >= 0.0.26 openssl-devel
+BuildRequires:  boost-devel curl-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel
 
 %if 0%{?suse_version}
-BuildRequires:  hicolor-icon-theme update-desktop-files
+BuildRequires:  hicolor-icon-theme update-desktop-files rpm-devel
+Requires: uuid-runtime
 %endif
 
 %if 0%{?fedora_version}
-BuildRequires: glib2-devel popt-devel dbus-glib-devel
+BuildRequires: glib2-devel popt-devel dbus-glib-devel rpm-devel
 %endif
 
 %if 0%{?mandriva_version}
-BuildRequires:  sqlite3-devel
 BuildRequires:  glib2-devel
-%else
-BuildRequires:  sqlite-devel
+BuildRequires:  librpm-devel
+# uuidgen
+Requires: e2fsprogs
 %endif
 
 
@@ -96,10 +97,11 @@ Authors:
 %build
 mkdir build
 cd build
+export CFLAGS="$RPM_OPT_FLAGS"
+export CXXFLAGS="$CFLAGS"
 cmake -DCMAKE_INSTALL_PREFIX=%{prefix} \
+      -DDOC_INSTALL_DIR=%{_docdir} \
       -DLIB=%{_lib} \
-      -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags}" \
-      -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags}" \
       -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_SKIP_RPATH=1 \
       ..
@@ -110,11 +112,20 @@ make -C po %{?jobs:-j %jobs} translations
 #make check
 
 %install
+rm -rf "$RPM_BUILD_ROOT"
 cd build
 make install DESTDIR=$RPM_BUILD_ROOT
 make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/etc/zypp/repos.d
+mkdir -p $RPM_BUILD_ROOT/etc/zypp/products.d
+mkdir -p $RPM_BUILD_ROOT/etc/zypp/services.d
+mkdir -p $RPM_BUILD_ROOT/var/lib/zypp
+mkdir -p $RPM_BUILD_ROOT/var/cache/zypp
+
+%if 0%{?suse_version}
 %suse_update_desktop_file -G "" -C "" package-manager
+%endif
+
 make -C po install DESTDIR=$RPM_BUILD_ROOT
 # Create filelist with translations
 cd ..
@@ -126,26 +137,93 @@ cd ..
 if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi
 #%{prefix}/lib/zypp/zypp-migrate-sources
 
+# convert old lock file to new
+# TODO make this a separate file?
+# TODO run the sript only when updating form pre-11.0 libzypp versions
+LOCKSFILE=/etc/zypp/locks
+OLDLOCKSFILE=/etc/zypp/locks.old
+
+is_old(){
+  TEMP_FILE=`mktemp`
+  cat ${LOCKSFILE} | sed '/^\#.*/ d;/.*:.*/d;/^[^[a-zA-Z\*?.0-9]*$/d' > ${TEMP_FILE}
+  if [ -s ${TEMP_FILE} ]
+  then
+    RES=0
+  else
+    RES=1
+  fi
+  rm -f ${TEMP_FILE}
+  return ${RES}
+}
+
+append_new_lock(){
+  case "$#" in
+    1 )
+  echo "
+solvable_name: $1
+match_type: glob
+" >> ${LOCKSFILE}
+;;
+    2 ) #TODO version
+  echo "
+solvable_name: $1
+match_type: glob
+version: $2
+" >> ${LOCKSFILE}
+;;
+    3 ) #TODO version
+  echo "
+solvable_name: $1
+match_type: glob
+version: $2 $3
+" >> ${LOCKSFILE}
+  ;;
+esac
+}
+
+die() {
+  echo $1
+  exit 1
+}
+
+if is_old ${LOCKSFILE}
+  then
+  mv -f ${LOCKSFILE} ${OLDLOCKSFILE} || die "cannot backup old locks"
+  cat ${OLDLOCKSFILE}| sed "/^\#.*/d"| while read line
+  do
+    append_new_lock $line
+  done
+fi
+
+
 %postun
 %run_ldconfig
 
 %clean
+rm -rf "$RPM_BUILD_ROOT"
 
 %files -f zypp.lang
 %defattr(-,root,root)
 %dir               /etc/zypp
 %dir               /etc/zypp/repos.d
+%dir               /etc/zypp/products.d
 %config(noreplace) /etc/zypp/zypp.conf
-#%{prefix}/lib/zypp
+%config(noreplace) /etc/zypp/systemCheck
+%dir               /var/lib/zypp
+%dir               /var/cache/zypp
+%{prefix}/lib/zypp
 %{prefix}/share/zypp
 %{prefix}/share/applications/package-manager.desktop
 %{prefix}/share/icons/hicolor/scalable/apps/package-manager-icon.svg
 %{prefix}/share/icons/hicolor/16x16/apps/package-manager-icon.png
+%{prefix}/share/icons/hicolor/22x22/apps/package-manager-icon.png
+%{prefix}/share/icons/hicolor/24x24/apps/package-manager-icon.png
 %{prefix}/share/icons/hicolor/32x32/apps/package-manager-icon.png
 %{prefix}/share/icons/hicolor/48x48/apps/package-manager-icon.png
 %{prefix}/bin/package-manager
 %{prefix}/bin/package-manager-su
 %{_libdir}/libzypp*so.*
+%doc %_mandir/man5/locks.5.*
 
 %files devel
 %defattr(-,root,root)