Compare commits

...
Sign in to create a new pull request.

81 commits

Author SHA1 Message Date
Jitka Plesnikova
64478c0999 Rebuild for new gpsd 2026-01-14 11:47:55 +01:00
Mamoru TASAKA
4d66ffc616 Update harmonics data to 20251228 2025-12-29 16:04:09 +09:00
Fedora Release Engineering
dfc6e18249 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 21:07:11 +00:00
Mamoru TASAKA
7b5c95bcae 2.15.6 2025-06-29 22:23:18 +09:00
Remi Collet
95f3fb6df5 rebuild for new gpsd 2025-05-27 16:17:42 +02:00
Mamoru TASAKA
8387637fa0 Only apply Systemd Sysusers.d usage for F-42+ 2025-02-13 23:25:30 +09:00
Zbigniew Jędrzejewski-Szmek
368006ef0c Add sysusers.d config file to allow rpm to create users/groups automatically
See https://fedoraproject.org/wiki/Changes/RPMSuportForSystemdSysusers.
2025-02-11 17:03:14 +01:00
Fedora Release Engineering
0705b8db89 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 16:23:19 +00:00
Mamoru TASAKA
57055bbdc7 Update harmonics data to 20241229 2024-12-30 16:27:24 +09:00
Miroslav Suchý
272b32ab75 Migrate to SPDX license (temporary ids)
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4

Note that this is an SPDX identifier, but it still needs to be migrated to the proper identifiers in the fedora-license-data set.
Please follow https://docs.fedoraproject.org/en-US/legal/update-existing-packages/#_public_domain

If there will be no comments in two weeks, I will merge this.
2024-09-19 05:31:16 +00:00
Miroslav Suchý
601c59e710 convert GPLv3+ license to SPDX
This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4
2024-07-25 13:34:18 +02:00
Fedora Release Engineering
68455dc81c Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:32:34 +00:00
Fedora Release Engineering
5c21473a61 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 10:26:38 +00:00
Mamoru TASAKA
467df0b2e0 harmonics data update (20240104) 2024-01-06 17:49:04 +09:00
Mamoru TASAKA
d3b8b392ab Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild 2023-07-23 00:28:31 +09:00
Mamoru TASAKA
d298a77255 rename release macro to make rpmdev-bumprelease work 2023-03-13 10:46:36 +09:00
Adam Williamson
985586b6ff rebuild for new libgps 2023-01-23 18:23:07 -08:00
Fedora Release Engineering
359fc3fc0a Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 07:56:32 +00:00
Fedora Release Engineering
9da3eb607f Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 13:36:35 +00:00
Mamoru TASAKA
f4e085582e 2.15.5 2022-05-12 15:45:37 +09:00
Mamoru TASAKA
cd9438ff94 Modify configure.ac to detect gpsd API version >=7 (version 3.18) 2022-05-06 00:22:54 +09:00
Mamoru TASAKA
20a7b9c74b 2.15.4 2022-02-15 16:17:03 +09:00
Mamoru TASAKA
0bd675313e remove left-over noautobuild 2022-02-06 16:51:30 +09:00
Mamoru TASAKA
966717edc5 Patch for libXaw 1.0.14 XawListChange API change 2022-02-06 16:32:53 +09:00
Mamoru TASAKA
9bd7ea76b3 harmonics data update (20220109) 2022-02-06 15:04:09 +09:00
Mamoru TASAKA
c4b81d49a1 Rebuild for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild 2021-07-25 11:06:01 +09:00
Peter Hutterer
bd34a7e623 Require xorg-x11-fonts-misc instead of -base. -base hasn't existed for over a decade. 2021-03-02 08:33:54 +10:00
Mamoru TASAKA
55d4efc461 Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild 2021-01-30 23:02:03 +09:00
Tom Stellard
adbff7b212 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 01:41:09 +00:00
Mamoru TASAKA
41379de14d 2.15.3 2020-08-09 23:34:44 +09:00
Mamoru TASAKA
5a51873f2c more cleanup 2020-08-09 23:25:11 +09:00
Mamoru TASAKA
43842406b1 kill unsupported macro condition 2020-08-09 22:45:50 +09:00
Mamoru TASAKA
57539eb50e F-33: mass rebuild 2020-08-07 20:03:52 +09:00
Mamoru TASAKA
df605a97bb harmonics data update (20191229) 2020-01-28 13:38:05 +09:00
Mamoru TASAKA
75b370bb4a 2.15.2 2019-02-26 13:43:38 +09:00
Mamoru TASAKA
2b7fa77d87 F-30: mass rebuild 2019-02-05 12:44:04 +09:00
Igor Gnatenko
dbb4cc293e Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:56 +01:00
Igor Gnatenko
abc88c5a4e
Remove obsolete scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-27 13:23:16 +01:00
Igor Gnatenko
7eb3111915
Remove obsolete ldconfig scriptlets
References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-01-22 18:41:22 +01:00
Mamoru TASAKA
5437052eba harmonics data update (20181227) 2019-01-02 15:38:26 +09:00
Mamoru TASAKA
cdcd07d060 rebuild 2018-07-16 12:33:50 +09:00
Mamoru TASAKA
34399763a8 2018-07-10 22:22:41 +09:00
Jason Tibbitts
82ac4ffc25 Remove needless use of %defattr 2018-07-09 23:56:12 -05:00
Mamoru TASAKA
16a2306121 harmonics data update (20180101) 2018-02-15 14:23:42 +09:00
Igor Gnatenko
3d2bd08088 Remove obsolete scriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-18 22:55:39 +01:00
Mamoru TASAKA
7515e151b4 F-28: rebuild for gpsd 2017-09-22 12:25:37 +09:00
Fedora Release Engineering
0ae6d3b6b6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild 2017-05-15 21:27:00 +00:00
Mamoru TASAKA
519ba9b446 F-26: mass rebuild 2017-02-15 11:07:20 +09:00
Mamoru TASAKA
a3cf05dc16 add BR: systemd for macro 2017-01-02 00:33:08 +09:00
Mamoru TASAKA
aacf67f7e6 harmonics data update 2017-01-02 00:05:42 +09:00
Mamoru TASAKA
622a915d4f 2.15.1 2016-02-28 01:01:37 +09:00
Mamoru TASAKA
a7ae0bc2fc F-24: mass rebuild 2016-02-06 03:10:09 +09:00
Mamoru TASAKA
56c66306fd change BR 2016-01-26 23:35:40 +09:00
Mamoru TASAKA
15aa905cc9 2.15 2016-01-26 22:58:26 +09:00
Mamoru TASAKA
0be0684a14 2.15 dev20160114 2016-01-16 02:26:46 +09:00
Mamoru TASAKA
7e8a4ac3f6 2.15 dev20160105 2016-01-10 02:17:22 +09:00
Mamoru TASAKA
2b45de1657 add some BR 2016-01-05 00:56:58 +09:00
Mamoru TASAKA
ec2ea74007 Use new configure.ac, Makefile.am provided by the upstream 2016-01-05 00:42:18 +09:00
Mamoru TASAKA
4ec3b82a18 add BR: libtool 2016-01-03 22:29:02 +09:00
Mamoru TASAKA
95a2c9787d Use systemd patches provided by the upstream
- Make xttpd.socket (provided by the upstream) be symlink from
  %_sysconfdir
2016-01-03 22:21:15 +09:00
Mamoru TASAKA
a16d7da147 a bit fix 2015-12-31 12:11:50 +09:00
Mamoru TASAKA
d9f6f3f68e Switch to use systemd unit on F-24+ 2015-12-31 01:48:22 +09:00
Mamoru TASAKA
44832b5e73 Harmonics data 20151227 2015-12-30 16:11:33 +09:00
Kalev Lember
228d5571eb Rebuilt for GCC 5 C++11 ABI change 2015-05-02 18:48:01 +02:00
Mamoru TASAKA
144c9a55dd F-23: rebuild against new gpsd 2015-03-08 21:08:08 +09:00
Mamoru TASAKA
397763ff7a Harmonics data 20141224 2014-12-28 17:43:46 +09:00
Mamoru TASAKA
1fc6bd49d6 again commit 2014-11-04 14:20:38 +09:00
Mamoru TASAKA
0fb04d77b9 mistakenly deleted needed source... 2014-11-04 14:17:31 +09:00
Mamoru TASAKA
d91107cb3b 2.14 2014-11-04 13:58:06 +09:00
Mamoru TASAKA
3c364ef8d6 2.14 dev20141014
- New subpackage: libxtide
- Make -common noarch
2014-10-17 22:36:59 +09:00
Peter Robinson
fd5432de08 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-18 11:05:42 +00:00
Mamoru TASAKA
ecffb4deca 2.14 dev20140622 2014-06-30 13:37:55 +09:00
Mamoru TASAKA
5124577ba3 F-21: mass rebuild 2014-06-12 10:46:59 +09:00
Mamoru TASAKA
8c8738ac61 fix sources 2014-05-26 14:50:33 +09:00
Mamoru TASAKA
5812a7586f 2.14 dev20140504 2014-05-26 14:35:15 +09:00
Mamoru TASAKA
09b6d83cf2 Update harmonics data to 20131228 2013-12-30 17:14:34 +09:00
Mamoru TASAKA
e113930fa9 F-21: rebuild against new gpsd 2013-12-01 03:17:04 +09:00
Mamoru TASAKA
7ff3fcf90f 2.13.2 2013-08-06 16:44:59 +09:00
Mamoru TASAKA
00ae94f67d 2.13.2 2013-07-24 13:56:47 +09:00
Mamoru TASAKA
b3e8ea1fbd 2.13.1 2013-07-12 18:26:52 +09:00
Mamoru TASAKA
8f61533ac1 F-19: kill vendorization of desktop file (fpc#247) 2013-02-09 21:39:24 +09:00
9 changed files with 598 additions and 131 deletions

20
.gitignore vendored
View file

@ -1,18 +1,2 @@
xtide-2.11-RC1.tar.bz2
harmonics-dwf-20100529-free.tar.bz2
xtide-2.11.tar.bz2
/xtide-2.12-dev-20101029.tar.bz2
/harmonics-dwf-20100529-free.tar.bz2
/harmonics-dwf-20101230-free.tar.bz2
/harmonics-dwf-20110410-free.tar.bz2
/xtide-2.12-dev-20110731.tar.bz2
/xtide-2.12-dev-20110827.tar.bz2
/xtide-2.12-RC1.tar.bz2
/xtide-2.12.tar.bz2
/xtide-2.12.1.tar.bz2
/harmonics-dwf-20111230-free.tar.bz2
/harmonics-dwf-20120302-free.tar.bz2
/xtide-2.13-RC2.tar.bz2
/xtide-2.13-RC3.tar.bz2
/xtide-2.13.tar.bz2
/harmonics-dwf-20121224-free.tar.bz2
/xtide-*.tar.xz
/harmonics-dwf-*.tar.xz

View file

@ -1 +0,0 @@
Will rebuild with small fix

View file

@ -1,2 +1,2 @@
d208dcceddf73731e978ff2aaab5b576 xtide-2.13.tar.bz2
f9a8c5414aa14bd6b08d1be4e6a3eea7 harmonics-dwf-20121224-free.tar.bz2
SHA512 (xtide-2.15.6.tar.xz) = cd24908a9f4541ab2b19444dba54aab92310e49d2ba0321d9bbcde9806d7cc975828cc5f22fe0a1a73cebf96f4ad1ccd1530c016e8b22f7d54675aeff9528c82
SHA512 (harmonics-dwf-20251228-free.tar.xz) = d7710c2f0fcaf32ca8e017f073912db5e4d344dbc1710c2709766232d0c77d08b4cec65418f9c7196bb792271f0136a8a9fb59de021e8d4c0ad66c2c558ae87b

View file

@ -1,44 +0,0 @@
--- xtide-2.12.1/scripts/Fedora/rc.xttpd.pid 2006-11-25 07:03:03.000000000 +0900
+++ xtide-2.12.1/scripts/Fedora/rc.xttpd 2012-03-05 10:41:04.283973613 +0900
@@ -13,6 +13,7 @@
CONFIG=/etc/sysconfig/xttpd
LOCK=/var/lock/subsys/xttpd
+PIDFILE=/var/run/xttpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
@@ -39,15 +40,23 @@
RETVAL=1
return $RETVAL
fi
+ if pgrep -U xttpd -f $PROG ; then
+ echo -n $"daemon already running."
+ failure
+ echo
+ RETVAL=1
+ return $RETVAL
+ fi
if test "$XTTPD_FEEDBACK"; then
- daemon $DAEMON $PORT XTTPD_FEEDBACK=$XTTPD_FEEDBACK HOME=$HOME
+ $DAEMON $PORT XTTPD_FEEDBACK=$XTTPD_FEEDBACK HOME=$HOME
RETVAL=$?
else
- daemon $DAEMON $PORT HOME=$HOME
+ $DAEMON $PORT HOME=$HOME
RETVAL=$?
fi
[ $RETVAL -eq 0 ] && touch $LOCK
+ [ $RETVAL -eq 0 ] && pgrep -U xttpd -f $PROG > $PIDFILE
echo
return $RETVAL
}
@@ -57,6 +66,7 @@
killproc $DAEMON
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $LOCK
+ [ $RETVAL -eq 0 ] && rm -f $PIDFILE
echo
return $RETVAL
}

View file

@ -0,0 +1,51 @@
--- xtide-2.14/scripts/Fedora/rc.xttpd.pid_rc 2006-11-25 07:03:03.000000000 +0900
+++ xtide-2.14/scripts/Fedora/rc.xttpd 2015-12-30 23:37:17.110917961 +0900
@@ -6,13 +6,14 @@
# description: Harmonic tide clock and tide predictor server
# processname: xttpd
# config: /etc/sysconfig/xttpd
-# pidfile: /var/run/xttpd.pid
+# pidfile: /var/run/xttpd/xttpd.pid
#
PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
CONFIG=/etc/sysconfig/xttpd
LOCK=/var/lock/subsys/xttpd
+PIDFILE=/var/run/xttpd/xttpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
@@ -40,13 +41,8 @@
return $RETVAL
fi
- if test "$XTTPD_FEEDBACK"; then
- daemon $DAEMON $PORT XTTPD_FEEDBACK=$XTTPD_FEEDBACK HOME=$HOME
+ daemon --pidfile $PIDFILE $DAEMON $PORT XTTPD_FEEDBACK=$XTTPD_FEEDBACK HOME=$HOME
RETVAL=$?
- else
- daemon $DAEMON $PORT HOME=$HOME
- RETVAL=$?
- fi
[ $RETVAL -eq 0 ] && touch $LOCK
echo
return $RETVAL
@@ -54,7 +50,7 @@
stop(){
echo -n $"Stopping $PROG: "
- killproc $DAEMON
+ killproc -p $PIDFILE $DAEMON
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $LOCK
echo
@@ -67,7 +63,7 @@
}
status_xttpd(){
- status $PROG
+ status -p $PIDFILE $PROG
}
case "$1" in

View file

@ -0,0 +1,147 @@
--- xtide-2.14/xttpd.cc.pidfile 2014-10-12 04:42:10.000000000 +0900
+++ xtide-2.14/xttpd.cc 2015-12-30 21:05:16.087233767 +0900
@@ -34,6 +34,11 @@ using namespace libxtide;
#include <netdb.h>
#include <pwd.h>
#include <grp.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <signal.h>
+#include <unistd.h>
// These browsers nowadays can get pretty verbose.
@@ -44,6 +49,11 @@ static const size_t bufsize (10000);
static Dstr webmaster;
static ZoneIndex zoneIndex;
static bool zoneinfoIsNotHorriblyObsolete;
+static int processTermReason = 0;
+
+// Pid file name
+#define PID_FILE_DIR "/var/run/xttpd"
+#define PID_FILE_NAME PID_FILE_DIR "/xttpd.pid"
namespace TimeControl {
@@ -1153,6 +1163,89 @@ static void dontBeRoot() {
}
}
+static void createPidFileDirectory(void) {
+ struct stat st;
+ mode_t dirMode = S_IRWXU | S_IRGRP | S_IXGRP;
+
+ if (stat(PID_FILE_DIR, &st) != 0) {
+ int errnum = errno;
+ if (errnum != ENOENT) {
+ Global::xperror("stat");
+ exit (-1);
+ }
+
+ if (mkdir(PID_FILE_DIR, dirMode) < 0) {
+ Global::xperror("mkdir");
+ exit (-1);
+ }
+
+ if (stat(PID_FILE_DIR, &st) != 0) {
+ Global::xperror("stat");
+ exit (-1);
+ }
+ }
+
+ // Make it sure that PID_FILE_DIR is a directory
+ // (not a symlink or so)
+ if (!S_ISDIR(st.st_mode)) {
+ Dstr msg (PID_FILE_DIR " is not a directory");
+ Global::log (msg, LOG_ERR);
+ exit (-1);
+ }
+
+ // Again chmod
+ if (chmod(PID_FILE_DIR, dirMode) < 0) {
+ Global::xperror("chmod");
+ exit (-1);
+ }
+
+ group *gr = getgrnam (xttpd_group);
+ if (!gr) {
+ Global::xperror ("getgrnam");
+ exit (-1);
+ }
+ passwd *nb = getpwnam (xttpd_user);
+ if (!nb) {
+ Global::xperror ("getpwnam");
+ exit(-1);
+ }
+
+ if (chown(PID_FILE_DIR, nb->pw_uid, gr->gr_gid) < 0) {
+ Global::xperror ("chown");
+ exit(-1);
+ }
+
+}
+
+static void writePidFile(pid_t pid) {
+ FILE *pidFd = fopen(PID_FILE_NAME, "w");
+ if (!pidFd) {
+ Global::xperror("fopen");
+ exit (-1);
+ }
+
+ if (fprintf(pidFd, "%d", (int)pid) < 0) {
+ Global::xperror ("fprintf");
+ exit (-1);
+ }
+
+ fclose(pidFd);
+}
+
+static void handlerSigterm(int sig) {
+ processTermReason = sig;
+}
+
+static void initSignalHander(void) {
+ struct sigaction sigact;
+ memset(&sigact, 0, sizeof sigact);
+
+ sigemptyset(&sigact.sa_mask);
+ sigact.sa_flags |= SA_RESTART;
+ sigact.sa_handler = handlerSigterm;
+
+ sigaction(SIGTERM, &sigact, NULL);
+}
int main (int argc, char **argv) {
@@ -1181,7 +1274,13 @@ int main (int argc, char **argv) {
portNumberEvade = parseAddress (portnum, addr, argv[1]);
setupSocket (portnum, addr, listenSocket);
}
+ // Create pid directory before dropping priviledge
+ createPidFileDirectory();
dontBeRoot();
+ writePidFile(getpid());
+
+ // Initialize signal handler
+ initSignalHander();
// An unfortunate consequence of needing to drop root ASAP is that
// failure to bind the port prevents xttpd -v from working.
@@ -1212,7 +1311,7 @@ int main (int argc, char **argv) {
FD_ZERO (&rdset);
FD_SET (listenSocket, &rdset);
sockaddr addr;
- while (true) {
+ while (!processTermReason) {
fd_set trdset, twrset, texset;
trdset = rdset;
// I seem to remember that some platforms barf if you provide
@@ -1235,6 +1334,7 @@ int main (int argc, char **argv) {
while (waitpid (-1, (int*)NULL, WNOHANG|WUNTRACED) > 0);
}
+ unlink(PID_FILE_NAME);
exit (0);
}

37
xtide-2.15.4-gpsd7.patch Normal file
View file

@ -0,0 +1,37 @@
--- xtide-2.15.4.oldgps/configure.ac 2022-02-12 05:45:25.000000000 +0900
+++ xtide-2.15.4/configure.ac 2022-05-05 23:27:20.324043017 +0900
@@ -471,19 +471,19 @@ AC_CHECK_HEADER([Dstr], [AC_CHECK_LIB([d
AM_CONDITIONAL(NO_LIBDSTR, test "$ac_cv_lib_dstr_DstrCompat20070215Check" != "yes")
# libgps is optional; use it if you have a compatible version.
-AC_CHECK_HEADER([gps.h], [AC_CHECK_LIB([gps], [timestamp], [
- AC_MSG_CHECKING([if libgps is 3.x or newer, compatible version])
+AC_CHECK_HEADER([gps.h], [AC_CHECK_LIB([gps], [gps_open], [
+ AC_MSG_CHECKING([if libgps is 3.18 or newer, compatible version])
AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([[
#include <gps.h>
-#if (GPSD_API_MAJOR_VERSION < 5)
+#if (GPSD_API_MAJOR_VERSION < 7)
#FAIL
#endif
int main (int argc, char **argv) {
struct gps_data_t gpsdata;
gps_open ("127.0.0.1", "2947", &gpsdata);
gps_stream (&gpsdata, WATCH_ENABLE|WATCH_NEWSTYLE, NULL);
- gps_read (&gpsdata);
+ gps_read (&gpsdata, NULL, 0);
return (gpsdata.fix.mode >= MODE_2D);
}
]])],
--- xtide-2.15.4.oldgps/xxGlobal.cc 2014-10-12 04:42:10.000000000 +0900
+++ xtide-2.15.4/xxGlobal.cc 2022-05-05 23:25:58.866053595 +0900
@@ -66,7 +66,7 @@ void PositioningSystem (Coordinates &cur
// gps_clear_fix (&gpsdata->fix);
time_t before (time(NULL));
while (time(NULL) < before+2) {
- if (gps_read (&gpsdata) < 0) {
+ if (gps_read (&gpsdata, nullptr, 0) < 0) {
fprintf (stderr, "Warning: gps_read failed; giving up on GPS\n");
gps_close (&gpsdata);
gps_on = false;

View file

@ -1,13 +1,18 @@
%define mainver 2.13
%undefine betatag
%define dwfdate 20121224
%define mainver 2.15.6
#%%define betatag dev-20160114
%define dwfdate 20251228
%define baserelease 4
%define fedorarel 3
%define rel %{?betatag:0.}%{fedorarel}%{?betatag:.%(echo %betatag | sed -e 's|-||g')}
%define rel %{?betatag:0.}%{baserelease}%{?betatag:.%(echo %betatag | sed -e 's|-||g')}
%if 0%{?fedora} >= 42
%global use_systemd_sysusers 1
%else
# Drop this when F41 gets EOF
%global use_systemd_sysusers 0
%endif
Summary: Calculate tide all over the world
Name: xtide
@ -15,7 +20,7 @@ Version: %{mainver}
Release: %{rel}%{?dist}
URL: http://www.flaterco.com/xtide/
Source0: ftp://ftp.flaterco.com/xtide/%{name}-%{version}%{?betatag:-%betatag}.tar.bz2
Source0: https://flaterco.com/files/xtide/%{name}-%{version}%{?betatag:-%betatag}.tar.xz
Source14: xtide-get_harmonics-data.sh
Source20: %{name}.desktop
@ -28,14 +33,14 @@ Source30: xtide-README.fedora
# Upstream now splitted free and non-free harmonics data
#
#Source40: Harminics-USpart-recreate-sh.tar.bz2
#Source41: harmonics-dwf-%{dwfdate}-dump-US.tar.bz2
Source42: ftp://ftp.flaterco.com/xtide/harmonics-dwf-%{dwfdate}-free.tar.bz2
# new systemd ( >= 37.4? ) needs pidfile
Patch0: xtide-2.12.1-rcscript-pidfile.patch
#Source41: harmonics-dwf-%%{dwfdate}-dump-US.tar.bz2
Source42: https://flaterco.com/files/xtide/harmonics-dwf-%{dwfdate}-free.tar.xz
License: GPLv3+
Group: Applications/Engineering
# Automatically converted from old format: GPLv3+ - review is highly recommended.
License: GPL-3.0-or-later
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: libXaw-devel
BuildRequires: libXext-devel
BuildRequires: libpng-devel
@ -43,26 +48,50 @@ BuildRequires: zlib-devel
BuildRequires: desktop-file-utils
BuildRequires: libdstr-devel
BuildRequires: libtcd-devel
%if 0%{?fedora} >= 17
BuildRequires: gpsd-devel >= 3
%endif
BuildRequires: systemd
BuildRequires: systemd-devel
# By SOURCE1
BuildRequires: automake
BuildRequires: autoconf
BuildRequires: libtool
# By SOURCE3
BuildRequires: byacc
BuildRequires: flex
# Explicit for %%PATCH1
BuildRequires: %{_bindir}/pkg-config
Requires: wvs-data
Requires: xorg-x11-fonts-base
Requires: xtide-common
Requires: xorg-x11-fonts-misc
Requires: xtide-common = %{version}-%{release}
Requires: libxtide%{?_isa} = %{version}-%{release}
%if ! %{use_systemd_sysusers}
Requires(pre): shadow-utils
Requires(preun): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(postun): /sbin/service
Requires(post): /sbin/chkconfig
%endif
Requires(preun): systemd
Requires(postun): systemd
Requires(post): systemd
%package -n libxtide
Summary: XTide library
# Automatically converted from old format: GPLv3+ - review is highly recommended.
License: GPL-3.0-or-later
%package -n libxtide-devel
Summary: Development files for libxtide
# Automatically converted from old format: GPLv3+ - review is highly recommended.
License: GPL-3.0-or-later
Requires: libxtide%{?_isa} = %{version}-%{release}
%package common
Summary: Xtide common files
Group: Applications/Engineering
License: Public Domain
# Automatically converted from old format: Public Domain - needs further work
License: LicenseRef-Callaway-Public-Domain
Requires: bzip2
Requires: wget
BuildArch: noarch
%description
XTide is a package that provides tide and current
@ -88,6 +117,13 @@ NOTE:
Please also see README.fedora in xtide-common package for Fedora
specific issue.
%description -n libxtide
The libxtide package provides library files used for XTide.
%description -n libxtide-devel
The libxtide-devel package contains libraries and header files for
developing applications that use libxtide.
%description common
This package contains common files needed by xtide, xttpd and
@ -95,15 +131,31 @@ tideEditor.
Please read README.fedora for Fedora specific issue.
%prep
%if 0%{?betatag:1}
%setup -q -n %{name}-%{version}-DEVELOPMENT -a 42
%else
%setup -q -n %{name}-%{version}%{?betatag:-%{betatag}} -a 42
%endif
# Systemd stuff
sed -i scripts/systemd/xttpd.socket \
-e 's|ListenStream=80|ListenStream=8080|'
cat > scripts/systemd/xttpd.service.conf <<EOF
HFILE_PATH=%{_datadir}/%{name}-harmonics
XTTPD_FEEDBACK=xtide-maintainer@fedoraproject.org
EOF
sed -i scripts/systemd/xttpd.service.in \
-e 's|^EnvironmentFile=.*$|EnvironmentFile=-%{_sysconfdir}/sysconfig/xttpd.service.conf|'
autoreconf -i
# Dstr -> Dstr.h
grep -rl 'include.*<Dstr>' . | while read f ; do
sed -i.name -e 's|\(include.*\)<Dstr>|\1<Dstr.h>|' $f
done
%patch0 -p1
# Embed version
sed -i.ver \
-e "\@^PACKAGE_VERSION=@s|'.*'$|'%{version}-%{release}'|" \
@ -111,18 +163,32 @@ sed -i.ver \
-e "\@^[ \t]*VERSION=@s|'.*'$|'%{version}-%{release}'|" \
configure
# Check if GCC bug 43905 for 4.5.x branch is fixed
sed -i.ipa_sra -e '/ipa-sra/d' configure
# Kill rpath, ah!
sed -i.rpath configure \
-e 's|hardcode_libdir_flag_spec=|kill_hardcode_libdir_flag_spec=|' \
-e 's|hardcode_libdir_flag_spec_CXX=|kill_hardcode_libdir_flag_spec_CXX=|' \
%{nil}
sed -i.rpath ltmain.sh \
-e 's|\$finalize_rpath|\$finalize_no_rpath|' \
%{nil}
%if %{use_systemd_sysusers}
# Create a sysusers.d config file
cat >xtide.sysusers.conf <<EOF
u xttpd - 'XTide web server' %{_sysconfdir}/%{name} -
EOF
%endif
%build
# Build with experimental SVG support
export CFLAGS="%{optflags} -DJGFeatures"
export CXXFLAGS="%{optflags} -DJGFeatures"
%configure \
--enable-systemd \
%if 0
--enable-moon-age \
%endif
--with-xttpd-user=xttpd \
--with-xttpd-group=xttpd
%{__make} %{?_smp_mflags} -k
echo "%{_datadir}/xtide-harmonics/" > %{name}.conf
@ -136,7 +202,6 @@ echo "%{_datadir}/wvs-data/" >> %{name}.conf
install
%{__mkdir_p} $RPM_BUILD_ROOT%{_sbindir}
%{__mkdir_p} $RPM_BUILD_ROOT%{_libexecdir}
# xttpd treatment
# xttpd is wrapped
@ -145,15 +210,27 @@ echo "%{_datadir}/wvs-data/" >> %{name}.conf
%{__install} -c -p -m 755 xtide-get_harmonics-data.sh \
$RPM_BUILD_ROOT%{_sbindir}
%{__mv} $RPM_BUILD_ROOT%{_sbindir}/xttpd $RPM_BUILD_ROOT%{_libexecdir}
%{__install} -c -p -m 755 scripts/Fedora/xttpd-wrapper.sh \
$RPM_BUILD_ROOT%{_sbindir}/xttpd
# ensure xttpd binary installation directory (original
# wrapper script is hardcorded)
%{__sed} -i -e 's|/usr/libexec|%{_libexecdir}|' \
$RPM_BUILD_ROOT%{_sbindir}/xttpd
# Install systemd unit file
%{__mkdir_p} ${RPM_BUILD_ROOT}%{_unitdir}
%{__install} -c -p -m 644 \
scripts/systemd/xttpd.socket \
scripts/systemd/xttpd.service \
${RPM_BUILD_ROOT}%{_unitdir}
%{__ln_s} -f \
%{_sysconfdir}/sysconfig/xttpd.socket \
${RPM_BUILD_ROOT}%{_unitdir}/xttpd.socket
%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
%{__install} -c -p -m 644 \
scripts/systemd/xttpd.service.conf \
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/
%{__install} -c -p -m 644 \
scripts/systemd/xttpd.socket \
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/xttpd.socket
# 1A Install harmonics file
%{__mkdir_p} ${RPM_BUILD_ROOT}%{_datadir}/%{name}
@ -166,7 +243,6 @@ echo "%{_datadir}/wvs-data/" >> %{name}.conf
# 1C Add desktop entry (xtide)
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install \
--vendor fedora \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%{SOURCE20}
@ -186,11 +262,6 @@ done
%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/xtide
%{__install} -c -p -m 755 scripts/Fedora/rc.xttpd \
$RPM_BUILD_ROOT%{_initddir}/xttpd
%{__install} -c -p -m 644 scripts/Fedora/xttpd.conf \
$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/xttpd
# 1F and others
%{__install} -c -p -m 644 %{SOURCE30} README.fedora
@ -204,28 +275,29 @@ for f in AUTHORS ChangeLog NEWS README ; do
( touch -r $f $f.tmp ; mv -f $f.tmp $f ) || rm -f $f.tmp
done
rm -rf harmonics-dwf
mkdir harmonics-dwf
cp -a harmonics-dwf-%{dwfdate}/[A-Z]* \
harmonics-dwf/
%post
touch --no-create %{_datadir}/icons/hicolor || :
# 3 cleanup
rm -rf $RPM_BUILD_ROOT%{_libdir}/libxtide.{a,la}
/sbin/chkconfig --add xttpd
%if %{use_systemd_sysusers}
install -m0644 -D xtide.sysusers.conf %{buildroot}%{_sysusersdir}/xtide.conf
%endif
%post
%systemd_post xttpd.socket xttpd.service
exit 0
%postun
if [ $1 -ge 1 ] ; then
/sbin/service xttpd condrestart &>/dev/null || :
fi
[ $1 -eq 0 ] || exit 0
touch --no-create %{_datadir}/icons/hicolor || :
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
%systemd_postun xttpd.socket xttpd.service
exit 0
%pre
%if ! %{use_systemd_sysusers}
getent group xttpd &>/dev/null || \
%{_sbindir}/groupadd -r xttpd
getent passwd xttpd &> /dev/null || \
@ -236,18 +308,14 @@ getent passwd xttpd &> /dev/null || \
-r \
-s /sbin/nologin \
xttpd 2>/dev/null
%endif
exit 0
%preun
if [ $1 = 0 ] ; then
/sbin/service xttpd stop &>/dev/null
/sbin/chkconfig --del xttpd
fi
%systemd_preun xttpd.socket xttpd.service
exit 0
%posttrans
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
exit 0
%ldconfig_scriptlets -n libxtide
%files common
%doc README.fedora
@ -263,29 +331,238 @@ exit 0
# Now include tcd data
%{_datadir}/%{name}-harmonics/*.tcd
%files -n libxtide
%{_libdir}/libxtide.so.1{,.*}
%files -n libxtide-devel
%{_libdir}/libxtide.so
%{_includedir}/libxtide/
%files
%defattr(-,root,root,-)
%doc AUTHORS COPYING README README-QUICK
%doc AUTHORS README README-QUICK
%license COPYING
# xtide
%{_mandir}/man1/*tide.1*
%{_datadir}/applications/fedora-%{name}.desktop
%{_datadir}/applications/*%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/%{name}/icon_*_orig.png
%{_bindir}/*tide
# xttpd
%config(noreplace) %{_sysconfdir}/sysconfig/xttpd
%{_initddir}/xttpd
%config(noreplace) %{_sysconfdir}/sysconfig/xttpd.service.conf
%config(noreplace) %{_sysconfdir}/sysconfig/xttpd.socket
%{_unitdir}/xttpd.service
%{_unitdir}/xttpd.socket
%{_sbindir}/xttpd
%{_libexecdir}/xttpd
%{_datadir}/man/man8/xttpd.8*
%if %{use_systemd_sysusers}
%{_sysusersdir}/xtide.conf
%endif
%changelog
* Mon Dec 31 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.3
* Wed Jan 14 2026 Jitka Plesnikova <jplesnik@redhat.com> - 2.15.6-4
- Rebuild for new gpsd
* Mon Dec 29 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.6-3
- Update harmonics data to 20251228
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jun 29 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.6-1
- 2.15.6
* Tue May 27 2025 Remi Collet <remi@fedoraproject.org> - 2.15.5-11
- rebuild for new gpsd
* Thu Feb 13 2025 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.5-10
- Only apply Systemd Sysusers.d usage for F-42+
* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.15.5-10
- Add sysusers.d config file to allow rpm to create users/groups automatically
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Dec 30 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.5-8
- Update harmonics data to 20241229
* Thu Jul 25 2024 Miroslav Suchý <msuchy@redhat.com> - 2.15.5-7
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jan 6 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.5-4
- harmonics data update (20240104)
* Sat Jul 22 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jan 24 2023 Adam Williamson <awilliam@redhat.com> - 2.15.5-2
- rebuild for new libgps
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.5-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.5-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu May 12 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.5-1
- 2.15.5
* Thu May 5 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.4-2
- Modify configure.ac to detect gpsd API version >=7 (version 3.18)
* Tue Feb 15 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.4-1
- 2.15.4
* Sun Feb 6 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.3-4
- Patch for libXaw 1.0.14 XawListChange API change
* Sun Feb 6 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.3-3
- harmonics data update (20220109)
* Sun Jul 25 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.3-2.2
- Rebuild for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Mar 02 2021 Peter Hutterer <peter.hutterer@redhat.com> - 2.15.3-2.1
- Require xorg-x11-fonts-misc instead of -base. -base hasn't existed for
over a decade.
* Sat Jan 30 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.3-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sun Aug 9 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.3-1
- 2.15.3
* Fri Aug 07 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.2-2.1
- F-33: mass rebuild
* Tue Jan 28 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.2-2
- harmonics data update (20191229)
* Tue Feb 26 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.2-1
- 2.15.2
* Tue Feb 05 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-7.1
- F-30: mass rebuild
* Wed Jan 2 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-7
- harmonics data update (20181227)
* Mon Jul 15 2018 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-6
- F-29: mass rebuild
* Thu Feb 15 2018 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-5
- harmonics data update (20180101)
* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.15.1-4.1
- Remove obsolete scriptlets
* Fri Sep 22 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-4
- F-28: rebuild for gpsd
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.15.1-3.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
* Wed Feb 15 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-3
- F-26: mass rebuild
* Mon Jan 2 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-2
- harmonics data update
* Sun Feb 28 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15.1-1
- 2.15.1
* Sat Feb 6 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15-2
- F-24: mass rebuild
* Tue Jan 26 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15-1
- 2.15
* Sat Jan 16 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15-0.2.dev20160114
- 2.15 dev20160114
* Sun Jan 10 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.15-0.1.dev20160105
- 2.15 dev20160105
* Tue Jan 5 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14.3-8
- Use new configure.ac, Makefile.am provided by the upstream
* Sun Jan 3 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14.3-7
- Use systemd patches provided by the upstream
- Make xttpd.socket (provided by the upstream) be symlink from
%%_sysconfdir
* Thu Dec 31 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14.3-6
- Switch to use systemd unit on F-24+
* Wed Dec 30 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14.3-5
- Make xttpd server create pidfile by itself
- Modify rcscript to reflect server change
- Remove if-condition when calling xttpd-wrapper.sh
with regard to XTTPD_FEEDBACK option
* Tue Dec 29 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14.3-4
- Harmonics data 20151227
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.14-3.1
- Rebuilt for GCC 5 C++11 ABI change
* Sun Mar 8 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-3
- F-23: rebuild against new gpsd
* Sun Dec 28 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-2
- Harmonics data 20141224
* Tue Nov 4 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-1
- 2.14
* Fri Oct 17 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-0.4.dev20141014
- 2.14 dev20141014
- New subpackage: libxtide
- Make -common noarch
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.14-0.3.dev20140622.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jun 30 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-0.3.dev20140622
- 2.14 dev20140622
* Thu Jun 12 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-0.2.dev20140504
- F-21: mass rebuild
* Mon May 26 2014 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.14-0.1.dev20140504
- 2.14 dev20140504
* Mon Dec 30 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.2-4
- Update harmonics data to 20131228
* Sun Dec 1 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.2-3
- F-21: rebuild against new gpsd
* Tue Aug 6 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.2-2
- F-20: mass rebuild
* Wed Jul 24 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.2-1
- 2.13.2
* Fri Jul 12 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13.1-1
- 2.13.1
* Sat Feb 9 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13-4
- F-19: kill vendorization of desktop file (fpc#247)
* Mon Dec 31 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.13-3
- Update harmonics data to 20121224
* Mon Aug 6 2012 Mamoru Tasaka <mtasaka@fedoraproject.org> - 2.13-2

16
xttpd.service Normal file
View file

@ -0,0 +1,16 @@
[Unit]
Description=Harmonic tide clock and tide predictor (web server)
Documentation=man:xttpd(8)
Wants=xttpd.socket
[Service]
User=xttpd
Group=xttpd
WorkingDirectory=~
Type=simple
EnvironmentFile=-/etc/sysconfig/xttpd
ExecStart=/usr/sbin/xttpd
NotifyAccess=main
[Install]
WantedBy=multi-user.target