Accepting request 394829 from Application:Geo

- New upstream release 2.1.0
  - https://trac.osgeo.org/gdal/wiki/Release/2.1.0-News
- packaging changes
  - Removed gdal-python_install.patch
  - Removed gdal-2.0.2-sqlite-crash.patch
  - Removed gdal-configure.patch
  - Added ogr_wrap.patch to solve no-return-in-non-void-function error
  - Submitted ogr_wrap.patch upstream: https://trac.osgeo.org/gdal/ticket/6506
  - Redone patch GDALmake.opt.in.patch

- Upgrade to 2x series version : 2.0.2 bugfix release
  - https://trac.osgeo.org/gdal/wiki/Release/2.0.2-News 
  - https://trac.osgeo.org/gdal/wiki/Release/2.0.1-News
  - https://trac.osgeo.org/gdal/wiki/Release/2.0.0-News
- packaging
  - Redone patch GDALmake.opt.in.patch and gdal-libproj.patch
  - Delete upstream merged gdal-python-swig3-issue6045.path
  - Delete upstream merged gdal_swig-perl-issue3084.patch
  - Add gdal-2.0.2-sqlite-crash.patch Fix upstream issue 6360
  - spec-cleaner minimal (pkgconfig make unresolvable all except
    Leap and Tumbleweed)

  gdal-gcc5-getaddrinfo-issue6073.patch

OBS-URL: https://build.opensuse.org/request/show/394829
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdal?expand=0&rev=12
This commit is contained in:
Dominique Leuenberger 2016-05-17 15:14:23 +00:00 committed by Git OBS Bridge
commit ec1938460f
10 changed files with 175 additions and 131 deletions

View File

@ -1,11 +1,12 @@
--- GDALmake.opt.in.orig 2012-10-09 00:58:28.000000000 +0000
+++ GDALmake.opt.in
@@ -67,7 +67,7 @@ INST_DOCS = @exec_prefix@/doc
diff -rup gdal-2.1.0-orig/GDALmake.opt.in gdal-2.1.0/GDALmake.opt.in
--- gdal-2.1.0-orig/GDALmake.opt.in 2016-04-25 20:35:57.000000000 +0300
+++ gdal-2.1.0/GDALmake.opt.in 2016-05-10 05:25:25.988438174 +0300
@@ -68,7 +68,7 @@ INST_DOCS = @exec_prefix@/doc
INST_MAN = @mandir@
INST_HTML = $(HOME)/www/gdal
-CPPFLAGS = @CPPFLAGS@ -I$(GDAL_ROOT)/port @EXTRA_INCLUDES@
+CPPFLAGS = @CPPFLAGS@ -I$(GDAL_ROOT)/port -I$(GDAL_ROOT)/gcore @EXTRA_INCLUDES@
-CPPFLAGS = @CPPFLAGS@ -I$(GDAL_ROOT)/port @EXTRA_INCLUDES@ -DGDAL_COMPILATION
+CPPFLAGS = @CPPFLAGS@ -I$(GDAL_ROOT)/port -I$(GDAL_ROOT)/gcore @EXTRA_INCLUDES@ -DGDAL_COMPILATION
CFLAGS = @CFLAGS@ @C_WFLAGS@ $(USER_DEFS)
CXXFLAGS = @CXXFLAGS@ @CXX_WFLAGS@ $(USER_DEFS)
LDFLAGS = @LDFLAGS@
CFLAGS_NOFTRAPV = @CFLAGS_NOFTRAPV@ @C_WFLAGS@ $(USER_DEFS)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f60e736db626b9d7ca3549bdd53d1699950af488ed4190b4ddb54c71d22411be
size 10806069

3
gdal-2.1.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:568b43441955b306364fcf97fb47d4c1512ac6f2f5f76b2ec39a890d2418ee03
size 7656496

View File

@ -1,28 +0,0 @@
--- configure.in.orig 2014-10-09 17:42:26.749925309 +0200
+++ configure.in 2014-10-09 17:43:02.026926627 +0200
@@ -4042,11 +4042,7 @@
if test -d "$with_jvm_lib"; then
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$with_jvm_lib"
- if test "x$mac_java_fw" != "x"; then
- AC_CHECK_FW_FUNC($mac_java_fw,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
- else
- AC_CHECK_LIB(jvm,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
- fi
+ AC_CHECK_LIB(jvm,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
LDFLAGS="$saved_LDFLAGS"
if test "$HAS_LIB_JVM" = "yes"; then
JVM_LIB="-L$with_jvm_lib -ljvm"
@@ -4085,11 +4081,7 @@
unset ac_cv_lib_jvm_JNI_CreateJavaVM
saved_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$TEST_DIR"
- if test "x$mac_java_fw" != "x"; then
- AC_CHECK_FW_FUNC($mac_java_fw,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
- else
- AC_CHECK_LIB(jvm,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
- fi
+ AC_CHECK_LIB(jvm,JNI_CreateJavaVM,HAS_LIB_JVM=yes,HAS_LIB_JVM=no,)
LDFLAGS="$saved_LDFLAGS"
if test "$HAS_LIB_JVM" = "yes"; then
JVM_LIB="-L$TEST_DIR -ljvm"

View File

@ -1,6 +1,7 @@
--- ogr/ogrct.cpp 2014-09-24 15:47:42.000000000 +0200
+++ ogr/ogrct.cpp_new 2015-03-10 11:09:34.135358433 +0100
@@ -92,7 +92,7 @@
diff -rup a/ogr/ogrct.cpp b/ogr/ogrct.cpp
--- a/ogr/ogrct.cpp 2016-01-26 16:21:46.000000000 +0100
+++ b/ogr/ogrct.cpp 2016-02-23 12:41:38.368276062 +0100
@@ -92,7 +92,7 @@ static void (*pfn_pj_ctx_free)( projC
#elif defined(__APPLE__)
# define LIBNAME "libproj.dylib"
#else

View File

@ -1,7 +1,7 @@
diff -ur gdal-1.8.0/swig/perl/GNUmakefile gdal-1.8.0_fix//swig/perl/GNUmakefile
--- gdal-1.8.0/swig/perl/GNUmakefile 2011-01-14 06:19:06.000000000 +0100
+++ gdal-1.8.0_fix//swig/perl/GNUmakefile 2011-02-04 13:37:06.000000000 +0100
@@ -26,7 +26,7 @@
diff -rup a/swig/perl/GNUmakefile b/swig/perl/GNUmakefile
--- a/swig/perl/GNUmakefile 2015-06-14 21:06:33.000000000 +0200
+++ b/swig/perl/GNUmakefile 2015-07-26 19:09:56.184743728 +0200
@@ -26,7 +26,7 @@ build: gdal_wrap.cc Makefile_Geo__GDAL
gdal_wrap.cc: generate
Makefile_Geo__GDAL:
@ -10,3 +10,15 @@ diff -ur gdal-1.8.0/swig/perl/GNUmakefile gdal-1.8.0_fix//swig/perl/GNUmakefile
test: build
$(MAKE) -f Makefile_Geo__GDAL test
diff -rup a/swig/perl/Makefile b/swig/perl/Makefile
--- a/swig/perl/Makefile 2015-06-14 21:06:33.000000000 +0200
+++ b/swig/perl/Makefile 2015-07-26 19:09:30.598745454 +0200
@@ -7,7 +7,7 @@ build: Makefile_Geo__GDAL
$(MAKE) -f Makefile_Geo__OSR
Makefile_Geo__GDAL:
- perl Makefile.PL INSTALL_BASE=$(INST_PREFIX)
+ perl Makefile.PL INSTALLDIRS=vendor
test: build
$(MAKE) -f Makefile_Geo__GDAL test

View File

@ -1,16 +0,0 @@
--- gdal-1.5.4/swig/python/GNUmakefile.bak 2008-07-26 21:04:24.000000000 +0200
+++ gdal-1.5.4/swig/python/GNUmakefile 2009-05-18 20:14:35.000000000 +0200
@@ -66,12 +66,7 @@
$(PYTHON) setup.py bdist_egg
install:
-
-ifeq ($(PY_HAVE_SETUPTOOLS),1)
- $(PYTHON) setup.py install
-else
- $(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix)
-endif
+ $(PYTHON) setup.py install --prefix=$(prefix) --root=$(DESTDIR)
for f in $(SCRIPTS) ; do $(INSTALL) ./scripts/$$f $(DESTDIR)$(INST_BIN) ; done

View File

@ -1,3 +1,32 @@
-------------------------------------------------------------------
Tue May 10 03:11:00 UTC 2016 - Angelos Tzotsos <tzotsos@opensuse.org>
- New upstream release 2.1.0
- https://trac.osgeo.org/gdal/wiki/Release/2.1.0-News
- packaging changes
- Removed gdal-python_install.patch
- Removed gdal-2.0.2-sqlite-crash.patch
- Removed gdal-configure.patch
- Added ogr_wrap.patch to solve no-return-in-non-void-function error
- Submitted ogr_wrap.patch upstream: https://trac.osgeo.org/gdal/ticket/6506
- Redone patch GDALmake.opt.in.patch
-------------------------------------------------------------------
Tue Feb 23 14:42:10 UTC 2016 - bruno@ioda-net.ch
- Upgrade to 2x series version : 2.0.2 bugfix release
- https://trac.osgeo.org/gdal/wiki/Release/2.0.2-News
- https://trac.osgeo.org/gdal/wiki/Release/2.0.1-News
- https://trac.osgeo.org/gdal/wiki/Release/2.0.0-News
- packaging
- Redone patch GDALmake.opt.in.patch and gdal-libproj.patch
- Delete upstream merged gdal-python-swig3-issue6045.path
- Delete upstream merged gdal_swig-perl-issue3084.patch
- Add gdal-2.0.2-sqlite-crash.patch Fix upstream issue 6360
- spec-cleaner minimal (pkgconfig make unresolvable all except
Leap and Tumbleweed)
-------------------------------------------------------------------
Thu Feb 4 18:55:25 UTC 2016 - behrisch@users.sourceforge.net

148
gdal.spec
View File

@ -17,21 +17,26 @@
%bcond_with ecw_support
# Soname should be bumped on API/ABI break
# http://trac.osgeo.org/gdal/ticket/4543
%define soversion 20
%define sourcename gdal
Name: gdal
Version: 1.11.4
Version: 2.1.0
Release: 0
Summary: GDAL/OGR - a translator library for raster and vector geospatial data formats
License: MIT and BSD-3-Clause and SUSE-Public-Domain
Group: Development/Libraries/C and C++
Url: http://www.gdal.org/
Source0: http://download.osgeo.org/%{name}/%{version}/%{name}-%{version}.tar.gz
Patch0: gdal-python_install.patch
Patch1: gdal-configure.patch
Patch2: gdal-perl.patch
# Fix occasional paralle build failure
Patch3: GDALmake.opt.in.patch
Source0: http://download.osgeo.org/%{name}/%{version}/%{sourcename}-%{version}.tar.xz
Patch0: gdal-perl.patch
# Fix occasional parallel build failure
Patch1: GDALmake.opt.in.patch
# Fix hard coded name of libproj library
Patch4: gdal-libproj.patch
# But libproj.so is valid if libproj-devel is installed ?
Patch2: gdal-libproj.patch
Patch3: ogr_wrap.patch
BuildRequires: blas-devel
BuildRequires: chrpath
BuildRequires: curl-devel
@ -46,7 +51,6 @@ BuildRequires: libexpat-devel >= 1.95.0
BuildRequires: libgeotiff-devel >= 1.2.1
BuildRequires: libjasper-devel
BuildRequires: libjpeg-devel
BuildRequires: libmysqld-devel
BuildRequires: libpng-devel
BuildRequires: libproj-devel
BuildRequires: libspatialite-devel
@ -54,17 +58,22 @@ BuildRequires: libtiff-devel >= 3.6.0
BuildRequires: libtool
BuildRequires: libxerces-c-devel
BuildRequires: libxml2-devel
BuildRequires: mysql-devel
BuildRequires: netcdf-devel
BuildRequires: opencl-headers
BuildRequires: openjpeg2-devel
BuildRequires: perl-macros
BuildRequires: php5-devel
BuildRequires: poppler-devel
BuildRequires: postgresql-devel
BuildRequires: python-numpy-devel
BuildRequires: python-setuptools
BuildRequires: python3-devel
BuildRequires: python3-numpy-devel
BuildRequires: python3-setuptools
BuildRequires: sqlite-devel >= 3
BuildRequires: swig
BuildRequires: unixODBC-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel >= 1.1.4
%if %{with ecw_support}
BuildRequires: libecwj2-devel
@ -97,22 +106,23 @@ vector data.
%package devel
Summary: GDAL library header files
Group: Development/Languages/C and C++
Requires: lib%{name}1 = %{version}
Requires: lib%{name}%{soversion} = %{version}
Provides: lib%{name}%{soversion}-devel
Provides: lib%{name}-devel
%description devel
Development Libraries for the GDAL file format library
%package -n lib%{name}1
%package -n lib%{name}%{soversion}
Summary: GDAL static libraries
Group: System/Libraries
%description -n lib%{name}1
%description -n lib%{name}%{soversion}
GDAL and OGR are translator libraries for raster and vector geospatial data
formats. As a library, it presents a single abstract data model to the calling
application for all supported formats.
%package -n perl-gdal
%package -n perl-%{name}
Summary: Perl bindings for GDAL
Group: Development/Languages/Perl
Requires: %{name} = %{version}-%{release}
@ -122,50 +132,46 @@ Requires: perl = %{perl_version}
%{perl_requires}
%endif
%description -n perl-gdal
%description -n perl-%{name}
Perl bindings for GDAL - Geo::GDAL, Geo::OGR and Geo::OSR modules.
%package -n python-gdal
%package -n python-%{name}
Summary: GDAL Python module
Group: Development/Languages/Python
Requires: %{name} = %{version}-%{release}
%py_requires
%description -n python-gdal
%description -n python-%{name}
The GDAL python modules provide support to handle multiple GIS file formats.
%package -n python3-gdal
%package -n python3-%{name}
Summary: GDAL Python3 module
Group: Development/Languages/Python
Requires: %{name} = %{version}-%{release}
%description -n python3-gdal
The GDAL python3 modules provide support to handle multiple GIS file formats.
%description -n python3-%{name}
The GDAL python modules provide support to handle multiple GIS file formats.
%prep
%setup -q -n gdal-%{version}
%setup -q -n %{sourcename}-%{version}
%patch0 -p1
%patch1
%patch1 -p1
%patch2 -p1
%patch3 -p0
%patch4 -p0
%patch3 -p1
# Fix mandir
sed -i "s|^mandir=.*|mandir='\${prefix}/share/man'|" configure
# Fix wrong encoding EOL
for F in frmt_twms_srtm.xml frmt_wms_bluemarble_s3_tms.xml frmt_wms_virtualearth.xml frmt_twms_Clementine.xml;
do
# dos2unix -v is not supported on archaic SLE version
for F in frmt_twms_srtm.xml frmt_wms_bluemarble_s3_tms.xml frmt_wms_virtualearth.xml frmt_twms_Clementine.xml;do
find . -name "${F}" -exec dos2unix {} \;
done
# need to regenerate (old ones don't support perl 5.10)
#See below the veryclean & generate usage.
rm -r man
%build
# need to regenerate (old one does not accpet CFLAGS)
%if 0%{?suse_version} >= 1310
autoreconf -fiv
mv configure.in configure.ac
autoreconf -fi
%endif
%configure \
@ -228,7 +234,7 @@ do
make %{?_smp_mflags} -C swig/${M} generate
done
make %{?_smp_mflags} all docs man
make %{?_smp_mflags} VERBOSE=1 all docs man
# Make Python 3 module
pushd swig/python
@ -246,8 +252,6 @@ popd
make %{?_smp_mflags} install install-man \
DESTDIR=%{buildroot} INST_MAN=%{_mandir}
cp -a ogr/html html/ogr
# Not on buildroot : broke everything with python3
# If done got python3 needing python2 package heretic ..
# Futhermore duplicates are only existing in src html dir
@ -268,7 +272,7 @@ chrpath --delete %{buildroot}%{perl_vendorarch}/auto/Geo/OSR/OSR.so
%if 0%{?suse_version} <= 1315
# perl bs 0 length files cleanup
find %{buildroot}%{perl_vendorarch} -name "*.bs" -exec rm -fv {} \;
find %{buildroot}%{perl_vendorarch} -iname "*.bs" -exec rm -fv {} \;
# Those are deleted.
#%%{perl_vendorarch}/auto/Geo/OSR/OSR.bs
#%%{perl_vendorarch}/auto/Geo/OGR/OGR.bs
@ -287,77 +291,105 @@ rm -rf %{buildroot}%{_bindir}/*.dox
# avoid PACKAGE redefines
sed -i 's,\(#define PACKAGE_.*\),/* \1 */,' %{buildroot}%{_includedir}/gdal/cpl_config.h
%post -n lib%{name}1 -p /sbin/ldconfig
%post -n lib%{name}%{soversion} -p /sbin/ldconfig
%postun -n lib%{name}1 -p /sbin/ldconfig
%postun -n lib%{name}%{soversion} -p /sbin/ldconfig
%files -n lib%{name}1
%files -n lib%{name}%{soversion}
%defattr(644,root,root,755)
%{_libdir}/*.so.1.*
%{_libdir}/*.so.1
%{_libdir}/*.so.%{soversion}.*
%{_libdir}/*.so.%{soversion}
%files
%defattr(644,root,root,755)
%doc NEWS PROVENANCE.TXT
%attr(755,root,root) %{_bindir}/*.py
%defattr(755,root,root,755)
%{_bindir}/epsg_tr.py
%{_bindir}/esri2wkt.py
%{_bindir}/gcps2vec.py
%{_bindir}/gcps2wld.py
%{_bindir}/gdal2tiles.py
%{_bindir}/gdal2xyz.py
%{_bindir}/gdal_auth.py
%{_bindir}/gdal_calc.py
%{_bindir}/gdal_contour
%{_bindir}/gdallocationinfo
%{_bindir}/gdal_edit.py
%{_bindir}/gdal_fillnodata.py
%{_bindir}/gdal_grid
%{_bindir}/gdal_merge.py
%{_bindir}/gdal_polygonize.py
%{_bindir}/gdal_proximity.py
%{_bindir}/gdal_pansharpen.py
%{_bindir}/gdal_rasterize
%{_bindir}/gdal_retile.py
%{_bindir}/gdal_sieve.py
%{_bindir}/gdal_translate
%{_bindir}/gdaladdo
%{_bindir}/gdalbuildvrt
%{_bindir}/gdalchksum.py
%{_bindir}/gdalcompare.py
%{_bindir}/gdaldem
%{_bindir}/gdalenhance
%{_bindir}/gdalident.py
%{_bindir}/gdalimport.py
%{_bindir}/gdalinfo
%{_bindir}/gdallocationinfo
%{_bindir}/gdalmanage
%{_bindir}/gdalmove.py
%{_bindir}/gdalserver
%{_bindir}/gdalsrsinfo
%{_bindir}/gdaltindex
%{_bindir}/gdaltransform
%{_bindir}/gdalwarp
%{_bindir}/gdalserver
%{_bindir}/mkgraticule.py
%{_bindir}/nearblack
%{_bindir}/ogr2ogr
%{_bindir}/ogrinfo
%{_bindir}/ogrtindex
%{_bindir}/testepsg
%{_bindir}/ogrlineref
%{_bindir}/ogrtindex
%{_bindir}/pct2rgb.py
%{_bindir}/rgb2pct.py
%{_bindir}/testepsg
%defattr(644,root,root,755)
%{_datadir}/gdal
%{_mandir}/man1/gdalmanage.1*
%{_mandir}/man1/gdal_edit.1*
%{_mandir}/man1/gdal_polygonize.1*
%{_mandir}/man1/gdal_proximity.1*
%{_mandir}/man1/gdalbuildvrt.1*
%{_mandir}/man1/gdalmove.1*
%{_mandir}/man1/gdal2tiles.1*
%{_mandir}/man1/gdal_calc.1*
%{_mandir}/man1/gdal_contour.1*
%{_mandir}/man1/gdal_edit.1*
%{_mandir}/man1/gdal_fillnodata.1*
%{_mandir}/man1/gdal_grid.1*
%{_mandir}/man1/gdal_merge.1*
%{_mandir}/man1/gdal_pansharpen.1*
%{_mandir}/man1/gdal_polygonize.1*
%{_mandir}/man1/gdal_proximity.1*
%{_mandir}/man1/gdal_rasterize.1*
%{_mandir}/man1/gdal_retile.1*
%{_mandir}/man1/gdal_sieve.1*
%{_mandir}/man1/gdal_translate.1*
%{_mandir}/man1/gdal_utilities.1*
%{_mandir}/man1/gdallocationinfo.1*
%{_mandir}/man1/gdaladdo.1*
%{_mandir}/man1/gdalbuildvrt.1*
%{_mandir}/man1/gdalcompare.1*
%{_mandir}/man1/gdaldem.1*
%{_mandir}/man1/gdalinfo.1*
%{_mandir}/man1/gdallocationinfo.1*
%{_mandir}/man1/gdalmanage.1*
%{_mandir}/man1/gdalmove.1*
%{_mandir}/man1/gdalsrsinfo.1*
%{_mandir}/man1/gdaltindex.1*
%{_mandir}/man1/gdaltransform.1*
%{_mandir}/man1/gdalwarp.1*
%{_mandir}/man1/gnm_utilities.1*
%{_mandir}/man1/gnmanalyse.1*
%{_mandir}/man1/gnmmanage.1*
%{_mandir}/man1/nearblack.1*
%{_mandir}/man1/ogr2ogr.1*
%{_mandir}/man1/ogr_utilities.1*
%{_mandir}/man1/ogrinfo.1*
%{_mandir}/man1/ogrlineref.1*
%{_mandir}/man1/ogrtindex.1*
%{_mandir}/man1/pct2rgb.1*
%{_mandir}/man1/rgb2pct.1*
%{_mandir}/man1/gdal_calc.1*
%{_mandir}/man1/gdalcompare.1*
%{_mandir}/man1/ogrlineref.1*
%files devel
%defattr(-,root,root)
@ -370,7 +402,6 @@ sed -i 's,\(#define PACKAGE_.*\),/* \1 */,' %{buildroot}%{_includedir}/gdal/cpl_
%dir %{_includedir}/gdal
%{_includedir}/gdal/*.h
%{_mandir}/man1/gdal-config.1*
%{_mandir}/man1/gdalsrsinfo.1.gz
%files -n perl-%{name}
%defattr(-,root,root)
@ -390,6 +421,7 @@ sed -i 's,\(#define PACKAGE_.*\),/* \1 */,' %{buildroot}%{_includedir}/gdal/cpl_
%attr(755,root,root) %{perl_vendorarch}/auto/Geo/OGR/OGR.so
%dir %{perl_vendorarch}/auto/Geo/OSR
%attr(755,root,root) %{perl_vendorarch}/auto/Geo/OSR/OSR.so
%{_mandir}/man3/Geo::GDAL.3*
%files -n python-%{name}
%defattr(644,root,root,755)

13
ogr_wrap.patch Normal file
View File

@ -0,0 +1,13 @@
diff -rup gdal-2.1.0-orig/swig/include/ogr.i gdal-2.1.0/swig/include/ogr.i
--- gdal-2.1.0-orig/swig/include/ogr.i 2016-04-25 20:35:57.000000000 +0300
+++ gdal-2.1.0/swig/include/ogr.i 2016-05-10 17:37:30.288087450 +0300
@@ -2020,8 +2020,7 @@ public:
int GetGeomFieldIndex(int i) {
if (i < 0 || i >= OGR_FD_GetGeomFieldCount(self))
CPLError(CE_Failure, 1, FIELD_INDEX_ERROR_TMPL, i);
- else
- return i;
+ return i;
}
#endif