diff --git a/.gitignore b/.gitignore index 1311ac3..477f7c6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,32 @@ -/vfrnav-*.tar.* +vfrnav-0.3.tar.gz +vfrnav-0.4.tar.gz +/vfrnav-0.5.tar.gz +/vfrnav-0.6.tar.gz +/vfrnav-0.7.tar.gz +/vfrnav-0.8.tar.gz +/vfrnav-0.9.tar.gz +/vfrnav-20120801.tar.gz +/vfrnav-20120810.tar.gz +/vfrnav-20120815.tar.gz +/vfrnav-20120831.tar.gz +/vfrnav-20121111.tar.gz +/vfrnav-20121212.tar.gz +/vfrnav-20130110.tar.gz +/vfrnav-20130113.tar.gz +/vfrnav-20130123.tar.gz +/vfrnav-20130303.tar.gz +/vfrnav-20130429.tar.gz +/vfrnav-20130510.tar.gz +/vfrnav-20130627.tar.gz +/vfrnav-20130723.tar.gz +/vfrnav-20130801.tar.gz +/vfrnav-20130829.tar.gz +/vfrnav-20130920.tar.gz +/vfrnav-20131127.tar.gz +/vfrnav-20140321.tar.gz +/vfrnav-20140510.tar.gz +/vfrnav-20141211.tar.gz +/vfrnav-20150429.tar.gz +/vfrnav-20160212.tar.gz +/vfrnav-20160429.tar.gz +/vfrnav-20180129.tar.gz diff --git a/sources b/sources index 2b46145..a37dd05 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vfrnav-20230429.tar.bz2) = 2014383e46ad03b4afd9c8153888ad36e43ec2827219e4e037f052bb0fabbefcf0de3d340e5298f42058341c5f8480239e9b0a33cf606a2349c13292c3b97a4d +SHA512 (vfrnav-20180129.tar.gz) = ee960f71f86fb44008a8b79134ef5a435896c0a3c07f0ada32156fde23442485d67a5746cf0d197c2ac64e2f2f9d930e534acfb1bef7ce1a39e1b986501d4f7d diff --git a/vfrnav-compile.patch b/vfrnav-compile.patch deleted file mode 100644 index 114fcfa..0000000 --- a/vfrnav-compile.patch +++ /dev/null @@ -1,127 +0,0 @@ ---- vfrnav-20230429/src/metartaf.cc.orig 2025-01-07 13:51:24.837306522 +0100 -+++ vfrnav-20230429/src/metartaf.cc 2025-01-07 13:53:02.445841777 +0100 -@@ -497,7 +497,7 @@ - "from metar where " + get_querycoord(bbox, tran) + ") T1 where T1.observation_time in " - "(select T2.observation_time from metar T2 where T2.station_id = T1.station_id " - "order by T2.observation_time desc limit " + -- tran.quote(metarhistory) + ")", "Metar Taf Set METAR")); -+ tran.quote(metarhistory) + ")", std::string_view{"Metar Taf Set METAR"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - std::pair ins(result.insert(Station(ri[0].as(), - Point(ri[2].as(), ri[1].as()), -@@ -513,7 +513,7 @@ - "from taf where " + get_querycoord(bbox, tran) + ") T1 where T1.issue_time in " - "(select T2.issue_time from taf T2 where T2.station_id = T1.station_id " - "order by T2.issue_time desc limit " + -- tran.quote(tafhistory) + ")", "Metar Taf Set TAF")); -+ tran.quote(tafhistory) + ")", std::string_view{"Metar Taf Set TAF"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - std::pair ins(result.insert(Station(ri[0].as(), - Point(ri[2].as(), ri[1].as()), -@@ -556,7 +556,7 @@ - q += "valid_from <= " + tran.quote(tmax) + " and valid_to >= " + tran.quote(tmin); - if (!false) - std::cerr << "pg: sigmet query " << q << std::endl; -- pqxx::result r(tran.exec(q, "Briefing Pack SIGMET")); -+ pqxx::result r(tran.exec(q, std::string_view{"Briefing Pack SIGMET"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - if (!false) - std::cerr << "pg: sigmet for " << ri[0].as() << " seq " << ri[8].as() ---- vfrnav-20230429/carto/osm.cc.orig 2025-01-07 13:55:20.693183894 +0100 -+++ vfrnav-20230429/carto/osm.cc 2025-01-07 13:56:31.305848028 +0100 -@@ -1783,7 +1783,7 @@ - "ST_AsBinary(ST_Transform(way,4326)) from planet_osm_point where way && " + get_queryrect(tran)); - if (false) - std::cerr << "OSM query: " << qstr << std::endl; -- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM")); -+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - Tags tags; - tags.add_pg(to_str(ri[69])); -@@ -1894,7 +1894,7 @@ - "ST_AsBinary(ST_Transform(way,4326)) from planet_osm_line where way && " + get_queryrect(tran)); - if (false) - std::cerr << "OSM query: " << qstr << std::endl; -- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM")); -+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - Tags tags; - tags.add_pg(to_str(ri[68])); -@@ -2005,7 +2005,7 @@ - "ST_AsBinary(ST_Transform(way,4326)) from planet_osm_roads where way && " + get_queryrect(tran)); - if (false) - std::cerr << "OSM query: " << qstr << std::endl; -- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM")); -+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - Tags tags; - tags.add_pg(to_str(ri[68])); -@@ -2116,7 +2116,7 @@ - "ST_AsBinary(ST_Transform(way,4326)) from planet_osm_polygon where way && " + get_queryrect(tran)); - if (false) - std::cerr << "OSM query: " << qstr << std::endl; -- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM")); -+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"})); - for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) { - Tags tags; - tags.add_pg(to_str(ri[68])); ---- vfrnav-20230429/cfmu/adr.cc.orig 2026-01-30 12:46:50.497664549 +0100 -+++ vfrnav-20230429/cfmu/adr.cc 2026-01-30 12:47:31.905992663 +0100 -@@ -77,13 +77,13 @@ - return u; - } catch (const std::runtime_error& e) { - } -- static const boost::uuids::uuid nsuuid = { -+ static const boost::uuids::uuid nsuuid = {{ - 0x5b, 0x20, 0xbd, 0x56, - 0x73, 0x8d, - 0x47, 0xcb, - 0xb1, 0xea, - 0x30, 0x0f, 0x31, 0x7e, 0x8b, 0x32 -- }; -+ }}; - return from_str(nsuuid, x.substr(pfx)); - } - -@@ -95,13 +95,13 @@ - - UUID UUID::from_countryborder(const std::string& x) - { -- static const boost::uuids::uuid nsuuid = { -+ static const boost::uuids::uuid nsuuid = {{ - 0x00, 0xff, 0xf6, 0xf3, - 0xff, 0xf5, - 0x43, 0x74, - 0x96, 0x3b, - 0x0b, 0x8f, 0x11, 0x34, 0x22, 0xb9 -- }; -+ }}; - return from_str(nsuuid, x); - } - ---- vfrnav-20230429/cfmu/adrgraph.cc.orig 2026-01-30 12:46:57.341079989 +0100 -+++ vfrnav-20230429/cfmu/adrgraph.cc 2026-01-30 12:47:44.106975328 +0100 -@@ -154,10 +154,10 @@ - - const float GraphEdge::maxmetric = std::numeric_limits::max(); - const float GraphEdge::invalidmetric = std::numeric_limits::quiet_NaN(); --const boost::uuids::uuid GraphEdge::matchalluuid = { -+const boost::uuids::uuid GraphEdge::matchalluuid = {{ - 0xb7, 0xc9, 0xbe, 0x9a, 0x2e, 0xcb, 0x49, 0x03, - 0xb2, 0xd5, 0x58, 0xf9, 0xac, 0xbe, 0x36, 0x75 --}; -+}}; - const UUID GraphEdge::matchall(matchalluuid); - - GraphEdge::GraphEdge(timetype_t tm, const Object::const_ptr_t& obj, unsigned int levels) ---- vfrnav-20230429/doc/flightdeck.tex.orig 2026-01-30 13:22:27.770429063 +0100 -+++ vfrnav-20230429/doc/flightdeck.tex 2026-01-30 13:22:41.561489169 +0100 -@@ -26,7 +26,7 @@ - \else - \documentclass[a4paper,10pt,dvips]{article} - \fi --\usepackage[german,english]{babel} -+\usepackage[english]{babel} - \selectlanguage{english} - \usepackage{graphicx} - \usepackage[isolatin]{inputenc} diff --git a/vfrnav-octave-colors.patch b/vfrnav-octave-colors.patch deleted file mode 100644 index 296b41b..0000000 --- a/vfrnav-octave-colors.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 8b4a8056b9e2e7abcecef80dd29f58d5ff4d5f87 Mon Sep 17 00:00:00 2001 -From: Thomas Sailer -Date: Tue, 7 Jan 2025 12:21:15 +0100 -Subject: remove octave numeric colors as they are no longer supported in - octave 9 - - -diff --git a/doc/hamproptbl.m b/doc/hamproptbl.m -index 9fbb5e52..4a930668 100644 ---- a/doc/hamproptbl.m -+++ b/doc/hamproptbl.m -@@ -49,14 +49,14 @@ endfor; - fprintf(ftbl, "\n};\n"); - - f=figure("visible","on"); --plot(afval,afcpc(1,:),"1+;CP 1;",... -- afval,afcpc(2,:),"2+;CP 2;",... -- afval,afctc(1,:),"3+;CT 1;",... -- afval,afctc(2,:),"4+;CT 2;",... -- min(afval):max(afval),polyval(afcpp(1,:),min(afval):max(afval)),"1-;CP J=0;",... -- min(afval):max(afval),polyval(afcpp(2,:),min(afval):max(afval)),"2-;CP J>=0.5;",... -- min(afval):max(afval),polyval(afctp(1,:),min(afval):max(afval)),"3-;CT J=0;",... -- min(afval):max(afval),polyval(afctp(2,:),min(afval):max(afval)),"4-;CT J>=0.5;"); -+plot(afval,afcpc(1,:),"r+;CP 1;",... -+ afval,afcpc(2,:),"g+;CP 2;",... -+ afval,afctc(1,:),"b+;CT 1;",... -+ afval,afctc(2,:),"m+;CT 2;",... -+ min(afval):max(afval),polyval(afcpp(1,:),min(afval):max(afval)),"r-;CP J=0;",... -+ min(afval):max(afval),polyval(afcpp(2,:),min(afval):max(afval)),"g-;CP J>=0.5;",... -+ min(afval):max(afval),polyval(afctp(1,:),min(afval):max(afval)),"b-;CT J=0;",... -+ min(afval):max(afval),polyval(afctp(2,:),min(afval):max(afval)),"m-;CT J>=0.5;"); - grid on; - xlabel("AF -- Activity Factor"); - ylabel("CP/CT Factor"); -@@ -64,10 +64,10 @@ title("CP/CT versus AF"); - print(f, "propafcpct.eps","-depsc2","-portrait","-color"); - - f=figure("visible","on"); --plot(afval,afcpc(1,:)-polyval(afcpp(1,:),afval),"1+-;CP J=0 error;",... -- afval,afcpc(2,:)-polyval(afcpp(2,:),afval),"2+-;CP J>=0.5 error;",... -- afval,afctc(1,:)-polyval(afctp(1,:),afval),"3+-;CT J=0 error;",... -- afval,afctc(2,:)-polyval(afctp(2,:),afval),"4+-;CT J>=0.5 error;"); -+plot(afval,afcpc(1,:)-polyval(afcpp(1,:),afval),"r+-;CP J=0 error;",... -+ afval,afcpc(2,:)-polyval(afcpp(2,:),afval),"g+-;CP J>=0.5 error;",... -+ afval,afctc(1,:)-polyval(afctp(1,:),afval),"b+-;CT J=0 error;",... -+ afval,afctc(2,:)-polyval(afctp(2,:),afval),"m+-;CT J>=0.5 error;"); - grid on; - xlabel("AF -- Activity Factor"); - ylabel("CP/CT Factor Approximation Error"); -@@ -150,14 +150,14 @@ endfor; - fprintf(ftbl, "\n};\n\n"); - - f=figure("visible","on"); --plot(zjstal,cpstal(1,:),"1+;CPstall 2 Blade;",... -- zjstal,cpstal(2,:),"2+;CPstall 4 Blade;",... -- zjstal,cpstal(3,:),"3+;CPstall 6 Blade;",... -- zjstal,cpstal(4,:),"4+;CPstall 8 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(cpstalp(1,:),min(zjstal):0.1:max(zjstal)),"1-;CPstall 2 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(cpstalp(2,:),min(zjstal):0.1:max(zjstal)),"2-;CPstall 4 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(cpstalp(3,:),min(zjstal):0.1:max(zjstal)),"3-;CPstall 6 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(cpstalp(4,:),min(zjstal):0.1:max(zjstal)),"4-;CPstall 8 Blade;"); -+plot(zjstal,cpstal(1,:),"r+;CPstall 2 Blade;",... -+ zjstal,cpstal(2,:),"g+;CPstall 4 Blade;",... -+ zjstal,cpstal(3,:),"b+;CPstall 6 Blade;",... -+ zjstal,cpstal(4,:),"m+;CPstall 8 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(1,:),min(zjstal):0.1:max(zjstal)),"r-;CPstall 2 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(2,:),min(zjstal):0.1:max(zjstal)),"g-;CPstall 4 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(3,:),min(zjstal):0.1:max(zjstal)),"b-;CPstall 6 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(4,:),min(zjstal):0.1:max(zjstal)),"m-;CPstall 8 Blade;"); - grid on; - xlabel("ZJ"); - ylabel("CP Stall"); -@@ -165,10 +165,10 @@ title("CP Stall versus ZJ"); - print(f,"propcpstal.eps","-depsc2","-portrait","-color"); - - f=figure("visible","on"); --plot(zjstal,cpstal(1,:)-polyval(cpstalp(1,:),zjstal),"1+-;CPstall 2 Blade error;",... -- zjstal,cpstal(2,:)-polyval(cpstalp(2,:),zjstal),"2+-;CPstall 4 Blade error;",... -- zjstal,cpstal(3,:)-polyval(cpstalp(3,:),zjstal),"3+-;CPstall 6 Blade error;",... -- zjstal,cpstal(4,:)-polyval(cpstalp(4,:),zjstal),"4+-;CPstall 8 Blade error;"); -+plot(zjstal,cpstal(1,:)-polyval(cpstalp(1,:),zjstal),"r+-;CPstall 2 Blade error;",... -+ zjstal,cpstal(2,:)-polyval(cpstalp(2,:),zjstal),"g+-;CPstall 4 Blade error;",... -+ zjstal,cpstal(3,:)-polyval(cpstalp(3,:),zjstal),"b+-;CPstall 6 Blade error;",... -+ zjstal,cpstal(4,:)-polyval(cpstalp(4,:),zjstal),"m+-;CPstall 8 Blade error;"); - grid on; - xlabel("ZJ"); - ylabel("CP Stall Approximation Error"); -@@ -176,14 +176,14 @@ title("CP Stall versus ZJ Approximation Error"); - print(f,"propcpstalerr.eps","-depsc2","-portrait","-color"); - - f=figure("visible","on"); --plot(zjstal,ctstal(1,:),"1+;CTstall 2 Blade;",... -- zjstal,ctstal(2,:),"2+;CTstall 4 Blade;",... -- zjstal,ctstal(3,:),"3+;CTstall 6 Blade;",... -- zjstal,ctstal(4,:),"4+;CTstall 8 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(ctstalp(1,:),min(zjstal):0.1:max(zjstal)),"1-;CTstall 2 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(ctstalp(2,:),min(zjstal):0.1:max(zjstal)),"2-;CTstall 4 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(ctstalp(3,:),min(zjstal):0.1:max(zjstal)),"3-;CTstall 6 Blade;",... -- min(zjstal):0.1:max(zjstal),polyval(ctstalp(4,:),min(zjstal):0.1:max(zjstal)),"4-;CTstall 8 Blade;"); -+plot(zjstal,ctstal(1,:),"r+;CTstall 2 Blade;",... -+ zjstal,ctstal(2,:),"g+;CTstall 4 Blade;",... -+ zjstal,ctstal(3,:),"b+;CTstall 6 Blade;",... -+ zjstal,ctstal(4,:),"m+;CTstall 8 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(1,:),min(zjstal):0.1:max(zjstal)),"r-;CTstall 2 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(2,:),min(zjstal):0.1:max(zjstal)),"g-;CTstall 4 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(3,:),min(zjstal):0.1:max(zjstal)),"b-;CTstall 6 Blade;",... -+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(4,:),min(zjstal):0.1:max(zjstal)),"m-;CTstall 8 Blade;"); - grid on; - xlabel("ZJ"); - ylabel("CT Stall"); -@@ -191,10 +191,10 @@ title("CT Stall versus ZJ"); - print(f,"propctstal.eps","-depsc2","-portrait","-color"); - - f=figure("visible","on"); --plot(zjstal,ctstal(1,:)-polyval(ctstalp(1,:),zjstal),"1+-;CTstall 2 Blade error;",... -- zjstal,ctstal(2,:)-polyval(ctstalp(2,:),zjstal),"2+-;CTstall 4 Blade error;",... -- zjstal,ctstal(3,:)-polyval(ctstalp(3,:),zjstal),"3+-;CTstall 6 Blade error;",... -- zjstal,ctstal(4,:)-polyval(ctstalp(4,:),zjstal),"4+-;CTstall 8 Blade error;"); -+plot(zjstal,ctstal(1,:)-polyval(ctstalp(1,:),zjstal),"r+-;CTstall 2 Blade error;",... -+ zjstal,ctstal(2,:)-polyval(ctstalp(2,:),zjstal),"g+-;CTstall 4 Blade error;",... -+ zjstal,ctstal(3,:)-polyval(ctstalp(3,:),zjstal),"b+-;CTstall 6 Blade error;",... -+ zjstal,ctstal(4,:)-polyval(ctstalp(4,:),zjstal),"m+-;CTstall 8 Blade error;"); - grid on; - xlabel("ZJ"); - ylabel("CT Stall Approximation Error"); -diff --git a/doc/p28rperf.m b/doc/p28rperf.m -index c4b1e7f2..147da3e6 100644 ---- a/doc/p28rperf.m -+++ b/doc/p28rperf.m -@@ -113,12 +113,12 @@ io360altperf=[0 200 176 0 ; - alt=0:100:18000; - [p t rho]=icaoatmo(alt); - clf; --plot(io360altperf(io360altperf(:,2)>0,2),io360altperf(io360altperf(:,2)>0,1),"+1;RPM=2700;",... -- io360altperf(io360altperf(:,3)>0,3),io360altperf(io360altperf(:,3)>0,1),"+2;RPM=2400;",... -- io360altperf(io360altperf(:,4)>0,4),io360altperf(io360altperf(:,4)>0,1),"+3;RPM=2100;",... -- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),alt,"-1;RPM=2700;",... -- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,alt,"-2;RPM=2400;",... -- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,alt,"-3;RPM=2100;"); -+plot(io360altperf(io360altperf(:,2)>0,2),io360altperf(io360altperf(:,2)>0,1),"+r;RPM=2700;",... -+ io360altperf(io360altperf(:,3)>0,3),io360altperf(io360altperf(:,3)>0,1),"+g;RPM=2400;",... -+ io360altperf(io360altperf(:,4)>0,4),io360altperf(io360altperf(:,4)>0,1),"+b;RPM=2100;",... -+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),alt,"-r;RPM=2700;",... -+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,alt,"-g;RPM=2400;",... -+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,alt,"-b;RPM=2100;"); - title("IO-360-C Engine Full Throttle SHP versus Altitude"); - xlabel("Shaft Horse Power"); - ylabel("Altitude [ft]"); -@@ -137,12 +137,12 @@ for tt=1:3; - x=x/sum(x); - RPMC(tt)=(x(1)-1)/x(1); - endfor; --plot(rho1(io360altperf(:,2)>0)/rho1(1),io360altperf(io360altperf(:,2)>0,2),"+1;RPM=2700;",... -- rho1(io360altperf(:,3)>0)/rho1(1),io360altperf(io360altperf(:,3)>0,3),"+2;RPM=2400;",... -- rho1(io360altperf(:,4)>0)/rho1(1),io360altperf(io360altperf(:,4)>0,4),"+3;RPM=2100;",... -- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),"-1;RPM=2700;",... -- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,"-2;RPM=2400;",... -- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,"-3;RPM=2100;"); -+plot(rho1(io360altperf(:,2)>0)/rho1(1),io360altperf(io360altperf(:,2)>0,2),"+r;RPM=2700;",... -+ rho1(io360altperf(:,3)>0)/rho1(1),io360altperf(io360altperf(:,3)>0,3),"+g;RPM=2400;",... -+ rho1(io360altperf(:,4)>0)/rho1(1),io360altperf(io360altperf(:,4)>0,4),"+b;RPM=2100;",... -+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),"-r;RPM=2700;",... -+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,"-g;RPM=2400;",... -+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,"-b;RPM=2100;"); - title("IO-360-C Engine Full Throttle SHP versus Altitude"); - xlabel("Relative Density [relative]"); - ylabel("Shaft Horse Power"); -@@ -512,6 +512,7 @@ for plimidx=1:2; - ROD=zeros(length(vc),size(alt,2)); - rpm=zeros(length(vc),size(alt,2)); - dist=zeros(length(vc),size(alt,2)); -+ col=jet(length(vc)); - clf; - for vci=1:length(vc); - D=0.5*CD0*vc(vci)^2*mph_to_ftps^2*rho0*S+W^2./(0.5*vc(vci)^2*mph_to_ftps^2*rho0*S*pi*A*ee); -@@ -521,7 +522,7 @@ for plimidx=1:2; - ROD(vci,:)=vc(vci)*mph_to_kts*nmi_to_ft/60*sqrt(rho(1)./rho)/W.*(D-T); - #dist(vci,2:length(alt))=cumsum((alt(2:length(alt))-alt(1:length(alt)-1))./ROD(vci,1:length(alt)-1)/60*vc(vci).*sqrt(rho(1)./rho(1:length(alt)-1))); - dist(vci,2:length(alt))=cumsum((alt(2:length(alt))-alt(1:length(alt)-1))*W./(D-T)(1:length(alt)-1))/(mph_to_kts*nmi_to_ft); -- plot(ROD(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci))); -+ plot(ROD(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:)); - hold on; - endfor; - hold off; -@@ -535,7 +536,7 @@ for plimidx=1:2; - - clf; - for vci=1:length(vc); -- plot(dist(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci))); -+ plot(dist(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:)); - hold on; - endfor; - hold off; -@@ -549,7 +550,7 @@ for plimidx=1:2; - - clf; - for vci=1:length(vc); -- plot(rpm(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci))); -+ plot(rpm(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:)); - hold on; - endfor; - hold off; diff --git a/vfrnav.spec b/vfrnav.spec index 5e2dd7f..2f93f77 100644 --- a/vfrnav.spec +++ b/vfrnav.spec @@ -1,26 +1,15 @@ Name: vfrnav -Version: 20230429 -Release: 37%{?dist} +Version: 20180129 +Release: 1%{?dist} Summary: VFR/IFR Navigation -License: GPL-2.0-or-later -URL: https://gitlab.com/tsailer/vfrnav/ -Source: https://gitlab.com/tsailer/vfrnav/-/archive/%{version}/%{name}-%{version}.tar.bz2 -Patch: vfrnav-octave-colors.patch -Patch: vfrnav-compile.patch - -# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval -ExcludeArch: %{ix86} +Group: Applications/Productivity +License: GPLv2+ +URL: http://www.baycom.org/~tom/vfrnav +Source0: http://download.gna.org/vfrnav/%{name}-%{version}.tar.gz %bcond_without webservice -%bcond_with wetterdl -%bcond_with osmium -BuildRequires: make -BuildRequires: autoconf-archive -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool BuildRequires: gtkmm30-devel BuildRequires: libxml++-devel >= 2.14.0 BuildRequires: sqlite-devel >= 3.0 @@ -34,9 +23,7 @@ BuildRequires: cairomm-devel BuildRequires: cairo-devel BuildRequires: zfstream-devel BuildRequires: gettext -%ifarch %java_arches BuildRequires: antlr-C++ -%endif %ifnarch s390 s390x BuildRequires: pilot-link-devel %endif @@ -52,14 +39,15 @@ BuildRequires: libXScrnSaver-devel BuildRequires: evince-devel BuildRequires: libusb1-devel BuildRequires: libcurl-devel -BuildRequires: webkit2gtk4.1-devel +BuildRequires: webkitgtk4-devel BuildRequires: openjpeg2-devel BuildRequires: libsoup-devel BuildRequires: librsvg2-devel -BuildRequires: podofo0.9-devel +BuildRequires: podofo-devel BuildRequires: systemd-devel BuildRequires: transfig BuildRequires: texlive +BuildRequires: texlive-texconfig BuildRequires: texlive-latex BuildRequires: texlive-latex-bin-bin BuildRequires: texlive-epstopdf @@ -81,22 +69,12 @@ BuildRequires: dia BuildRequires: selinux-policy-devel BuildRequires: qrencode-devel BuildRequires: libarchive-devel -BuildRequires: yaml-cpp-devel -%if %{with osmium} -BuildRequires: libosmium-devel -%endif -BuildRequires: protozero-devel -BuildRequires: utf8cpp-devel -BuildRequires: expat-devel -BuildRequires: zlib-devel -BuildRequires: bzip2-devel -BuildRequires: lz4-devel Requires: libreoffice-core Requires: libreoffice-calc Requires: texlive Requires: texlive-latex Requires: texlive-latex-bin-bin -Requires: texlive-droid +Requires: texlive-droid Requires: texlive-contour Requires: texlive-truncate Requires: texlive-changebar @@ -105,7 +83,7 @@ Requires: texlive-xstring Requires: texlive-hyphenat Requires: tex(t2aenc.def) Requires: texlive-lh -Requires: texlive-xetex +Requires: texlive-xetex-def Requires: texlive-framed Requires: texlive-polyglossia Requires: texlive-multirow @@ -184,6 +162,7 @@ This is a navigation application for VFR and IFR flying. %package utils Summary: VFR Navigation Utilities +Group: Applications/Productivity Requires: %{name} = %{version} Requires: php Requires: php-mbstring @@ -193,18 +172,18 @@ Requires: /usr/bin/convert This package contains utilities for database creation and manipulation for the VFR navigation application. -%if %{with wetterdl} %package wetterdl Summary: VFR Navigation Weather Downloader +Group: Applications/Productivity Requires: %{name} = %{version} %description wetterdl This package contains a downloader application for weather pictures from flugwetter.de and other sources. -%endif %package validatorservice Summary: VFR Navigation CFMU Validator Service +Group: Applications/Productivity Requires: %{name} = %{version} Requires: %{name}-selinux = %{version} Requires: xorg-x11-server-Xvfb @@ -216,6 +195,7 @@ this package contains a local socket validator server. %package selinux Summary: VFR Navigation selinux module +Group: Applications/Productivity Requires: %{name} = %{version} BuildArch: noarch Requires: selinux-policy @@ -228,6 +208,7 @@ This package contains the selinux module required for vfrnav %if %{with webservice} %package webservice Summary: VFR Navigation CFMU Autorouter Webservice +Group: Applications/Productivity Requires: %{name} = %{version} Requires: %{name}-validatorservice = %{version} Requires: %{name}-selinux = %{version} @@ -238,26 +219,20 @@ This package contains a webservice for the CFMU Autorouter. %endif %prep -%autosetup -p1 -autoreconf -fiv - -# Create a sysusers.d config file -cat >vfrnav.sysusers.conf < $i.tmp @@ -291,10 +266,6 @@ rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/vfrnav/cfmuwsusers.json rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnav.so rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnav.la rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnav.a -rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnavcarto.a -rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnavcarto.la -rm -f $RPM_BUILD_ROOT/%{_libdir}/libvfrnavcarto.so - rm -f $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/web-extensions/libcfmuwebextension.a rm -f $RPM_BUILD_ROOT/%{_libexecdir}/%{name}/web-extensions/libcfmuwebextension.la @@ -315,16 +286,11 @@ rm -f $RPM_BUILD_ROOT/lib/systemd/system/cfmuautoroute.socket rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/cfmuautoroute %endif -%if %{with wetterdl} -%else -rm -f $RPM_BUILD_ROOT/%{_bindir}/wetterdl.py -rm -f $RPM_BUILD_ROOT/%{_datadir}/applications/wetterdl.desktop -rm -f $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/32x32/apps/wetterdl.png -rm -f $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/wetterdl.png -%endif - -install -m0644 -D vfrnav.sysusers.conf %{buildroot}%{_sysusersdir}/vfrnav.conf - +%pre validatorservice +getent group vfrnav &>/dev/null || groupadd -r vfrnav +getent passwd vfrnav &>/dev/null || \ +useradd -g vfrnav -d /var/lib/vfrnav -M -r -s /sbin/nologin \ + -c "Special user account to be used by vfrnav cfmuautoroute/cfmuvalidate services" vfrnav %post selinux /usr/sbin/semodule -i %{_datadir}/selinux/packages/%{name}/%{name}.pp >/dev/null 2>&1 || : @@ -361,8 +327,6 @@ fi %{_libdir}/libreoffice/share/registry/vfrnav.xcd %{_libdir}/libvfrnav.so.0 %{_libdir}/libvfrnav.so.0.0.0 -%{_libdir}/libvfrnavcarto.so.0 -%{_libdir}/libvfrnavcarto.so.0.0.0 %{_bindir}/vfrnav %{_bindir}/vfrnavaideditor %{_bindir}/vfrwaypointeditor @@ -439,24 +403,12 @@ fi %{_bindir}/weatherfplan %{_bindir}/vfrnavgrib2dump %{_bindir}/vfrnavgrib2fcst -%{_bindir}/vfrdbbasulmimport -%{_bindir}/vfrnavmodes -%if %{with osmium} -%{_bindir}/osmbdry2shp -%{_bindir}/osm2odb -%{_bindir}/osm2sdb -%endif -%{_bindir}/odbquery -%{_bindir}/sdbquery -%{_bindir}/cartoquery -%if %{with wetterdl} %files wetterdl %{_bindir}/wetterdl.py %{_datadir}/applications/wetterdl.desktop %{_datadir}/icons/hicolor/32x32/apps/wetterdl.png %{_datadir}/icons/hicolor/48x48/apps/wetterdl.png -%endif %files validatorservice /lib/systemd/system/cfmuvalidate.service @@ -465,7 +417,6 @@ fi %dir %attr(0755,vfrnav,vfrnav) /run/vfrnav %dir %attr(0750,vfrnav,vfrnav) /run/vfrnav/validator %dir %attr(0750,vfrnav,vfrnav) /var/lib/vfrnav -%{_sysusersdir}/vfrnav.conf %files selinux %{_datadir}/selinux/packages/%{name}/vfrnav.pp @@ -481,308 +432,6 @@ fi %endif %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 20230429-37 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Fri Jun 19 2026 Sandro Mani - 20230429-36 -- Rebuild (gdal) - -* Sat Jun 13 2026 Yaakov Selkowitz - 20230429-35 -- Rebuilt for openssl 4.0 - -* Sun Mar 22 2026 Björn Esser - 20230429-34 -- Rebuild (jsoncpp) - -* Fri Feb 27 2026 Orion Poplawski - 20230429-33 -- Rebuild for octave 11.1 - -* Wed Feb 18 2026 Thomas Sailer - 20230429-32 -- fix requires - -* Sun Jan 25 2026 Elliott Sales de Andrade - 20230429-31 -- Drop support for i686 - -* Sat Jan 17 2026 Fedora Release Engineering - 20230429-30 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Jan 14 2026 Jitka Plesnikova - 20230429-29 -- Rebuild for new gpsd - -* Sun Nov 23 2025 Sandro Mani - 20230429-28 -- Rebuild (gdal) - -* Tue Oct 28 2025 Sandro Mani - 20230429-27 -- Rebuild (geos) - -* Wed Sep 03 2025 Sandro Mani - 20230429-26 -- Rebuild (geos) - -* Thu Aug 07 2025 Orion Poplawski - 20230429-25 -- Rebuild for Octave 10.2 - -* Tue Jul 29 2025 Sandro Mani - 20230429-24 -- Rebuild (gdal) - -* Fri Jul 25 2025 Fedora Release Engineering - 20230429-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue May 27 2025 Remi Collet - 20230429-22 -- rebuild for new gpsd - -* Wed Mar 05 2025 Sandro Mani - 20230429-21 -- Rebuild (geos) - -* Thu Feb 27 2025 Björn Esser - 20230429-20 -- Rebuild (jsoncpp) - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 20230429-19 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Sun Feb 02 2025 Orion Poplawski - 20230429-18 -- Rebuild with gsl 2.8 - -* Sun Jan 19 2025 Fedora Release Engineering - 20230429-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Jan 07 2025 Thomas Sailer - 20230429-16 -- fixes for octave 9 - -* Mon Dec 23 2024 Björn Esser - 20230429-15 -- Rebuild (libpqxx) - -* Thu Nov 14 2024 Orion Poplawski - 20230429-14 -- Rebuild for octave 9.2 - -* Fri Nov 08 2024 Sandro Mani - 20230429-13 -- Rebuild (gdal) - -* Fri Oct 25 2024 Orion Poplawski - 20230429-12 -- Rebuild for yaml-cpp 0.8 - -* Tue Sep 10 2024 Sandro Mani - 20230429-11 -- Rebuild (geos) - -* Sat Jul 20 2024 Fedora Release Engineering - 20230429-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu Jun 06 2024 Sandro Mani - 20230429-9 -- Rebuild (geos) - -* Mon May 13 2024 Sandro Mani - 20230429-8 -- Rebuild (gdal) - -* Sat Jan 27 2024 Fedora Release Engineering - 20230429-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Nov 15 2023 Sandro Mani - 20230429-6 -- Rebuild (gdal) - -* Sun Nov 12 2023 Sandro Mani - 20230429-5 -- Rebuild (geos) - -* Wed Aug 16 2023 Sandro Mani - 20230429-4 -- Switch to BR podofo0.9-devel - -* Sat Jul 22 2023 Fedora Release Engineering - 20230429-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jul 06 2023 Sandro Mani - 20230429-2 -- Rebuild (geos) - -* Wed May 17 2023 Thomas Sailer - 20230429-1 -- update to 20230429 - -* Thu May 11 2023 Sandro Mani - 20201231-40 -- Rebuild (gdal) - -* Sat Apr 08 2023 Orion Poplawski - 20201231-39 -- Rebuild with octave 8.1.0 - -* Tue Jan 24 2023 Adam Williamson - 20201231-38 -- rebuild for new libgps - -* Sat Jan 21 2023 Fedora Release Engineering - 20201231-37 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Nov 15 2022 Richard Shaw - 20201231-36 -- Rebuild for yaml-cpp 0.7.0. - -* Tue Nov 15 2022 Sandro Mani - 20201231-35 -- Rebuild (geos) - -* Sat Nov 12 2022 Sandro Mani - 20201231-34 -- Rebuild (gdal) - -* Tue Nov 08 2022 Richard Shaw - 20201231-33 -- Rebuild for yaml-cpp 0.7.0. - -* Tue Aug 23 2022 Mamoru TASAKA - 20201231-32 -- Restrict BR: antlr to %%java_arches - -* Tue Aug 23 2022 Mamoru TASAKA - 20201231-31 -- Rebuild for gsl-2.7.1 - -* Sat Jul 23 2022 Fedora Release Engineering - 20201231-30 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sun Jul 03 2022 Sandro Mani - 20201231-29 -- Rebuild (geos) - -* Tue Jun 07 2022 Sandro Mani - 20201231-28 -- Rebuild (geos) - -* Wed Jun 01 2022 Orion Poplawski - 20201231-27 -- Rebuild for octave 7.1 - -* Fri May 20 2022 Sandro Mani - 20201231-26 -- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 - -* Fri May 06 2022 Mamoru TASAKA - 20201231-25 -- Rebuild for new gpsd - -* Tue May 03 2022 Sandro Mani - 20201231-24 -- Rebuild (podofo) - -* Fri Feb 18 2022 Thomas Sailer - 20201231-23 -- rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 20201231-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jan 18 2022 Sandro Mani - 20201231-21 -- Rebuild (geos) - -* Mon Jan 10 2022 Björn Esser - 20201231-20 -- Enable builds for ppc64le again - -* Mon Jan 10 2022 Björn Esser - 20201231-19 -- Rebuild (libpqxx) - -* Thu Nov 11 2021 Sandro Mani - 20201231-18 -- Rebuild (gdal) - -* Sun Nov 07 2021 Sandro Mani - 20201231-17 -- Rebuild (geos) - -* Wed Nov 03 2021 Björn Esser - 20201231-16 -- Rebuild (jsoncpp) - -* Thu Oct 21 2021 Sandro Mani - 20201231-15 -- Rebuild (geos) - -* Tue Sep 14 2021 Sahana Prasad - 20201231-14 -- Rebuilt with OpenSSL 3.0.0 - -* Tue Sep 07 2021 Thomas Sailer - 20201231-13 -- rebuild - -* Tue Aug 17 2021 Björn Esser - 20201231-12 -- Rebuild (libpqxx) - -* Thu Aug 12 2021 Björn Esser - 20201231-11 -- Rebuild for octave 6.3.0, again - -* Thu Aug 12 2021 Björn Esser - 20201231-10 -- Add patch to fix invocation of inksacape v1.x -- Use macros for make - -* Wed Aug 11 2021 Björn Esser - 20201231-9 -- Rebuild (gpsd) - -* Wed Aug 11 2021 Orion Poplawski - 20201231-8 -- Rebuild for octave 6.3.0 - -* Fri Jul 23 2021 Fedora Release Engineering - 20201231-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri May 07 2021 Sandro Mani - 20201231-6 -- Rebuild (gdal) - -* Sat Feb 13 2021 Sandro Mani - 20201231-5 -- Rebuild (geos) - -* Wed Feb 03 2021 Thomas Sailer - 20201231-3 -- rebuild for libpqxx 7.3 - -* Wed Jan 27 2021 Fedora Release Engineering - 20201231-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jan 18 2021 Thomas Sailer - 20201231-2 -- rebuild for gpsd - -* Mon Jan 11 2021 Thomas Sailer - 20201231-1 -- update to 20201231 -- make osmium conditional and disable for now as libosmium-devel is broken with g++ 11 - -* Wed Nov 11 13:13:38 CET 2020 Sandro Mani - 20200429-4 -- Rebuild (proj, gdal) - -* Sun Aug 09 2020 Thomas Sailer - 20200429-3 -- rebuild for libpqxx - -* Wed Jul 29 2020 Fedora Release Engineering - 20200429-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jun 19 2020 Björn Esser - 20200429-1 -- update to 20200429 - -* Thu Jun 18 2020 Björn Esser - 20200427-4 -- Rebuild (gpsd) - -* Sat May 30 2020 Björn Esser - 20200427-3 -- Rebuild (jsoncpp) - -* Thu May 21 2020 Sandro Mani - 20200427-2 -- Rebuild (gdal) - -* Fri May 01 2020 Thomas Sailer - 20200427-1 -- update to 20200427 - -* Tue Mar 03 2020 Sandro Mani - 20200202-2 -- Rebuild (gdal) - -* Wed Feb 5 2020 Thomas Sailer - 20200202-1 -- update to 20200202 - -* Fri Jan 31 2020 Fedora Release Engineering - 20190212-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Nov 14 2019 Björn Esser - 20190212-8 -- Rebuild (jsoncpp) - -* Tue Aug 20 2019 Susi Lehtola - 20190212-7 -- Rebuilt for GSL 2.6. - -* Wed Aug 07 2019 Thomas Sailer - 20190212-6 -- remove wetterdl subpackage due to python2 dependency - -* Sat Jul 27 2019 Fedora Release Engineering - 20190212-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jul 03 2019 Björn Esser - 20190212-4 -- Rebuild (jsoncpp) - -* Wed Jul 03 2019 Björn Esser - 20190212-3 -- Rebuild (gpsd) - -* Sun Jun 16 2019 Orion Poplawski - 20190212-2 -- Rebuild for octave 5.1 - -* Thu Feb 14 2019 Thomas Sailer - 20190212-1 -- Compile fixes for rawhide - -* Sun Feb 03 2019 Fedora Release Engineering - 20180129-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 20180129-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Jul 11 2018 Sandro Mani - 20180129-3 -- Rebuild (podofo) - -* Fri Feb 09 2018 Fedora Release Engineering - 20180129-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - * Mon Jan 29 2018 Thomas Sailer - 20180129-1 - update to 20180129 - drop openjpeg2 patch, as it was buggy and openjpeg2 support is now integrated