Distupgrade: Evaluate new products droplist and schedule packages for deletion. ...
[platform/upstream/libzypp.git] / libzypp.spec.cmake
1 #
2 # spec file for package libzypp
3 #
4 # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
5 # This file and all modifications and additions to the pristine
6 # package are under the same license as the package itself.
7 #
8 # Please submit bugfixes or comments via http://bugs.opensuse.org/
9 #
10
11 # norootforbuild
12
13 Name:           @PACKAGE@
14 License:        GPL v2 or later
15 Group:          System/Packages
16 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
17 Autoreqprov:    on
18 Summary:        Package, Patch, Pattern, and Product Management
19 Version:        @VERSION@
20 Release:        0
21 Source:         %{name}-%{version}.tar.bz2
22 Source1:        %{name}-rpmlintrc
23 Prefix:         /usr
24 Provides:       yast2-packagemanager
25 Obsoletes:      yast2-packagemanager
26 Recommends:     logrotate
27 BuildRequires:  cmake
28 BuildRequires:  libsatsolver-devel >= 0.14.9
29 BuildRequires:  openssl-devel
30 BuildRequires:  boost-devel curl-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel
31
32 # required for testsuite, webrick
33 BuildRequires:  ruby
34 BuildRequires: aria2 >= 1.1.2
35
36 %if 0%{?suse_version}
37 BuildRequires:  libexpat-devel
38 %else
39 BuildRequires:  expat-devel
40 %endif
41
42 %if 0%{?suse_version}
43 BuildRequires:  hicolor-icon-theme update-desktop-files rpm-devel
44 Requires: uuid-runtime
45 %endif
46
47 %if 0%{?fedora_version}
48 BuildRequires: glib2-devel popt-devel dbus-glib-devel rpm-devel
49 %endif
50
51 %if 0%{?mandriva_version}
52 BuildRequires:  glib2-devel
53 BuildRequires:  librpm-devel
54 # uuidgen
55 Requires: e2fsprogs
56 %endif
57
58 %if 0%{?suse_version}
59 Requires:       gpg2
60 %else
61 Requires:       gnupg
62 %endif
63 %requires_eq    satsolver-tools
64
65 Requires:       aria2 >= 1.1.2
66
67 %description
68 Package, Patch, Pattern, and Product Management
69
70 Authors:
71 --------
72     Michael Andres <ma@suse.de>
73     Jiri Srain <jsrain@suse.cz>
74     Stefan Schubert <schubi@suse.de>
75     Duncan Mac-Vicar <dmacvicar@suse.de>
76     Klaus Kaempf <kkaempf@suse.de>
77     Marius Tomaschewski <mt@suse.de>
78     Stanislav Visnovsky <visnov@suse.cz>
79     Ladislav Slezak <lslezak@suse.cz>
80
81 %package devel
82 Requires:       libzypp == %{version}
83 Requires:       libxml2-devel curl-devel openssl-devel rpm-devel glibc-devel zlib-devel
84 Requires:       bzip2 popt-devel dbus-1-devel glib2-devel hal-devel boost-devel libstdc++-devel
85 Requires:       cmake libsatsolver-devel >= 0.13.0
86 Summary:        Package, Patch, Pattern, and Product Management - developers files
87 Group:          System/Packages
88 Provides:       yast2-packagemanager-devel
89 Obsoletes:      yast2-packagemanager-devel
90
91 %description -n libzypp-devel
92 Package, Patch, Pattern, and Product Management - developers files
93
94 Authors:
95 --------
96     Michael Andres <ma@suse.de>
97     Jiri Srain <jsrain@suse.cz>
98     Stefan Schubert <schubi@suse.de>
99     Duncan Mac-Vicar <dmacvicar@suse.de>
100     Klaus Kaempf <kkaempf@suse.de>
101     Marius Tomaschewski <mt@suse.de>
102     Stanislav Visnovsky <visnov@suse.cz>
103     Ladislav Slezak <lslezak@suse.cz>
104
105 %prep
106 %setup -q
107
108 %build
109 mkdir build
110 cd build
111 export CFLAGS="$RPM_OPT_FLAGS"
112 export CXXFLAGS="$CFLAGS"
113 cmake -DCMAKE_INSTALL_PREFIX=%{prefix} \
114       -DDOC_INSTALL_DIR=%{_docdir} \
115       -DLIB=%{_lib} \
116       -DCMAKE_BUILD_TYPE=Release \
117       -DCMAKE_SKIP_RPATH=1 \
118       ..
119 make %{?jobs:-j %jobs} VERBOSE=1
120 make -C doc/autodoc %{?jobs:-j %jobs}
121 make -C po %{?jobs:-j %jobs} translations
122
123 %if 0%{?run_testsuite}
124   make -C tests %{?jobs:-j %jobs}
125   pushd tests
126   LD_LIBRARY_PATH=$PWD/../zypp:$LD_LIBRARY_PATH ctest .
127   popd
128 %endif
129
130 #make check
131
132 %install
133 rm -rf "$RPM_BUILD_ROOT"
134 cd build
135 make install DESTDIR=$RPM_BUILD_ROOT
136 make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT
137 mkdir -p $RPM_BUILD_ROOT/etc/zypp/repos.d
138 mkdir -p $RPM_BUILD_ROOT/etc/zypp/services.d
139 mkdir -p $RPM_BUILD_ROOT/%{_usr}/lib/zypp
140 mkdir -p $RPM_BUILD_ROOT/%{_var}/lib/zypp
141 mkdir -p $RPM_BUILD_ROOT/%{_var}/log/zypp
142 mkdir -p $RPM_BUILD_ROOT/%{_var}/cache/zypp
143
144 %if 0%{?suse_version}
145 %suse_update_desktop_file -G "" -C "" package-manager
146 %endif
147
148 make -C po install DESTDIR=$RPM_BUILD_ROOT
149 # Create filelist with translations
150 cd ..
151 %{find_lang} zypp
152
153
154 %post
155 %run_ldconfig
156 if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi
157
158 # convert old lock file to new
159 # TODO make this a separate file?
160 # TODO run the sript only when updating form pre-11.0 libzypp versions
161 LOCKSFILE=/etc/zypp/locks
162 OLDLOCKSFILE=/etc/zypp/locks.old
163
164 is_old(){
165   # if no such file, exit with false (1 in bash)
166   test -f ${LOCKSFILE} || return 1
167   TEMP_FILE=`mktemp`
168   cat ${LOCKSFILE} | sed '/^\#.*/ d;/.*:.*/d;/^[^[a-zA-Z\*?.0-9]*$/d' > ${TEMP_FILE}
169   if [ -s ${TEMP_FILE} ]
170   then
171     RES=0
172   else
173     RES=1
174   fi
175   rm -f ${TEMP_FILE}
176   return ${RES}
177 }
178
179 append_new_lock(){
180   case "$#" in
181     1 )
182   echo "
183 solvable_name: $1
184 match_type: glob
185 " >> ${LOCKSFILE}
186 ;;
187     2 ) #TODO version
188   echo "
189 solvable_name: $1
190 match_type: glob
191 version: $2
192 " >> ${LOCKSFILE}
193 ;;
194     3 ) #TODO version
195   echo "
196 solvable_name: $1
197 match_type: glob
198 version: $2 $3
199 " >> ${LOCKSFILE}
200   ;;
201 esac
202 }
203
204 die() {
205   echo $1
206   exit 1
207 }
208
209 if is_old ${LOCKSFILE}
210   then
211   mv -f ${LOCKSFILE} ${OLDLOCKSFILE} || die "cannot backup old locks"
212   cat ${OLDLOCKSFILE}| sed "/^\#.*/d"| while read line
213   do
214     append_new_lock $line
215   done
216 fi
217
218
219 %postun
220 %run_ldconfig
221
222 %clean
223 rm -rf "$RPM_BUILD_ROOT"
224
225 %files -f zypp.lang
226 %defattr(-,root,root)
227 %dir               /etc/zypp
228 %dir               /etc/zypp/repos.d
229 %dir               /etc/zypp/services.d
230 %config(noreplace) /etc/zypp/zypp.conf
231 %config(noreplace) /etc/zypp/systemCheck
232 %config(noreplace) %{_sysconfdir}/logrotate.d/zypp-history.lr
233                    %{_usr}/lib/zypp
234 %dir               %{_var}/lib/zypp
235 %dir               %{_var}/log/zypp
236 %dir               %{_var}/cache/zypp
237 %dir               %{prefix}/lib/zypp
238 %{prefix}/share/zypp
239 %{prefix}/share/applications/package-manager.desktop
240 %{prefix}/share/icons/hicolor/scalable/apps/package-manager-icon.svg
241 %{prefix}/share/icons/hicolor/16x16/apps/package-manager-icon.png
242 %{prefix}/share/icons/hicolor/22x22/apps/package-manager-icon.png
243 %{prefix}/share/icons/hicolor/24x24/apps/package-manager-icon.png
244 %{prefix}/share/icons/hicolor/32x32/apps/package-manager-icon.png
245 %{prefix}/share/icons/hicolor/48x48/apps/package-manager-icon.png
246 %{prefix}/bin/*
247 %{_libdir}/libzypp*so.*
248 %doc %_mandir/man5/locks.5.*
249
250 %files devel
251 %defattr(-,root,root)
252 %{_libdir}/libzypp.so
253 %{_docdir}/%{name}
254 %{prefix}/include/zypp
255 %{prefix}/share/cmake/Modules/*
256 %{_libdir}/pkgconfig/libzypp.pc
257
258 %changelog