Hello community,

here is the log from the commit of package gpsd for openSUSE:Factory checked in 
at 2017-11-29 10:50:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpsd (Old)
 and      /work/SRC/openSUSE:Factory/.gpsd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpsd"

Wed Nov 29 10:50:50 2017 rev:45 rq:546210 version:3.17

Changes:
--------
--- /work/SRC/openSUSE:Factory/gpsd/gpsd.changes        2017-11-19 
11:10:26.173476565 +0100
+++ /work/SRC/openSUSE:Factory/.gpsd.new/gpsd.changes   2017-11-29 
10:50:55.580423832 +0100
@@ -1,0 +2,32 @@
+Tue Nov 28 10:40:51 UTC 2017 - mimi...@gmail.com
+
+- removed  gpsd-fix-shebang.patch
+- reworked gpsd-python3.patch
+- build python3 subpackage
+
+-------------------------------------------------------------------
+Thu Nov 23 13:50:05 UTC 2017 - rbr...@suse.com
+
+- Replace references to /var/adm/fillup-templates with new 
+  %_fillupdir macro (boo#1069468)
+
+-------------------------------------------------------------------
+Mon Nov 20 13:48:01 UTC 2017 - mplus...@suse.com
+
+- Update to version 3.17:
+  * Repair support for non-NMEA devices requring active probing
+    (e.g. Garmin USB GPSes).
+  * Fix a SiRF driver bug that occasionally confused NTP.
+  * Support for Spectratime iSync GRClok and LNRClok oscillators.
+  * gpxlogger can reconnect when the GPS loses the fix.
+  * xgps and xgpsspeed moved to python-gi,
+    getting shut of the deprecated pygtk2 bindings.
+  * Default mode for xgpsspeed is now the more interesting nautical
+    display.
+  * gpsmon includes the hostname with the device display.
+  * gpsprof now has centimeter precision.
+- Add gpsd-python3.patch to fix building with python3
+- Fix shebangs of python script (currently still python2)
+- Refresh gpsd-fix-shebang.patch
+
+-------------------------------------------------------------------

Old:
----
  gpsd-3.16.tar.gz
  gpsd-3.16.tar.gz.sig
  gpsd-fix-shebang.patch

New:
----
  gpsd-3.17.tar.gz
  gpsd-3.17.tar.gz.sig
  gpsd-python3.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpsd.spec ++++++
--- /var/tmp/diff_new_pack.8SlaeN/_old  2017-11-29 10:50:57.004372173 +0100
+++ /var/tmp/diff_new_pack.8SlaeN/_new  2017-11-29 10:50:57.012371882 +0100
@@ -16,11 +16,16 @@
 #
 
 
-%define                libgps libgps22
-%define                libQgps libQgpsmm22
+%define         sover 23
+%define                    libgps libgps%{sover}
+%define                    libQgps libQgpsmm%{sover}
 %define         _udevdir %(pkg-config --variable udevdir udev)
+#Compat macro for new _fillupdir macro introduced in Nov 2017
+%if ! %{defined _fillupdir}
+  %define _fillupdir %{_localstatedir}/adm/fillup-templates
+%endif
 Name:           gpsd
-Version:        3.16
+Version:        3.17
 Release:        0
 Summary:        Service daemon for mediating access to a GPS
 License:        BSD-3-Clause
@@ -32,7 +37,7 @@
 Source3:        sysconfig.gpsd
 Source98:       
http://download-mirror.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz.sig
 Source99:       %{name}.keyring
-Patch0:         gpsd-fix-shebang.patch
+Source100:      gpsd-python3.patch
 BuildRequires:  chrpath
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
@@ -40,7 +45,7 @@
 BuildRequires:  libcap-devel
 BuildRequires:  ncurses-devel
 BuildRequires:  pkgconfig
-BuildRequires:  scons >= 2.0.1
+BuildRequires:  scons >= 2.3.0
 BuildRequires:  systemd-rpm-macros
 BuildRequires:  update-desktop-files
 BuildRequires:  xmlto
@@ -50,6 +55,7 @@
 BuildRequires:  pkgconfig(dbus-1)
 BuildRequires:  pkgconfig(libusb-1.0)
 BuildRequires:  pkgconfig(python2)
+BuildRequires:  pkgconfig(python3)
 BuildRequires:  pkgconfig(udev)
 Requires:       udev
 Requires(pre):  %fillup_prereq
@@ -111,14 +117,23 @@
 %package -n python2-gpsd
 Summary:        Client libraries in C and Python for talking to a running gpsd 
or GPS
 Group:          Development/Libraries/Python
+Requires:       %{name} = %{version}
 Provides:       python-gpsd = %{version}-%{release}
 Obsoletes:      python-gpsd < %{version}-%{release}
-Requires:       %{name} = %{version}
 
 %description -n python2-gpsd
 This package provides python modules and tools for the gpsd shared libraries.
 You will need to have gpsd installed for it to work.
 
+%package -n python3-gpsd
+Summary:        Client libraries in C and Python3 for talking to a running 
gpsd or GPS
+Group:          Development/Libraries/Python
+Requires:       %{name} = %{version}
+
+%description -n python3-gpsd
+This package provides python3 modules and tools for the gpsd shared libraries.
+You will need to have gpsd installed for it to work.
+
 %package clients
 Summary:        Clients for gpsd with an X interface
 Group:          Hardware/Other
@@ -139,34 +154,91 @@
 can run on a serial terminal or terminal emulator.
 
 %prep
-%setup -q
-%patch0 -p1
+mkdir -p %{name}-%{version}/python2
+mkdir -p %{name}-%{version}/python3
+tar -xf %{SOURCE0} -C %{name}-%{version}/python2
+tar -xf %{SOURCE0} -C %{name}-%{version}/python3
+pushd %{name}-%{version}/python2/%{name}-%{version}
+patch -p1 < %{SOURCE100}
+popd
+pushd %{name}-%{version}/python3/%{name}-%{version}
+patch -p1 < %{SOURCE100}
+popd
+cd %{name}-%{version}
+
+# fix systemd path
+ sed -i 's|systemd_dir =.*|systemd_dir = '\'%{_unitdir}\''|' 
python*/%{name}-%{version}/SConstruct
+
+# don't try reloading systemd when installing in the build root
+sed -i 's|systemctl daemon-reload|true|' python*/%{name}-%{version}/SConstruct
 
 # don't set RPATH
-sed -i 's|env.Prepend.*RPATH.*|pass #\0|' SConstruct
+sed -i 's|env.Prepend.*RPATH.*|pass #\0|' python*/%{name}-%{version}/SConstruct
 
 %build
 # The SCons description does not handle CXXFLAGS correctly, pass C++ flags 
also in CFLAGS
 export CFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
 export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
-scons prefix=%{_prefix} libdir=%{_libdir} nostrip=True %{?_smp_mflags}
+
+pyversions=( python2 python3 )
+pylibdir=( %{python2_sitearch} %{python3_sitearch} )
+
+for i in 0 1
+do
+    pushd %{name}-%{version}/${pyversions[i]}/%{name}-%{version}
+
+    # breaks with %{?_smp_mflags}
+    scons \
+        dbus_export=yes \
+        systemd=yes \
+        libQgpsmm=yes \
+        debug=yes \
+        leapfetch=no \
+        prefix="" \
+        sysconfdif=%{_sysconfdir} \
+        bindir=%{_bindir} \
+        includedir=%{_includedir} \
+        libdir=%{_libdir} \
+        sbindir=%{_sbindir} \
+        mandir=%{_mandir} \
+        docdir=%{_docdir} \
+        pkgconfigdir=%{_libdir}/pkgconfig \
+        udevdir=$(dirname %{_udevrulesdir}) \
+        target_python=${pyversions[i]} \
+        python_libdir=${pylibdir[i]} \
+        build
+
+    # Fix python interpreter path.
+    sed -e "s,#!/usr/bin/\(python[23]\?\|env 
\+python[23]\?\),#!%{_bindir}/${pyversions[i]},g" -i \
+        gegps gpscat gpsfake xgps xgpsspeed gpsprof gps/*.py
+
+    popd
+done
 
 %install
 # The SCons description does not handle CXXFLAGS correctly, pass C++ flags 
also in CFLAGS
 export CFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
 export CXXFLAGS="%{optflags} -fvisibility-inlines-hidden -std=gnu++98"
-DESTDIR=%{buildroot} scons prefix=%{_prefix} libdir=%{_libdir} strip=False 
install
+# Install python2 first
+pushd %{name}-%{version}/python2/%{name}-%{version}
+
+DESTDIR=%{buildroot} scons strip=False install
+
+# Now delete all the installed files except the python2 files
+find %{buildroot} \( -not -type d -a -not -path "*/python2.*/*" \) -delete
+
+popd
+pushd %{name}-%{version}/python3/%{name}-%{version}
+
+DESTDIR=%{buildroot} scons strip=False install
+
 install -d -m 755 %{buildroot}%{_udevdir}
 install -d -m 755 %{buildroot}%{_udevdir}/rules.d
-install -d -m 755 %{buildroot}%{_localstatedir}/adm/fillup-templates
+install -d -m 755 %{buildroot}%{_fillupdir}
 install -d -m 755 %{buildroot}%{_datadir}/applications
 install -m 644 %{SOURCE1} %{buildroot}%{_udevdir}/rules.d/51-gpsd.rules
 install -m 755 %{SOURCE2} %{buildroot}%{_udevdir}/gpsd.sh
-install -m 644 %{SOURCE3} %{buildroot}%{_localstatedir}/adm/fillup-templates
-if [ -f %{buildroot}%{python_sitearch}/*.egg-info ] ; then
-  rm -f %{buildroot}%{python_sitearch}/*.egg-info
-fi
-chmod 755 %{buildroot}%{python_sitearch}/gps/gps.py
+install -m 644 %{SOURCE3} %{buildroot}%{_fillupdir}
 # install desktop entries
 install -D -m 644 -t %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/ 
packaging/X11/gpsd-logo.png
 install -D -m 644 -t %{buildroot}%{_datadir}/applications/ 
packaging/X11/xgps.desktop
@@ -176,28 +248,31 @@
 install -D -m 644 systemd/gpsdctl@.service 
%{buildroot}/%{_unitdir}/gpsdctl@.service
 ln -s          %{_sbindir}/service %{buildroot}%{_sbindir}/rcgpsd
 
+# Use correct python2 paths
+sed -i "s|env python|python2|g" %{buildroot}%{_bindir}/*
+
+%fdupes -s %{buildroot}%{_mandir}
+
 # strip absolute path and suffix
 sed -i -e 's#Icon=.*/\([^/]\+\)\(\..\+\)#Icon=\1#' 
%{buildroot}%{_datadir}/applications/xgps{,speed}.desktop
 %suse_update_desktop_file -r xgpsspeed System Monitor
 %suse_update_desktop_file -r xgps System Monitor
-# save some space, create symlinks
-%fdupes -s %{buildroot}
 
 %pre
-%service_add_pre gpsd.service gpsdctl@.service
+%service_add_pre gpsd.service gpsdctl@.service gpsd.socket
 
 %post
 /sbin/ldconfig
 %fillup_only -n gpsd
-%service_add_post gpsd.service gpsdctl@.service
+%service_add_post gpsd.service gpsdctl@.service gpsd.socket
 %udev_rules_update
 
 %preun
-%service_del_preun gpsd.service gpsdctl@.service
+%service_del_preun gpsd.service gpsdctl@.service gpsd.socket
 
 %postun
 /sbin/ldconfig
-%service_del_postun gpsd.service gpsdctl@.service
+%service_del_postun gpsd.service gpsdctl@.service gpsd.socket
 
 %post -n %{libgps} -p /sbin/ldconfig
 %postun -n %{libgps} -p /sbin/ldconfig
@@ -205,8 +280,7 @@
 %postun -n %{libQgps} -p /sbin/ldconfig
 
 %files
-%defattr(-,root,root)
-%doc README COPYING gpsd.php
+%doc %{name}-%{version}/python3/%{name}-%{version}/README 
%{name}-%{version}/python3/%{name}-%{version}/COPYING
 %{_mandir}/man?/gpsd.*
 %{_mandir}/man?/gpsdctl.*
 %{_mandir}/man?/gpsctl.*
@@ -220,24 +294,22 @@
 %{_sbindir}/gpsd
 %{_sbindir}/gpsdctl
 %{_bindir}/gpsctl
-%{_localstatedir}/adm/fillup-templates/sysconfig.gpsd
+%{_fillupdir}/sysconfig.gpsd
 
 %files -n %{libgps}
-%defattr(-,root,root)
 %{_libdir}/libgps.so.*
 
 %files -n %{libQgps}
-%defattr(-,root,root)
 %{_libdir}/libQgpsmm.so.*
 
 %files devel
-%defattr(-,root,root)
-%doc README COPYING TODO
+%doc %{name}-%{version}/python3/%{name}-%{version}/TODO
 %{_mandir}/man?/gpsfake.*
 %{_mandir}/man?/gpscat.*
-%{_mandir}/man?/libQgps*.*
-%{_mandir}/man?/libgps*.*
-%{_mandir}/man?/srec.*
+%{_mandir}/man?/libQgps*
+%{_mandir}/man?/libgps.*
+%{_mandir}/man?/libgpsmm.*
+%{_mandir}/man?/srec*
 %{_mandir}/man?/gpsdecode.*
 %{_mandir}/man?/gpsd_json.*
 %{_mandir}/man?/gpsprof.*
@@ -254,11 +326,14 @@
 %{_libdir}/pkgconfig/Qgpsmm.pc
 
 %files -n python2-gpsd
-%defattr(-,root,root)
 %{python_sitearch}/gps/
+%{python_sitearch}/gps-%{version}.*
+
+%files -n python3-gpsd
+%{python3_sitearch}/gps/
+%{python3_sitearch}/gps-%{version}.*
 
 %files clients
-%defattr(-,root,root)
 %{_mandir}/man?/gps.*
 %{_mandir}/man?/gegps.*
 %{_mandir}/man?/cgps.*
@@ -269,6 +344,8 @@
 %{_mandir}/man?/gpsmon.*
 %{_mandir}/man?/gps2udp.*
 %{_mandir}/man?/ntpshmmon.*
+%{_mandir}/man?/ppscheck.*
+%{_mandir}/man?/gpxlogger.*
 %{_bindir}/gegps
 %{_bindir}/xgps
 %{_bindir}/xgpsspeed
@@ -279,6 +356,7 @@
 %{_bindir}/gps2udp
 %{_bindir}/gpxlogger
 %{_bindir}/ntpshmmon
+%{_bindir}/ppscheck
 %{_datadir}/applications/*.desktop
 %{_datadir}/icons/hicolor/*/apps/*
 

++++++ gpsd-3.16.tar.gz -> gpsd-3.17.tar.gz ++++++
/work/SRC/openSUSE:Factory/gpsd/gpsd-3.16.tar.gz 
/work/SRC/openSUSE:Factory/.gpsd.new/gpsd-3.17.tar.gz differ: char 5, line 1

++++++ gpsd-python3.patch ++++++
Index: gpsd-3.17/SConstruct
===================================================================
--- gpsd-3.17.orig/SConstruct
+++ gpsd-3.17/SConstruct
@@ -23,6 +23,14 @@
 # * Out-of-directory builds: see http://www.scons.org/wiki/UsingBuildDir
 # * Coveraging mode: gcc "-coverage" flag requires a hack
 #   for building the python bindings
+# * Python 3 compatibility in this recipe
+
+# Since SCons 3.0.0 forces print_function on us, it needs to be unconditional.
+# This is recognized to be a bug in SCons, but we need to live with it for now,
+# and we'll need this for eventual Python 3 compatibility, anyway.
+# Python requires this to precede any non-comment code.
+from __future__ import print_function
+from functools import reduce
 
 # Release identification begins here
 gpsd_version = "3.17"
@@ -354,7 +362,7 @@ for flag in ["LDFLAGS", "SHLINKFLAGS", "
 
 
 # Keep scan-build options in the environment
-for key, value in os.environ.iteritems():
+for key, value in os.environ.items():
     if key.startswith('CCC_'):
         env.Append(ENV={key: value})
 
@@ -375,7 +383,7 @@ if env.GetOption("silent"):
 
 def announce(msg):
     if not env.GetOption("silent"):
-        print msg
+        print(msg)
 
 # DESTDIR environment variable means user prefix the installation root.
 DESTDIR = os.environ.get('DESTDIR', '')
@@ -460,6 +468,8 @@ if env['sysroot']:
     env.MergeFlags({"LINKFLAGS": ["--sysroot=%s" % env['sysroot']]})
 
 # Build help
+def cmp(a, b):
+    return (a > b) - (a < b)
 
 Help("""Arguments may be a mixture of switches and targets in any order.
 Switches apply to the entire build regardless of where they are in the order.
@@ -843,9 +853,9 @@ else:
         "dbus_export": ["libdbus-1"],
     }
 
-    keys = map(lambda x: (x[0], x[2]), boolopts)  \
-        + map(lambda x: (x[0], x[2]), nonboolopts) \
-        + map(lambda x: (x[0], x[2]), pathopts)
+    keys = list(map(lambda x: (x[0], x[2]), boolopts))  \
+        + list(map(lambda x: (x[0], x[2]), nonboolopts)) \
+        + list(map(lambda x: (x[0], x[2]), pathopts))
     keys.sort()
     for (key, help) in keys:
         value = env[key]
@@ -946,7 +956,7 @@ if helping:
 
     # If helping just get usable config info from the local Python
     target_python_path = ''
-    py_config_text = str(eval(PYTHON_CONFIG_CALL))
+    Py_config_text = str(eval(PYTHON_CONFIG_CALL))
     python_libdir = str(eval(PYTHON_LIBDIR_CALL))
 
 else:
@@ -982,7 +992,7 @@ else:
 if env['python']:  # May have been turned off by error
     env['PYTHON'] = target_python_path
     env['ENV']['PYTHON'] = target_python_path  # For regress-driver
-    py_config_vars = ast.literal_eval(py_config_text)
+    py_config_vars = ast.literal_eval(py_config_text.decode())
     py_config_vars = [[] if x is None else x for x in py_config_vars]
     python_config = dict(zip(PYTHON_CONFIG_NAMES, py_config_vars))
 
@@ -1371,7 +1381,7 @@ else:
 
     python_objects = {}
     python_compiled_libs = {}
-    for ext, sources in python_extensions.iteritems():
+    for ext, sources in python_extensions.items():
         python_objects[ext] = []
         for src in sources:
             python_objects[ext].append(
@@ -1401,7 +1411,7 @@ Platform: UNKNOWN
     python_egg_info = python_env.Textfile(target="gps-%s.egg-info"
                                           % (gpsd_version, ),
                                           source=python_egg_info_source)
-    python_built_extensions = python_compiled_libs.values()
+    python_built_extensions = list(python_compiled_libs.values())
     python_targets = python_built_extensions + [python_egg_info]
 
 env.Command(target="packet_names.h", source="packet_states.h", action="""
@@ -1546,8 +1556,8 @@ def substituter(target, source, env):
         content = content.replace(s, t)
     m = re.search("@[A-Z]+@", content)
     if m and m.group(0) not in map(lambda x: x[0], substmap):
-        print >>sys.stderr, "Unknown subst token %s in %s." \
-            % (m.group(0), sfp.name)
+        print("Unknown subst token %s in %s." % (m.group(0), sfp.name),
+              file=sys.stderr)
     tfp = open(str(target[0]), "w")
     tfp.write(content)
     tfp.close()
@@ -1604,14 +1614,14 @@ if env['xgps']:
         "xgpsspeed.1": "gps.xml",
         "xgps.1": "gps.xml",
     })
-all_manpages = base_manpages.keys() + python_manpages.keys()
+all_manpages = list(base_manpages.keys()) + list(python_manpages.keys())
 
 man_env = env.Clone()
 if man_env.GetOption('silent'):
     man_env['SPAWN'] = filtered_spawn  # Suppress stderr chatter
 manpage_targets = []
 if manbuilder:
-    for (man, xml) in base_manpages.items() + python_manpages.items():
+    for (man, xml) in list(base_manpages.items()) + 
list(python_manpages.items()):
         manpage_targets.append(man_env.Man(source=xml, target=man))
 
 # Where it all comes together
@@ -1692,7 +1702,7 @@ if qt_env:
 
 
 maninstall = []
-for manpage in base_manpages.keys() + python_manpages.keys():
+for manpage in list(base_manpages.keys()) + list(python_manpages.keys()):
     if not manbuilder and not os.path.exists(manpage):
         continue
     section = manpage.split(".")[1]
@@ -2177,7 +2187,7 @@ htmlpages = Split('''
     www/writing-a-driver.html
     ''')
 
-webpages = htmlpages + asciidocs + map(lambda f: f[:-3], glob.glob("www/*.in"))
+webpages = htmlpages + asciidocs + list(map(lambda f: f[:-3], 
glob.glob("www/*.in")))
 
 www = env.Alias('www', webpages)
 
@@ -2190,7 +2200,7 @@ def validation_list(target, source, env)
         if '-head' not in page:
             fp = open(page)
             if "Valid HTML" in fp.read():
-                print os.path.join(website, os.path.basename(page))
+                print(os.path.join(website, os.path.basename(page)))
             fp.close()
 Utility("validation-list", [www], validation_list)
 


Reply via email to