1# Determine Windows BITS (32/64) from name (mingw32-.../ming64-...)
2%define WINDOWS_BITS %(echo %name | grep 64 >/dev/null 2>&1 && echo "64" || echo "32")
3
4
5%define mingw mingw64
6%define __strip %{_mingw64_strip}
7%define __objdump %{_mingw64_objdump}
8%define _use_internal_dependency_generator 0
9#define __find_requires %%{_mingw64_findrequires}
10%define __find_provides %{_mingw64_findprovides}
11#define __os_install_post #{_mingw64_debug_install_post} \
12#                          #{_mingw64_install_post}
13%define bindir %{_mingw64_bindir}
14
15# flavors:
16#   If name contains debug, enable debug during build.
17#   If name contains prevista, build for windows < vista.
18%define flavors release debug
19%define dirs_with_unittests lib findlib
20%define bareos_configs bareos-dir.d/ bareos-fd.d/ bareos-sd.d/ tray-monitor.d/ bconsole.conf
21
22Name:           %{mingw}-winbareos
23Version:        0.0.0
24Release:        0
25Summary:        Bareos build for Windows
26License:        LGPLv2+
27Group:          Development/Libraries
28URL:            http://bareos.org
29BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
30BuildArch:      noarch
31#!BuildIgnore: post-build-checks
32Source0:        bareos-%{version}.tar.bz2
33
34%define addonsdir /bareos-addons/
35BuildRequires:  bareos-addons
36
37BuildRequires:  %{mingw}-filesystem
38BuildRequires:  %{mingw}-cross-gcc
39BuildRequires:  %{mingw}-cross-gcc-c++
40BuildRequires:  %{mingw}-cross-binutils
41BuildRequires:  %{mingw}-cross-pkg-config
42BuildRequires:  %{mingw}-libqt5-qtbase
43BuildRequires:  %{mingw}-libqt5-qtbase-devel
44BuildRequires:  %{mingw}-cross-libqt5-qmake
45BuildRequires:  %{mingw}-libwinpthread1
46BuildRequires:  %{mingw}-winpthreads-devel
47BuildRequires:  %{mingw}-libopenssl-devel
48BuildRequires:  %{mingw}-libopenssl
49BuildRequires:  %{mingw}-openssl
50BuildRequires:  %{mingw}-libdb-devel
51BuildRequires:  %{mingw}-libgcc
52BuildRequires:  %{mingw}-libtool
53BuildRequires:  %{mingw}-libgcrypt20
54BuildRequires:  %{mingw}-cross-nsis
55BuildRequires:  %{mingw}-gcc
56BuildRequires:  %{mingw}-gcc-c++
57BuildRequires:  %{mingw}-zlib-devel
58BuildRequires:  %{mingw}-zlib
59BuildRequires:  %{mingw}-libpng16-16
60BuildRequires:  %{mingw}-libstdc++
61BuildRequires:  %{mingw}-readline
62BuildRequires:  %{mingw}-readline-devel
63BuildRequires:  %{mingw}-lzo
64BuildRequires:  %{mingw}-lzo-devel
65BuildRequires:  %{mingw}-libfastlz
66BuildRequires:  %{mingw}-libfastlz-devel
67BuildRequires:  %{mingw}-libsqlite3-0
68BuildRequires:  %{mingw}-libsqlite-devel
69BuildRequires:  %{mingw}-gtest-devel
70BuildRequires:  %{mingw}-libgtest0
71BuildRequires:  %{mingw}-libjansson
72BuildRequires:  %{mingw}-libjansson-devel
73
74BuildRequires:  bc
75BuildRequires:  less
76BuildRequires:  procps
77BuildRequires:  sed
78BuildRequires:  vim
79BuildRequires:  cmake
80
81%description
82Base package for Bareos Windows build.
83
84%package release
85Summary:        bareos
86%description release
87Bareos for Windows versions >= Windows Vista
88
89%package debug
90Summary:        bareos
91%description debug
92Bareos Debug for Windows versions >= Windows Vista
93
94
95%prep
96%setup -q -n bareos-%{version}
97
98# unpack addons
99for i in `ls %addonsdir`; do
100   tar xvf %addonsdir/$i
101done
102
103for flavor in %flavors; do
104   mkdir $flavor
105done
106
107
108%build
109
110for flavor in %flavors; do
111
112   #WINDOWS_BITS=$(echo %name | grep 64 >/dev/null 2>&1 && echo "64" || echo "32")
113   WINDOWS_VERSION=$(echo $flavor | grep release >/dev/null && echo 0x600 || echo 0x500)
114   pushd $flavor
115   %{_mingw64_cmake} \
116      -DCMAKE_INSTALL_BINDIR:PATH=%{_mingw64_bindir} \
117      -Dsqlite3=yes \
118      -Dpostgresql=yes \
119      -Dtraymonitor=yes \
120      -DWINDOWS_BITS=%WINDOWS_BITS \
121      -DWINDOWS_VERSION=${WINDOWS_VERSION} \
122      -Ddb_password=@db_password@ \
123      -Ddb_port=@db_port@ \
124      -Ddb_user=@db_user@ \
125      -Ddir_password=@dir_password@ \
126      -Dfd_password=@fd_password@ \
127      -Dsd_password=@sd_password@ \
128      -Dmon_dir_password=@mon_dir_password@ \
129      -Dmon_fd_password=@mon_fd_password@ \
130      -Dmon_sd_password=@mon_sd_password@ \
131      -Dsd_password=@sd_password@ \
132      -DVERSION_STRING=%version \
133      ..
134
135   make %{?jobs:-j%jobs} DESTDIR=%{buildroot}/${flavor}-%WINDOWS_BITS install
136
137   popd
138
139done
140
141
142%install
143#for flavor in %flavors; do
144#   pushd $flavor
145#   make DESTDIR=%{buildroot} install
146#   popd
147#done
148
149%clean
150rm -rf $RPM_BUILD_ROOT
151
152%files
153
154
155%files release
156%defattr(-,root,root)
157/release-%WINDOWS_BITS
158
159%files debug
160/debug-%WINDOWS_BITS
161
162%changelog
163