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