summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: 1ee97b6b768ce6487bb9c1913104b13a015c8ad7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
v1.0 (unreleased)
====

* Simplified the sfeed(5) format:
  * The formatted time field is removed.
  * The feedtype field (values "atom" or "rss") is removed.
  To convert your files from the previous format to the changed format you
  can just remove the fields:
      cd ~/.sfeed/feeds
      for i in *; do cut -f 1,3-8 "$i" > /tmp/t; mv /tmp/t "$i"; done
* Simpler and much faster time parsing in sfeed(1): like timegm(3), this is
  also more portable.
* 2038-proof: support 64-bit time_t, output truncated as long long int.
* The format programs now use the localtime and a shorter time format:
  "yyyy-mm-dd HH:MM" instead of "yyyy-mm-dd HH:MM:SS timezone".
  If you run the programs on a system in a different timezone make sure to
  update the TZ environment variable or change the source-code to show the UTC
  offset.

Minor fixes:
* Check errno (ERANGE) when parsing UNIX timestamp from a sfeed(5) file.
* sfeed_frames: don't make title of content a HTML anchor if it's empty.
* sfeed_frames: make the filename of the content file more unique: use the
  UNIX timestamp in the filename. This makes sure it won't overwrite older
  content files anymore which had the same title, but a different timestamp.

Documentation:
* Add sfeed(5) man page which explains the feed file format, this information
  is also still available in sfeed(1).
* Rewrite some sentences so it is hopefully more clear.


v0.9.1
======

* Improved `make dist` rule in Makefile: don't build binaries before packaging
  the source files. Package the source files in the relative path
  sfeed-VERSION/.


v0.9
====

Features:
---------

* sfeed_update: feeds are now by default updated concurrently for an increase
  in performance.
* sfeed_update: Auto-detect XML character set encoding (sfeed_xmlenc).
* sfeed_update: don't send user-agent by default (used to send: curl+version).
* Removed the dependency on libexpat, using a custom XML parser (xml.*),
  this parser is also non-validating, it will not check the XML for errors
  or stop parsing if it contains errors (which is good).
* On OpenBSD 5.9+ the sfeed tools can now use pledge(2) as a security
  mitigation. Most tools only require "stdio" and read-only filesystem access.
  To enable it the CPPFLAGS -DUSE_PLEDGE can be used, see the file: config.mk.
* Added (optional) format tools:
  * Add sfeed_frames, a formatting program to output feeds as a HTML file with
    frames. It's optimized to look good in older browsers that don't necesarily
    support CSS or modern HTML, like links. See the man page for more details.
  * Add sfeed_mbox: format feeds to mbox format.
  * Add sfeed_tail: poll files or stdin and print unique/unseen items to
    stdout, this is inspired from RSSTail.
  * Add sfeed_web: find RSS/Atom feeds from web-pages.


Documentation:
--------------

* Changed to mandoc (semantic) for the documentation format, for older systems
  man pages can be created with mandoc -Tman.
* Major improvements to the documentation quality.


License:
--------

* Changed license from MIT to ISC (simpler wording).


Bug fixes:
----------

* sfeed_update: fix issue with merging failed feeds, the date from the last
  (possibly failed) request would be used and passed as HTTP If-Modified-Since,
  so data would be missed, see commit 77a603a904087dd9fd3350da029f279f076e4f4b
  for more info.
* Fix possible TOCTOU in sfeed_frames.
* Fix crash with repeated tags: <link href="" /> in Atom feeds.
* Path truncations are now treated as fatal errors.
* Remove use of deprecated (POSIX) functions: timegm, utime.
* Fix off-by-one in string_append when reallocating buffer.
* Parsing datetime strings containing timezone suffix to UNIX timestamps
  was wrong. UNIX timestamps are in UTC+0 time. For simplicity sake output
  parsed datetime strings in a formatted manner without converting the
  time to the user selected timezone YYYY-mm-dd HH:MM:SS (UTC[+-][HHMM])|tz .
* Also to determine if an item is new - by comparing the UNIX timestamp -
  don't take into account timezones, because setenv(TZ,...) is just ugly and
  I don't use it.
* Lots of small fixes for compatibility with RSS / Atom feeds.
* Many more improvements, I'll keep a more detailed list in the future.


v0.8
====

No history