* [ANN] cmogstored 1.5.0 - a mogstored alternative
@ 2015-11-21 2:58 7% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-11-21 2:58 UTC (permalink / raw)
To: mogile, cmogstored-public
cmogstored is an alternative implementation of the "mogstored" storage
component of MogileFS. cmogstored is implemented in C and does not use
Perl at runtime. cmogstored is the only component you need to install
on a MogileFS storage node.
Changes since 1.4.3:
cmogstored 1.5.0 - vfork, systemd, 416 codes
A bunch of minor changes; most notable is systemd-style socket
activation support. This was easy-to-add since we've always had
socket activation support for nginx-style SIGUSR2 upgrades.
This places no link or runtime dependency on libsystemd, so the
LISTEN_FDS and LISTEN_PID environment variables may be used in other
init systems as well. While I have my own reservations about
systemd itself, I also strongly believe in using socket activation
to prevent downtime. Existing behavior with CMOGSTORED_FD
(used for SIGUSR2 upgrades) is now documented in the manpage and
will always supported.
We've also added vfork support for Linux systems, allowing
faster spawning of iostat if malloc is using too much memory.
Behavior changes:
Bad Range: headers return 416 responses in more cases for invalid
ranges (e.g. miscalculated ranges such as "1--1", while
completely wrong ones (lacking a "bytes=" prefix) are ignored
entirely as in nginx.
Bugfixes:
There are also some cleanups to avoid dying on OOM in more places
on weird systems which trigger OOM. More work on this is ongoing.
Also updates to the latest gnulib.git
commit 71d39c1644762745b94e9449c45bfd716a79a5eb
("autoupdate") along with a change which fixes a memory leak when
people build from cmogstored.git using gnulib
commit c6148bca89e9465fd6ba3a10d273ec4cb58c2dbe
or later ("mountlist: add me_mntroot field on Linux machines").
This memory leak did not affect any released tarballs of cmogstored.
Note, users building from git (as opposed to the tarball) will
need gnulib commit 41d1b6c42641a5b9e21486ca2074198ee7909bd7
("mountlist: add support for deallocating returned list entries")
or later (from July 2013).
There are also various documentation updates and our mailing
list is now readable over NNTP:
nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.cmogstored
8 changes since v1.5.0rc0:
doc: document CMOGSTORED_FDS in the manpage
use vfork under Linux before execve
README: update contact information
misc doc updates
add cmogstored manpage to website
Makefile.am: distribute txt2pre in tarball
require newer gnulib for free_mount_entry support
cmogstored 1.5.0 - vfork, systemd, 416 codes
14 changes for 1.5.0rc0:
doc: use "builder" RubyGem to generate Atom feed
dev.c: fail gracefully on out-of-memory errors
do not die on OOM when for mgmt paths
HACKING: update URLs to reduce redirects
http: return 416 errors in more cases for bad Ranges
update .gitignores for latest autotools + gnulib
Rakefile: remove text-only part from the Atom feed
support systemd-style socket activation via environment
set TCP listener options on inherited sockets
doc: add example systemd config files
use free_mount_entry from gnulib instead of rolling our own
fix tmpdir dependency for slow Ruby tests
doc: publish examples directory to website
cmogstored 1.5.0rc1
http://bogomips.org/cmogstored/files/cmogstored-1.5.0.tar.gz
SHA-1: 0581285d7104ff418eed853cfbd94ab08bba4951
SHA-256: b83b954874ef201b6e6616ec3e60f517c6a01f7bc6eda1fbb3901558e34c1388
* homepage: http://bogomips.org/cmogstored/README
* git clone git://bogomips.org/cmogstored.git
* cgit: http://bogomips.org/cmogstored.git
* gitweb: http://repo.or.cz/w/cmogstored.git
* list: cmogstored-public@bogomips.org (subscription optional)
* archives: http://bogomips.org/cmogstored-public/
* nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.cmogstored
--
EW
^ permalink raw reply [relevance 7%]
* [PATCH] misc doc updates
@ 2015-11-20 2:54 5% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-11-20 2:54 UTC (permalink / raw)
To: cmogstored-public; +Cc: Eric Wong
Generate pre-formatted HTML which gives us a consistent visual style
with our mailing list archives and enhance linkability. <a>, <pre>,
and <title> are among the few useful HTML tags I'll use :P
Drop the AUTHORS file, it's pointless maintenance task and users can
just look at git history instead (and honestly, I have zero interest in
recognition; I only use my real name to deter GPL violations).
---
AUTHORS | 1 -
INSTALL | 5 +++--
Makefile.am | 23 +++++++++++++++++------
Rakefile | 4 ++++
build-aux/txt2pre | 43 +++++++++++++++++++++++++++++++++++++++++++
doc/design.txt | 2 ++
6 files changed, 69 insertions(+), 9 deletions(-)
delete mode 100644 AUTHORS
create mode 100755 build-aux/txt2pre
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 53cc6d4..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-* Eric Wong <normalperson@yhbt.net>
diff --git a/INSTALL b/INSTALL
index f66987c..408c59d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,7 @@
-Standard autotools installation
-*******************************
+cmogstored installation
+***********************
+cmogstored uses autotools, so the usual instructions apply:
After unpacking the tarball:
./configure && make && make install
diff --git a/Makefile.am b/Makefile.am
index f78ff76..0272608 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -197,9 +197,12 @@ $(top_srcdir)/ChangeLog: configure.ac
GZIP = gzip
RSYNC = rsync
RSYNC_DEST = bogomips.org:/srv/bogomips/cmogstored/
-WWW_DOC = README AUTHORS NEWS.atom.xml INSTALL $(extra_doc)
+HTML_DOC = README INSTALL $(extra_doc) doc/queues.txt doc/design.txt
+WWW_DOC = $(HTML_DOC) NEWS.atom.xml
NEWS.atom.xml: configure.ac
$(AM_V_GEN)$(RAKE) -sq news_atom > $@.$$$$ && mv $@.$$$$ $@
+
+html = $${i%.txt}.html
publish: NEWS.atom.xml NEWS ChangeLog
mkdir -p www/examples/
# n.b. git set-file-times is non-standard, but distributed with rsync
@@ -207,11 +210,19 @@ publish: NEWS.atom.xml NEWS ChangeLog
$(INSTALL_DATA) -p $(addprefix $(top_srcdir)/,$(WWW_DOC)) www/
$(INSTALL_DATA) -p $(addprefix $(top_srcdir)/,$(examples)) \
www/examples/
- set -e && cd www && for i in $(WWW_DOC) $(examples); do \
- $(GZIP) < $$i > $$i.gz; \
- test -s $$i.gz; \
- touch -r $$i $$i.gz; \
- done
+ set -e && cd www && \
+ for i in $(notdir $(WWW_DOC)) $(examples); do \
+ $(GZIP) < $$i > $$i.gz; \
+ test -s $$i.gz; \
+ touch -r $$i $$i.gz; \
+ done && \
+ for i in $(notdir $(HTML_DOC)); do \
+ i=$$(basename $$i); \
+ ../build-aux/txt2pre $$i > $(html); \
+ test -s $(html); \
+ $(GZIP) < $(html) > $(html).gz; \
+ touch -r $(html) $(html).gz; \
+ done;
$(RSYNC) -av www/ $(RSYNC_DEST)
.PHONY: publish
diff --git a/Rakefile b/Rakefile
index bb1c22a..b214af3 100644
--- a/Rakefile
+++ b/Rakefile
@@ -62,6 +62,10 @@ end
desc 'prints news as a text file'
task :news do
+ title = "cmogstored news"
+ puts title
+ puts('-' * title.length)
+ puts
tags.each do |tag|
time = tag[:time].tr!('T', ' ').gsub!(/:\d\dZ/, ' UTC')
line = "#{tag[:tag].sub(/^v/, '')} / #{time}"
diff --git a/build-aux/txt2pre b/build-aux/txt2pre
new file mode 100755
index 0000000..bc42952
--- /dev/null
+++ b/build-aux/txt2pre
@@ -0,0 +1,43 @@
+#!/usr/bin/env perl
+# Copyright (C) 2015 all contributors <cmogstored-public@bogomips.org>
+# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
+#
+# Stupid script to make HTML from preformatted, utf-8 text versions,
+# only generating links for http(s). Markdown does too much
+# and requires indentation to output preformatted text.
+use strict;
+use warnings;
+use CGI qw/escapeHTML/;
+use Encode qw/encode/;
+my $file = shift;
+my $str;
+if (defined $file) {
+ open my $fh, '<', $file or die "failed to open $file: $!\n";
+ local $/;
+ $str = <$fh>;
+} else {
+ $str = eval { local $/; <> };
+}
+
+$str = escapeHTML($str);
+$str = encode('us-ascii', $str, Encode::HTMLCREF);
+my ($title) = ($str =~ /\A([^\n]+)\n[^a-zA-Z]*\n/s);
+
+unless (defined $title) {
+ $title = $file;
+ $title =~ s,\A[^/]*/,,;
+ $title = "cmogstored - $title";
+}
+
+# temporarily swap > for escape so our s!! to add href works.
+# there's probably a way to do this with only a single s!! ...
+$str =~ s!>!\e!g;
+$str =~ s!\b((nntp|ftp|https?)://[\w+\+\&\?\.\%\;/#-]+)!<a
+href="$1"\n>$1</a>!g;
+
+$str =~ s!\e!>!g; # swap escapes back to >
+
+print '<html><head>',
+ '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />',
+ "<title>$title</title>",
+ "</head><body>\n<pre>", $str , '</pre></body></html>';
diff --git a/doc/design.txt b/doc/design.txt
index 495e1bf..6a158cb 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -1,3 +1,5 @@
+cmogstored design notes
+
object relationships
--------------------
--
EW
^ permalink raw reply related [relevance 5%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2015-11-20 2:54 5% [PATCH] misc doc updates Eric Wong
2015-11-21 2:58 7% [ANN] cmogstored 1.5.0 - a mogstored alternative Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/cmogstored.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).