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