Replace .po files in source tree by tarballs.
[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:  openssl-devel
29 BuildRequires:  boost-devel dejagnu doxygen gcc-c++ gettext-devel graphviz hal-devel libxml2-devel
30
31 BuildRequires:  libsatsolver-devel >= 0.14.13
32 %requires_eq    satsolver-tools
33
34 # required for testsuite, webrick
35 BuildRequires:  ruby
36
37 %if 0%{?suse_version}
38 BuildRequires:  libexpat-devel
39 %else
40 BuildRequires:  expat-devel
41 %endif
42
43 %if 0%{?suse_version}
44 BuildRequires:  hicolor-icon-theme update-desktop-files rpm-devel
45 Requires: uuid-runtime
46 %endif
47
48 %if 0%{?fedora_version}
49 BuildRequires: glib2-devel popt-devel dbus-glib-devel rpm-devel
50 %endif
51
52 %if 0%{?mandriva_version}
53 BuildRequires:  glib2-devel
54 BuildRequires:  librpm-devel
55 # uuidgen
56 Requires: e2fsprogs
57 %endif
58
59 %if 0%{?suse_version}
60 Requires:       gpg2
61 %else
62 Requires:       gnupg
63 %endif
64
65 # ---------------------------------------------------------------
66 %if 0%{?suse_version} == 1110
67 # (almost) common codebase, but on SLES11-SP1 (according to Rudi
68 # suse_version == 1110) we have a patched libcurl-7.19.0-11.22,
69 # and no aria2. Furthermore SLE may use it's own set of .po files
70 # from po/sle-zypp-po.tar.bz2.
71 %define min_curl_version 7.19.0-11.22
72 %define use_translation_set sle-zypp
73 # ---------------------------------------------------------------
74 %else
75 # ---------------------------------------------------------------
76 # This is 11.2 (better not sles11-sp1)
77 # need CURLOPT_REDIR_PROTOCOLS:
78 %define min_curl_version 7.19.4
79 # want aria2:
80 Requires:      aria2 >= 1.1.2
81 BuildRequires: aria2 >= 1.1.2
82 %endif
83 # ---------------------------------------------------------------
84
85 Requires:       libcurl4   >= %{min_curl_version}
86 BuildRequires:  libcurl-devel >= %{min_curl_version}
87
88 %description
89 Package, Patch, Pattern, and Product Management
90
91 Authors:
92 --------
93     Michael Andres <ma@suse.de>
94     Jiri Srain <jsrain@suse.cz>
95     Stefan Schubert <schubi@suse.de>
96     Duncan Mac-Vicar <dmacvicar@suse.de>
97     Klaus Kaempf <kkaempf@suse.de>
98     Marius Tomaschewski <mt@suse.de>
99     Stanislav Visnovsky <visnov@suse.cz>
100     Ladislav Slezak <lslezak@suse.cz>
101
102 %package devel
103 Requires:       libzypp == %{version}
104 Requires:       libxml2-devel openssl-devel rpm-devel glibc-devel zlib-devel
105 Requires:       bzip2 popt-devel dbus-1-devel glib2-devel hal-devel boost-devel libstdc++-devel
106 Requires:       cmake
107 Requires:       libcurl-devel >= %{min_curl_version}
108 %requires_ge    libsatsolver-devel
109
110 Summary:        Package, Patch, Pattern, and Product Management - developers files
111 Group:          System/Packages
112 Provides:       yast2-packagemanager-devel
113 Obsoletes:      yast2-packagemanager-devel
114
115 %description -n libzypp-devel
116 Package, Patch, Pattern, and Product Management - developers files
117
118 Authors:
119 --------
120     Michael Andres <ma@suse.de>
121     Jiri Srain <jsrain@suse.cz>
122     Stefan Schubert <schubi@suse.de>
123     Duncan Mac-Vicar <dmacvicar@suse.de>
124     Klaus Kaempf <kkaempf@suse.de>
125     Marius Tomaschewski <mt@suse.de>
126     Stanislav Visnovsky <visnov@suse.cz>
127     Ladislav Slezak <lslezak@suse.cz>
128
129 %prep
130 %setup -q
131
132 %build
133 mkdir build
134 cd build
135 export CFLAGS="$RPM_OPT_FLAGS"
136 export CXXFLAGS="$CFLAGS"
137 cmake -DCMAKE_INSTALL_PREFIX=%{prefix} \
138       -DDOC_INSTALL_DIR=%{_docdir} \
139       -DLIB=%{_lib} \
140       -DCMAKE_BUILD_TYPE=Release \
141       -DCMAKE_SKIP_RPATH=1 \
142       %{?use_translation_set:-DUSE_TRANSLATION_SET=%use_translation_set} \
143       ..
144 make %{?jobs:-j %jobs} VERBOSE=1
145 make -C doc/autodoc %{?jobs:-j %jobs}
146 make -C po %{?jobs:-j %jobs} translations
147
148 %if 0%{?run_testsuite}
149   make -C tests %{?jobs:-j %jobs}
150   pushd tests
151   LD_LIBRARY_PATH=$PWD/../zypp:$LD_LIBRARY_PATH ctest .
152   popd
153 %endif
154
155 #make check
156
157 %install
158 rm -rf "$RPM_BUILD_ROOT"
159 cd build
160 make install DESTDIR=$RPM_BUILD_ROOT
161 make -C doc/autodoc install DESTDIR=$RPM_BUILD_ROOT
162 mkdir -p $RPM_BUILD_ROOT/etc/zypp/repos.d
163 mkdir -p $RPM_BUILD_ROOT/etc/zypp/services.d
164 mkdir -p $RPM_BUILD_ROOT/%{_usr}/lib/zypp
165 mkdir -p $RPM_BUILD_ROOT/%{_var}/lib/zypp
166 mkdir -p $RPM_BUILD_ROOT/%{_var}/log/zypp
167 mkdir -p $RPM_BUILD_ROOT/%{_var}/cache/zypp
168
169 %if 0%{?suse_version}
170 %suse_update_desktop_file -G "" -C "" package-manager
171 %endif
172
173 make -C po install DESTDIR=$RPM_BUILD_ROOT
174 # Create filelist with translations
175 cd ..
176 %{find_lang} zypp
177
178
179 %post
180 %run_ldconfig
181 if [ -f /var/cache/zypp/zypp.db ]; then rm /var/cache/zypp/zypp.db; fi
182
183 # convert old lock file to new
184 # TODO make this a separate file?
185 # TODO run the sript only when updating form pre-11.0 libzypp versions
186 LOCKSFILE=/etc/zypp/locks
187 OLDLOCKSFILE=/etc/zypp/locks.old
188
189 is_old(){
190   # if no such file, exit with false (1 in bash)
191   test -f ${LOCKSFILE} || return 1
192   TEMP_FILE=`mktemp`
193   cat ${LOCKSFILE} | sed '/^\#.*/ d;/.*:.*/d;/^[^[a-zA-Z\*?.0-9]*$/d' > ${TEMP_FILE}
194   if [ -s ${TEMP_FILE} ]
195   then
196     RES=0
197   else
198     RES=1
199   fi
200   rm -f ${TEMP_FILE}
201   return ${RES}
202 }
203
204 append_new_lock(){
205   case "$#" in
206     1 )
207   echo "
208 solvable_name: $1
209 match_type: glob
210 " >> ${LOCKSFILE}
211 ;;
212     2 ) #TODO version
213   echo "
214 solvable_name: $1
215 match_type: glob
216 version: $2
217 " >> ${LOCKSFILE}
218 ;;
219     3 ) #TODO version
220   echo "
221 solvable_name: $1
222 match_type: glob
223 version: $2 $3
224 " >> ${LOCKSFILE}
225   ;;
226 esac
227 }
228
229 die() {
230   echo $1
231   exit 1
232 }
233
234 if is_old ${LOCKSFILE}
235   then
236   mv -f ${LOCKSFILE} ${OLDLOCKSFILE} || die "cannot backup old locks"
237   cat ${OLDLOCKSFILE}| sed "/^\#.*/d"| while read line
238   do
239     append_new_lock $line
240   done
241 fi
242
243
244 %postun
245 %run_ldconfig
246
247 %clean
248 rm -rf "$RPM_BUILD_ROOT"
249
250 %files -f zypp.lang
251 %defattr(-,root,root)
252 %dir               /etc/zypp
253 %dir               /etc/zypp/repos.d
254 %dir               /etc/zypp/services.d
255 %config(noreplace) /etc/zypp/zypp.conf
256 %config(noreplace) /etc/zypp/systemCheck
257 %config(noreplace) %{_sysconfdir}/logrotate.d/zypp-history.lr
258                    %{_usr}/lib/zypp
259 %dir               %{_var}/lib/zypp
260 %dir               %{_var}/log/zypp
261 %dir               %{_var}/cache/zypp
262 %dir               %{prefix}/lib/zypp
263 %{prefix}/share/zypp
264 %{prefix}/share/applications/package-manager.desktop
265 %{prefix}/share/icons/hicolor/scalable/apps/package-manager-icon.svg
266 %{prefix}/share/icons/hicolor/16x16/apps/package-manager-icon.png
267 %{prefix}/share/icons/hicolor/22x22/apps/package-manager-icon.png
268 %{prefix}/share/icons/hicolor/24x24/apps/package-manager-icon.png
269 %{prefix}/share/icons/hicolor/32x32/apps/package-manager-icon.png
270 %{prefix}/share/icons/hicolor/48x48/apps/package-manager-icon.png
271 %{prefix}/bin/*
272 %{_libdir}/libzypp*so.*
273 %doc %_mandir/man5/locks.5.*
274
275 %files devel
276 %defattr(-,root,root)
277 %{_libdir}/libzypp.so
278 %{_docdir}/%{name}
279 %{prefix}/include/zypp
280 %{prefix}/share/cmake/Modules/*
281 %{_libdir}/pkgconfig/libzypp.pc
282
283 %changelog