-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gpsd: 3.16 -> 3.21 #105835
gpsd: 3.16 -> 3.21 #105835
Conversation
Result of 2 packages marked as broken and skipped:
3 packages failed to build:
13 packages built:
|
direwolf, foxtrotgps, and qlandkartegt are not broken on master. direwoldbuilder for '/nix/store/1y58a9a8m4i8jzr9n2jsgd21kkj8lg2p-direwolf-1.5.drv' failed with exit code 2; last 10 log lines: 260 | if (gps_read (&gpsdata) == -1) { | ^~~~~~~~ In file included from dwgpsd.c:55: /nix/store/fcnx80lpa1hnjvcxwjwwxxfz59d2ivki-gpsd-3.21/include/gps.h:2440:12: note: declared here 2440 | extern int gps_read(struct gps_data_t *, char *message, int message_len); | ^~~~~~~~ dwgpsd.c:316:15: error: 'struct gps_data_t' has no member named 'status' 316 | if (gpsdata.status >= STATUS_FIX && gpsdata.fix.mode >= MODE_2D) { | ^ make: *** [: dwgpsd.o] Error 1 foxtrotgpsbuilder for '/nix/store/q80haq2vrc2sga6r8qwxqvwyw7w41c6d-foxtrotgps-1.2.2.drv' failed with exit code 2; last 10 log lines: 756 | gpsdata->fix.time = libgps_gpsdata.fix.time; | ^~~~~~~~~~~~~~ gps_functions.c:761:35: error: 'struct gps_data_t' has no member named 'status' 761 | gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX); | ^ make[2]: *** [Makefile:541: gps_functions.o] Error 1 make[2]: Leaving directory '/build/foxtrotgps-1.2.2/src' make[1]: *** [Makefile:506: all-recursive] Error 1 make[1]: Leaving directory '/build/foxtrotgps-1.2.2' make: *** [Makefile:417: all] Error 2 qlandkartegtbuilder for '/nix/store/d1a8l7yl6i5b59bkdn28l2zszhnb65gx-qlandkartegt-1.8.1.drv' failed with exit code 2; last 10 log lines: from /nix/store/kl8s4d6ybm8bjwxxz6j2d9zmrgv0zqq2-qtbase-5.14.2-dev/include/QtCore/qobject.h:49, from /nix/store/kl8s4d6ybm8bjwxxz6j2d9zmrgv0zqq2-qtbase-5.14.2-dev/include/QtWidgets/qwidget.h:45, from /nix/store/kl8s4d6ybm8bjwxxz6j2d9zmrgv0zqq2-qtbase-5.14.2-dev/include/QtWidgets/QWidget:1, from /build/qlandkartegt-1.8.1/src/CGeoDB.h:21, from /build/qlandkartegt-1.8.1/src/CGeoDB.cpp:19: /nix/store/kl8s4d6ybm8bjwxxz6j2d9zmrgv0zqq2-qtbase-5.14.2-dev/include/QtCore/qalgorithms.h:181:46: note: declared here 181 | QT_DEPRECATED_X("Use std::sort") inline void qSort(RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan) | ^~~~~ make[1]: *** [CMakeFiles/Makefile2:576: src/CMakeFiles/qlandkartegt.dir/all] Error 2 make: *** [Makefile:171: all] Error 2 |
Result of 2 packages marked as broken and skipped:
3 packages failed to build:
13 packages built:
|
Latest commit fixes direwolf by updating to v1.6 which supports the newer gpsd api. My system configuration doesn't really allow me to test direwolf properly, but it builds and has the same behavior as the existing version. |
Latest commit fixes foxtrotgps by moving from source tarball to a more up to date bzr revision that supports gpsd v3.20, and applies a small patch to support v3.21. That's the last of the broken packages, in all their cases the problem was API changes between gpsd 3.16 and 3.21. Direwolf just had to be updated to the newest release, qlandkartegt is abandoned upstream and needed patches, foxtrotgps hasnt added support for the newest api release. |
Result of 2 packages marked as broken and skipped:
16 packages built:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested direwolf on Linux, including gpsd functionality, with no issues. However, one thing your edit dropped was the ability of the desktop file to launch direwolf in the preferred terminal rather than xterm. I'd made that change because xterm was not installed by default on NixOS. The Terminal=true
option seems to work for launching console applications in the default terminal, at least under GNOME Shell. Here's a diff that will add it back in:
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index af4148c03ca..321b103c7f7 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -33,6 +33,9 @@ stdenv.mkDerivation rec {
--replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
substituteInPlace scripts/dwespeak.sh \
--replace espeak ${espeak}/bin/espeak
+ substituteInPlace cmake/cpack/direwolf.desktop.in \
+ --replace 'Terminal=false' 'Terminal=true' \
+ --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf' \
'';
meta = {
Result of 2 packages marked as broken and skipped:
16 packages built:
|
Motivation for this change
Update gpsd to v3.21, make X11 dependencies optional to better support headless systems, move from python2 deps to python3, and move from gtk2 to gtk3.
Closes #35604 and Closes #90794
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)