Skip to content
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

Please consider packaging: Wine builds, runs with minor fixes #376

Open
allquixotic opened this issue Jun 7, 2016 · 1 comment
Open
Assignees

Comments

@allquixotic
Copy link

allquixotic commented Jun 7, 2016

wine 1.9.11 (latest devel release) builds fine on SmartOS joyent zone, 32-bit, and here is proof (cmd.exe is a 32-bit Windows program running at the end there).

Build notes:

  • Dependencies: (NOTE: this does not satisfy ALL wine optional dependencies, but should cover a vast number of both graphical and non-graphical use cases. It should technically build just with gettext pkg-config gmake gcc49 flex bison, but non-interactive programs that use the Win32 subsystem require X11 support to be enabled; I'd say the majority of Win32 executables are built for the Win32 subsystem whether they use a GUI or not.) --- modular-xorg-libs modular-xorg-protos gettext pkg-config gmake gcc49 flex bison libtool libjpeg-turbo tiff
  • d3d9_36/tests/effects.c complains about a lack of the constant INFINITY. I just added to the top of the file as a quick hack:
#ifndef INFINITY
  #define INFINITY (1.0/0.0)
#endif
  • ntdll/signal_i386.c: signal_i386.c needs to know the system's macros for the 32-bit registers. For us it's in /usr/include/sys/regset.h. There's an #ifdef _SCO_DS block that includes <sys/regset.h>, but it also does #define gregs regs, which we don't want (breaks the compile). Would be nice if we could add an #ifdef __sun block to only #include <sys/regset.h> but not #define gregs regs, unlike __SCO_DS.

These two changes are minor enough that upstream might be willing to accept some form of fix for them, though probably not the hackjob fixes I cooked up in 5 minutes after diagnosing the problems.

Caveats/challenges:

  • To run 32-bit Windows binaries (Win32 / WoW64), you need a complete set of 32-bit system libraries and the ability to compile to 32-bit x86 code. We can run gcc -m32 on a 64-bit zone just fine, but I don't think we have the 32-bit system libraries in the 64-bit package set, do we?
  • To run 64-bit Windows binaries (Win64), you need a complete set of 64-bit system libraries and pass the --enable-win64 flag to ./configure or ./autogen.sh. However, it is potentially desirable to enable running 32-bit binaries within a 64-bit instance of SmartOS. Ubuntu, Fedora, et al. solve this problem by having multiple architectures library support and have, e.g., 32-bit libs in /usr/lib and 64-bit libs in /usr/lib64. SmartOS would have to do something similar to be able to ship 32-bit Wine on 64-bit SmartOS instances, unless we were able to compile it statically and just ship the wine binaries including all the 32-bit dependencies in the final linked binaries.

Also, on Ubuntu and Fedora, somehow they have a multi-arch wine command that I think can run both 32-bit and 64-bit Windows binaries (that is, both Win32 and Win64) in a single binary. I'm not sure how this works (wrapper script, perhaps?) but I know it does require the dual 32-bit/64-bit libraries, so that would be a prerequisite at least (unless, again, we want to statically link the world and ship that).

Purpose

The purpose of getting wine running on SmartOS:

  • Eliminate the reliance on LX branded zones running wine, or virtual machines, for running certain workloads that are only available as Windows binaries
  • Empower SmartOS to natively do this without leaning on third-party ecosystems. While it's great that wine runs well on Ubuntu in an LX zone (or more slowly still on top of KVM), this allows us to start pulling people closer into using the SmartOS native platform more comprehensively for their workloads, instead of just using SmartOS's superior kernel and filesystem as a launching-off point for running other environments (like LX brands) to get actual work done.
  • Due to the absence of a hypervisor, and the optimizations Wine has been working on for about a decade, performance is actually pretty good in a lot of scenarios. One possible use case for this monster is to run a proprietary, Windows-only dedicated server software on SmartOS, without having a Windows license and without having to go to LX->Wine or KVM->Linux->Wine.
  • My totally unscientific claim is that native SmartOS->Wine would be faster than the alternatives, all except running it natively on Windows on bare metal... but many people might not need that last ounce of performance and would happily trade it for license freedom in the OS.
@mamash
Copy link

mamash commented Jun 9, 2016

pkgsrc does have the previous Wine stable (1.6.2) and turns out I can make it build 32bit on SmartOS with just two minor modifications and run 'wine cmd' properly. I'll do that for the starters.

The next step would be to update it to the current 1.8 stable, where more work will likely be involved (must be a reason why nobody has cared to updated it in the past 2.5 years).

jperkin pushed a commit that referenced this issue Aug 4, 2016
- 1.4.40
  * [mod_ssi] enhance support for ssi vars (thx fbrosson)
  * add handling for lua 5.2 and 5.3 (fixes #2674)
  * use libmemcached instead of deprecated libmemcache
  * add force_assert for more allocation results
  * [mod_cgi] use MAP_PRIVATE to mmap temporary file (fixes #2715)
  * [core] do not send SIGHUP to process group unless server.max-workers is used (fixes #2711)
  * [mod_cgi] edge case chdir "/" when docroot "/" (fixes #2460)
  * [mod_cgi] issue trace and exit if execve() fails (closes #2302)
  * [configparser] don't continue after parse error (fixes #2717)
  * [core] never evaluate else branches until the previous branches are ready (fixes #2598)
  * [core] fix conditional cache handling
  * [core] improve conditional enabling (thx Gwenlliana, #2598)
  * [mod_compress] case-insensitive content-codings (fixes #2645)
  * [plugins] don't include dlfcn.h if not needed (fixes #2548)
  * [mod_fastcgi] 404 for X-Sendfile file not found (fixes #2474)
  * [mod_cgi] send 500 if CGI ends and there is no response (fixes #2542)
  * [mod_cgi] consolidate CGI cleanup code
  * [mod_cgi] simplify mod_cgi_handle_subrequest()
  * [mod_cgi] kill CGI if fail to write request body
  * [mod_proxy] use case-insensitive comparision to filter headers, send Connection: Close to backend (fixes #421)
  * [mod_dirlisting] dir-listing.hide-dotfiles = "enabled" by default (fixes #1081)
  * [mod_secdownload] fix buffer overflow in secdl_verify_mac (reported by Fortify Open Review Project)
  * [mod_fastcgi,mod_scgi] fix leaking file-descriptor when backend spawning failed (reported by Fortify Open Review Project)
  * [core] improve array API to prevent memory leaks
  * [core] refactor array search; raise array size limit to SSIZE_MAX
  * [core] fix memory leak in configparser_merge_data
  * [core] provide array_extract_element and use it
  * [core] configparser: error on duplicate keys in array merge (fixes #2685)
  * [core] more careful parse of $SERVER["socket"] config str (prepare #2204)
  * [core] accept $SERVER["socket"] without port, use server.port as fallback (fixes #2204)
  * [mod_magnet] define lua_pushglobaltable (for lua5.1) and use it (fixes #2719)
  * [ssl] support disabling ssl.verifyclient.activate in SNI callback (fixes #2531)
  * restart (some) syscalls after SIGCHLD interrupted them; should fix LDAP problems (fixes #2464)
  * [core] log remote address on request timeouts (fixes #652)
  * [autobuild] use AC_CANONICAL_HOST instead of AC_CANONICAL_TARGET (fixes #1866)
  * [core] fix request_start in keep-alive requests to mark time when received first byte (fixes #2412)
  * [core] truncate pidfile on exit (fixes #2695)
  * consistent inclusion of config.h at top of files (fixes #2073)
  * [core] add generic vector implementation
  * [core] replace array weakref with vector
  * [base64] fix crash due to broken force_assert
  * [unittests] add test_buffer and test_base64 unit tests
  * [buffer] refactor buffer_path_simplify (fixes #2560)
  * validate return values from strtol, strtoul (fixes #2564)
  * [mod_ssi] Add SSI vars SCRIPT_{URI,URL} and REQUEST_SCHEME (fixes #2721)
  * [config] warn if server.upload-dirs has non-existent dirs (fixes #2508)
  * [mod_proxy] accept LF delimited headers, not just CRLF (fixes #2594)
  * [core] wait for grandchild to be ready when daemonizing (fixes #2712, thx pasdVn)
  * [core] respond 411 Length Required if request has Transfer-Encoding: chunked (fixes #631)
  * [core] fixed the loading for default modules if they are specified explicitly
  * [core] lighttpd -tt performs preflight startup checks (fixes #411)
  * [stat] mimetype.xattr-name global config option (fixes #2631)
  * [mod_webdav] allow Depth: Infinity lock on file (fixes #2296)
  * [mod_status] use snprintf() instead of sprintf()
  * pass buf size to li_tohex()
  * use li_[iu]tostrn() instead of li_[iu]tostr()
  * [stream] fstat() after open() to obtain file size
  * [core] clean up srv before exiting for lighttpd -[vVh]
  * [mod_fastcgi,mod_scgi] check for spawning on same unix socket (fixes #319)
  * [mod_cgi] always set QUERY_STRING (fixes #1339)
  * [mod_auth] send charset="UTF-8" in WWW-Authenticate (fixes #1468)
  * [mod_magnet] rename var for clarity (fixes #1483)
  * [mod_extforward] reset cond_cache for scheme (fixes #1499)
  * [mod_webdav] readdir POSIX compat (fixes #1826)
  * [mod_expire] reset caching response headers for error docs (fixes #1919)
  * [mod_status] page refresh option (fixes #2170)
  * [mod_status] table w/ count of con states (fixes #2427)
  * [mod_dirlisting] class for dir <tr> (fixes #2304)
  * [core] define __STDC_WANT_LIB_EXT1__ (fixes #2722)
  * [core] setrlimit max-fds <= rlim_max for non-root (fixes #2723)
  * [mod_ssi] config ssi.conditional-requests
  * [mod_ssi] config ssi.exec (fixes #2051)
  * [mod_redirect,mod_rewrite] short-circuit if blank replacement (fixes #2085)
  * [mod_indexfile] save physical path to env (fixes #448, #892)
  * [core] open fd when appending file to cq (fixes #2655)
  * [config] server.listen-backlog option (fixes #1825, #2116)
  * [core] retry tempdirs on partial write, ENOSPC (fixes #2588)
  * [core] compile with upcoming openssl 1.1.0 release (fixes #2727)
  * [core] improve dynamic handler control flow logic
  * [core] defer reading request body until handle subrequest (fixes #2541)
  * [core] always poll for client POLLHUP/POLLERR events (fixes #399)
  * [mod_fastcgi,mod_scgi,mod_proxy] handlers can read response before sending req body (fixes #131, #2566)
  * [mod_cgi] asynchronous send of request body to CGI
  * [core] compile with upcoming openssl 1.1.0 release (fixes #2727)
  * [core] set REDIRECT_STATUS to error_handler_saved_status (fixes #1828)
  * [core] server.error-handler new directive for error pages (fixes #2702)
  * [core] support IPv6 in $HTTP["remote-ip"] CIDR cond match (fixes #2706)
  * [core] http_response_send_file() shared code (#2017)
  * [mod_fastcgi] use http_response_xsendfile() (fixes #799, fixes #851, fixes #2017, fixes #2076)
  * [mod_scgi] X-Sendfile feature (fixes #2253)
  * [mod_cgi] X-Sendfile feature (fixes #2313)
  * [mod_webdav] lseek,read if fs can not mmap (#2666, fixes #962)
  * [mod_compress] use mmap and trap SIGBUS (#2666, fixes #1879)
  * fallback to lseek()/read() if mmap() fails (#fixes 2666)
  * [mod_auth] skip blank lines and comment lines (fixes #2327)
  * [core] fallback to write if sendfile not supported (fixes #471, #987)
  * [core] preserve PATH_INFO case on case-insensitive fs (fixes #406)
  * [mod_ssi, mod_cml] set DOCUMENT_ROOT to basedir (fixes #2383)
  * [core] cmd line opt to shutdown after idle time limit (fixes #2696)
  * [core] lighttpd -1 handles single request on stdin socket (fixes #1584)
  * [mod_fastcgi,mod_scgi] IPv6 support (fixes #2372)
  * [mod_status] add JSON output option (fixed #2432)
  * [mod_webdav] map COPY/MOVE Destination to aliases (fixes #1787)
  * [mod_webdav] improve PROPFIND,PROPPATCH (#1818, #1953)
  * [core] reset response headers, write_queue for error docs
  * build with libressl
  * static build instructions using SCons or make
  * [mod_auth] preserve WWW-Authenticate for error docs (fixes #2730)
  * check close() return code after writing to file
  * adjustments for openssl 1.1.0 pre-release
  * [config] support include file glob (fixes #1221)
  * [mod_evasive] 302 redirect option if limit reached (fixes #2199)
  * [build] enhancements for cross-compiling (fixes #2276)
  * [mod_accesslog] report aborted con state with %X (fixes #1890)
  * [mod_ssi] fix SSI statement parser
  * [mod_ssi] include relative to alias,userdir (fixes #222)
  * [mod_ssi] add PCRE_* options to constrain regex
  * [mod_ssi] more flexible quoting (fixes #1768)
  * [core] wrap IPv6 literal in "[]" in redirect URL
  * [mod_ssi] fix parse of tag across buf boundary (fixes #2732)
  * [mod_cgi,mod_scgi] X-Sendfile sets file_started (fixes #2733)
  * [mod_fastcgi] no chunked response w/ X-Sendfile (fixes #2733)
  * [config] opts for http header parsing strictness (fixes #551,
  fixes #1086, fixes #1184, fixes #2143, #2258, #2281, fixes #946,
  fixes #1330, fixes #602, #1016)
  * [config] normalize IP strings in lighttpd.conf
  * [build_cmake] use MODULE on Mac OS X (fixes #1761)
  * [config] server.bsd-accept-filter option
  * [mod_webdav] create file w/ LOCK request if ENOENT
  * [core] buffer large responses to tempfiles (fixes #758, fixes #760, fixes #933, fixes #1387, #1283, fixes #2083)
  * [core] stream response to client (#949)
  * [TLS] release openssl buffers as used (fixes #1265, fixes #1283, #881)
  * [config] config options to stream request/response (#949, #376)
  * [core] option to stream request body to backend (fixes #376)
  * [core] option to stream response body to client (fixes #949, #760, #1283, #1387)
  * drain backend socket/pipe bufs upon FDEVENT_HUP
  * remove excess calls to joblist_append()
  * defer choosing "Transfer-Encoding: chunked"
  * asynchronous, bidirectional streaming options
  * fix errors detected by Coverity Scan
  * [cygwin] fix mod_proxy and mod_fastcgi ioctl use
  * [mod_webdav] remove excess SQL param to UNLOCK
  * graceful shutdown without unnecessary 1 sec delay
  * [core] disable Nagle algorithm (TCP_NODELAY)
  * [core] add declarations to fdevent.h (#2373)
  * [tests] remove dependency on CGI.pm
  * [TLS] fix return value checks during cert init
  * [core] fix server.max-request-size to be precise (fixes #2131)
  * [mod_webdav] fix proppatch mem leak, other fixes (#fixes 1334, #fixes 2000)
  * [autobuild] CMake check for struct tm tm_gmtoff (fixes #2014)
  * [mod_uploadprogress] fix mem leak (#1858)
  * [core] make server.max-request-size scopeable (fixes #1901)
  * [mod_fastcgi,mod_scgi] check for spawning on same unix socket (#319)
  * [mod_accesslog] %a %A %C %D %k %{}t %{}T (fixes #1145, fixes
  #1415, fixes #2081)
  * [mod_access] new directive url.access-allow (fixes #1421)
  * [core] fdevent_libev: update use of ev_timer
  * [mod_cgi] handle local redirect response (fixes #2108)
@mamash mamash self-assigned this Oct 5, 2016
jperkin pushed a commit that referenced this issue Oct 22, 2016
version 1.11.1: 2016-06-14

    * new guesser infrastructure, support for emacs and vim modelines (#489)
    * javascript bugfix for nested objects with quoted keys (#496)
    * new theme: Gruvbox (thanks @jamietanna!)
    * praat: lots of improvements (thanks @jjatria)
    * fix for rougify error when highlighting from stdin (#493)
    * new lexer: kotlin (thanks @meleyal!)
    * new lexer: cfscript (thanks @mjclemente!)

version 1.11.0: 2016-06-06

    * groovy:
	o remove pathological regexes and add basic support for
	  triple-quoted strings (#485)
	o add the "trait" keyword and fix project url (thanks @glaforge! #378)
    * new lexer: coq (thanks @gmalecha! #389)
    * gemspec license now more accurate (thanks @connorshea! #484)
    * swift:
	o properly support nested comments (thanks @dblessing! #479)
	o support swift 2.2 features (thanks @radex #376 and @wokalski #442)
	o add indirect declaration (thanks @nRewik! #326)
    * new lexer: verilog (thanks @Razer6! #317)
    * new lexer: typescript (thanks @Seikho! #400)
    * new lexers: jinja and twig (thanks @robin850! #402)
    * new lexer: pascal (thanks @alexcu!)
    * css: support attribute selectors (thanks @skoji! #426)
    * new lexer: shell session (thanks @sio4! #481)
    * ruby: add support for <<~ heredocs (thanks @tinci! #362)
    * recognize comments at EOF in SQL, Apache, and CMake (thanks @julp! #360)
    * new lexer: phtml (thanks @Igloczek #366)
    * recognize comments at EOF in CoffeeScript (thanks @rdavila! #370)
    * c/c++:
	o support c11/c++11 features (thanks @Tosainu! #371)
	o Allow underscores in identifiers (thanks @coverify! #333)
    * rust: add more builtin types (thanks @RalfJung! #372)
    * ini: allow hyphen keys (thanks @KrzysiekJ! #380)
    * r: massively improve lexing quality (thanks @klmr! #383)
    * c#:
	o add missing keywords (thanks @BenVlodgi #384 and @SLaks #447)
    * diff: do not require newlines at the ends (thanks @AaronLasseigne! #387)
    * new lexer: ceylon (thanks @bjansen! #414)
    * new lexer: biml (thanks @japj! #415)
    * new lexer: TAP - the test anything protocol (thanks @mblayman! #409)
    * rougify bugfix: treat input as utf8 (thanks @japj! #417)
    * new lexer: jsonnet (thanks @davidzchen! #420)
    * clojure: associate *.cljc for cross-platform clojure (thanks @alesguzik! #423)
    * new lexer: D (thanks @nikibobi! #435)
    * new lexer: smarty (thanks @tringenbach! #427)
    * apache:
	o add directives for v2.4 (thanks @stanhu!)
	o various improvements (thanks @julp! #301)
	    - faster keyword lookups
	    - fix nil error on unknown directive (cf #246, #300)
	    - properly manage case-insensitive names (cf #246)
	    - properly handle windows CRLF
    * objective-c:
	o support literal dictionaries and block arguments (thanks @BenV!
	  #443 and #444)
	o Fix error tokens when defining interfaces (thanks @meleyal! #477)
    * new lexer: NASM (thanks @sraboy! #457)
    * new lexer: gradle (thanks @nerro! #468)
    * new lexer: API Blueprint (thanks @kylef! #261)
    * new lexer: ActionScript (thanks @honzabrecka! #241)
    * terminal256 formatter: stop confusing token names (thanks @julp! #367)
    * new lexer: julia (thanks @mpeteuil! #331)
    * new lexer: cmake (thanks @julp! #302)
    * new lexer: eiffel (thanks @Conaclos! #323)
    * new lexer: protobuf (thanks @fqqb! #327)
    * new lexer: fortran (thanks @CruzR! #328)
    * php: associate *.phpt files (thanks @Razer6!)
    * python: support raise from and yield from (thanks @mordervomubel! #324)
    * new VimL example (thanks @tpope! #315)
wiedi pushed a commit to wiedi/pkgsrc-legacy that referenced this issue Nov 17, 2016
omindex:

  + Also index leafname with _ and & replaced by spaces.  Literal spaces are
    often avoided in filenames, and "hello_world.txt" ought to be searchable for
    via "hello" and "world".  Partly addresses #618, reported by Julien
    Pfefferkorn.

  + Make named entity look-up (e.g. &eacute; -> 233) use the same keyword-lookup
    table approach we already use for HTML tags and built-in MIME content-types,
    rather than a std::map, which makes it faster while using less memory.

  + Avoid using the shell to run most external commands as it's unnecessary
    overhead.  For the built-in filters, the only cases which now use a shell
    are where we run two unzip commands.  For user-specified commands, a simple
    and slightly conservative test is used, which should avoid a shell in most
    common cases where it isn't needed.  Notably, environment variables set
    before the command are handled.

  + Track files which couldn't be indexed in the user metadata and skip them by
    default on subsequent runs to avoid the costs of repeatedly running a
    filter on a file it can't handle.  Run omindex with --retry-failed to retry
    such files.

  + Overhaul the "per-site" terms:
    - 'H' prefix is hostname as before, except that if the term would be > 240
      bytes (unlikely but possible) the end is hashed is the same way 'U'
      prefix terms are.
    - 'P' terms are now added for every directory level, not just the start
      URL's path.
    - A new 'J' prefix term is added with the start URL (less any trailing
      '/'), which means all files indexed from a particular "site" are now
      indexed by one term.  See TritonDataCenter#376.

  + Add 'skip' pseudo-mimetype which extensions can be mapped to, and they will
    then be reported and skipped (to complement the existing 'ignore'
    pseudo-mimetype which causes files with the specified extension to be
    quietly ignored).

  + Treat a command of 'true' specially as meaning make the text extraction a
    no-op (as actually running /bin/true effectively would).  This provides a
    way to index some file types by only meta-data.  Fixes TritonDataCenter#519, reported by
    Brian Burton.

  + Add support for wildcard mimetypes */* and *.  Combined with filter command
    ``true`` for indexing by meta-data only, you can specify a fall back case
    of indexing by meta-data only using ``--filter '*:true'``.  From a
    suggestion by Brian Burton on xapian-discuss.

  + Index message/rfc822 and message/news.  These are individually saved email
    messages and news articles.

  + Index archived web page formats MAFF and MHTML.

  + Handle .xla, yet another XL extension.

  + Handle metadata in LibreOffice HTML export (dcterms.subject,
    dcterms.description, dcterms.creator and dcterms.contributor).

  + Use zlib's gzopen() instead of invoking "gzip -dc" for compressed Abiword
    documents.

  + Add support for %f in command passed to --filter to allow specifying
    commands where the input file is not the final argument.  Fixed #570,
    reported by Charles Atkinson.

  + Allow --filter to handle commands which produce output in a temporary file
    rather than on stdout.

  + Allow --filter to specify the character set of the output the filter
    produces.

  + Handle application/vnd.ms-excel, text/x-perl and application/x-dvi via
    default --filter settings instead of hardcoded cases (now possible thanks
    to the new abilities that --filter has).

  + Add support for specifying a MIME subtype of '*' in --filter arguments.

  + Add -track-ctime option to allow omindex to pick up changes to file
    ownership and permissions.

  + Index terms from the leafname with an 'F' prefix, rather than treating them
    as more body text.  (Fixes #633, reported by Emmanuel Garette)

  + The starting URL wasn't previously URL encoded.  In 1.2.18, a minimally
    intrusive fix was implemented.  In 1.3.2, we now encode the starting URL
    as we do for the rest of the filename.

  + Don't assume .doc is application/msword but let libmagic decide, since .doc
    files may actually be RTF, and sometimes people use .doc for plain-text
    documentation.

  + Add support for indexing 'topic' and 'created date' meta-data for
    OpenDocument format and HTML.

  + Index "topic" for PDF documents.

  + Commit changes and exit, rather than skipping the current file on most
    unexpected errors reading directories or initialising libmagic - otherwise
    we can end up deleting a lot of database entries on errors like EHOSTDOWN
    when indexing network mounts.

  + Add --opendir-sleep=SECS option to allow working around problems with
    indexing files on Microsoft DFS shares.

  + If we get ENOTDIR trying to index a file, skip it quietly (unless in
    verbose mode) as we already do if we get ENOENT, since ENOTDIR is what we
    get if the file and the directory it was in got removed between us getting
    the filename and trying to open it.

  + Handle ENOENT, ENOTDIR and EACCES from readdir().

  + If we've already opened the file (as we often will have if using a modern
    libmagic with magic_descriptor() available), then use fstat() on that fd
    rather than stat()/lstat() on the pathname.

  + Pass error message string and errno value in ReadError exceptions.

  + Report strerror(errno) if we can't read a file.

  + Filtering via text/html now handles HTML documents which specify a charset.

  + Add support for indexing Microsoft Publisher files using pub2xhtml.

  + Restrict the length of what we consider to be an extension, currently to 7
    characters or whatever the longest extension in the mime_map is if it is
    longer.

  + Avoid '//' in temporary filenames (cosmetic only).

  + Extend --filter to handle commands which produce HTML on stdout.

  + Don't report an error if a file is deleted (or renamed) between us reading
    the directory entry for it and trying to read the file itself by default.
    In --verbose mode, the situation is still reported, but now with a
    specific message.

  + If omindex receives any of the signals SIGHUP, SIGINT, SIGQUIT or SIGTERM,
    then kill any active external filter child process, then handle the signal
    as we did before.  If setpgid() is available, put each external filter in
    its own process group and kill the whole process group when we get a
    signal.

  + Use magic_descriptor() if the version of libmagic we're building against
    is new enough to have it.  This eliminates an extra opening of a file
    being indexed in certain cases.

  + Use rst2html to handle .rst and .rest files.

  + Index title with an 'S' prefix rather than no prefix.

  + If the document with the highest existing docid before the run was updated,
    we were reporting it as "added", but now we correctly report it as
    "updated".

  + Catch and report std::exception explicitly, so failing to allocate memory
    is no longer reported as "Unknown exception".

omindex-list: New tool to list URLs of all the documents in a database
(or list of databases) indexed by omindex.

* The HTML parser now explicitly handles <APPLET>, <OBJECT> and <TR>.

* Use a generated compact and efficient table to convert HTML tag names
  to enum codes - this is both faster and smaller than the approach we were
  using, with the benefit that the table is auto-generated.

* Always use our built-in conversion code for the character sets it can handle
  (previously we'd use iconv if available; now we only use iconv for other
  character sets).  This gives us more consistent results, and in particular
  means we now handle BOMs better (at least when using GNU iconv).

* A lot of data labelled as "iso-8859-1" is actually "windows-1252".  The two
  only differ in characters which are control characters in iso-8859-1, so
  assume the latter when we see the former.


scriptindex:

  + Remove special error handling case noting that index=nopos was replaced
    with indexnopos - this was removed in 1.1.0 so there's been enough time to
    upgrade.


omega:

* Add support for sorting by more than one value - e.g. SORT=+1,-2

* Add $msizelower and $msizeupper which provide access to the lower and upper
  bounds on the number of matches.

* Add support for $set{weighting,coord}.

* Add weightingpurefilter option.  Normally a query consisting only of filter
  terms won't have relevance weights calculated.  This new option allows you to
  specify a weighting scheme to use for such queries, with the same values
  supported as for the existing weighting option.  For example,
  $set{weightingpurefilter,coord} will weight such queries by how many filter
  terms match each document.

* $filters now includes DATEVALUE, which means we'll force the first page when
  reloading or changing page starting from existing URLs upon upgrade to 1.4.1,
  but the exact same existing URL could be for a search without the date filter
  where we want to force the first page, so there's an inherent ambiguity
  there.  Forcing first page in this case seems the least problematic
  side-effect.

* Implement $match command for omegascript.  Patch from Richhiey Thomas.

* Add optional prefix argument to $terms.

* $snippet now uses MSet::snippet() instead of the Snipper class.

* Add $contains{STRING1,STRING2}.  Contributed by Ayush Gupta.

* Add support for negated boolean filter terms, specified by CGI parameter "N".

* Support a direction prefix on SORT: '+' for ascending, '-' for descending.
  SORTREVERSE set to non-0 now flips the direction.  Fixes #697, reported by
  Andy Chilton.

* Add options argument to $transform.

* Cache compiled regexps used in $transform.

* Add $ord OmegaScript command which returns the Unicode codepoint for the
  first character of a UTF-8 string.

* Add $chr OmegaScript command which returns the UTF-8 string for given Unicode
  codepoint.

* Add $csv OmegaScript command which escapes a string for use as a field in a
  CSV file ("always quote" mode inspired by patch from Gaurav Arora.)

* New $filters encoding which avoids collisions.  We also compare CGI parameter
  xFILTERS to what $filters would have returned in previous releases, so that
  on upgrades old format serialised filters are handled correctly.

* Fix $jsonarray not to prepend ']' to the first array element.

* Skip weighting scheme setup for a pure date range query - it won't be
  weighted anyway, so we can avoid having to parse weighting scheme parameters,
  etc.

* Use value ranges when date range filtering by value.  Should be more
  efficient than a MatchDecider, and will automatically take advantage of any
  future value range optimisations in xapian-core.

* Add default_db and default_template config options.  These allow the default
  template and default database name to be set via the config file, rather than
  being stuck with the respective defaults of "default" and "query".  Fixes
  TritonDataCenter#310, reported by Marco Hennigs.

* Add support for non-exclusive filters.  Fixes TritonDataCenter#234, reported by Thomas
  Viehmann.

* Fix handling of multiple P.<prefix> fields - previously only the first seen
  was used.  These fields are also now taken into account when deciding if the
  query has changed.  $query now returns an OmegaScript list with one entry for
  each CGI parameter passed.

* Allow setting query expansion scheme to "bo1".

* Make the $json and $jsonarray force the text to be valid UTF-8, since
  otherwise the output isn't valid JSON.

* Check parameters to $set{weighting,bm25 ...} and $set{weighting,trad ...}
  converted OK.  Based on patch from Aarsh Shah.

* Add support to $set{weighting,...} for bb2, dlh, dph, ifb2, ineb2, inl2, lm,
  pl2 when we're built against a xapian-core which is new enough to have these
  schemes.

* Add $snippet to generate a snippet of text tailored to the search.

* Add new $json and $jsonarray OmegaScript commands to support producing JSON
  output.

* Add $truncate command which truncates a string after a word.

* Add support for $set{weighting,tfidf} to allow the new TfIdfWeight weighting
  scheme to be used.

+ DEFAULTOP now defaults to AND rather than OR, since that matches what pretty
  much every search engine does these days.  Closes ticket#512.

* Allow mapping a query string prefix to more than one term prefix (which
  xapian-core has supported since 1.0.4).

* Add support for search inputs for multiple probabilistic prefixes, with
  support for per-prefix stemmers.

* Drop legacy support for handling '.' separated terms in xP - that changed in
  Omega 0.9.7, more than 5 years ago now.

* Remove support for OLDP CGI parameter which was superseded by xP
  approximately a decade ago, and isn't even documented!

* Drop special handling for R-prefixed terms in $prettyterm - we stopped
  generating these in Xapian 1.0.


templates:

* Lower case all HTML tags, attributes and values; explicitly close <option>
  tags.  Patches from Vivek Pal and Nirmal Singhania.

* Migrate Omega Templates to HTML5.  Patch from Nirmal Sighania.

* templates/query: Remove stray double quote from generated URL for spelling
  suggestion when THRESHOLD is set.  Patch from Nirmal Singhania.

* templates/opensearch: Change response feeds to support OpenSearch 1.1.
  Patch from Nirmal Singhania.

* templates/query: Fix setting setting of prefix map for P - in 1.3.2, this
  would failed to also search in the subject.  Now it also searches in the
  subject and topic.

* templates/query:

  + We now map unprefixed queries to include S-prefixed terms to match the
    change in omindex to prefixing terms from the title with S.  You may want
    to make the same update to your own templates.

  + Set up prefixes for 'author:' and 'title:'.
jperkin pushed a commit that referenced this issue Mar 8, 2017
2017-03-06  Richard Russon  <[email protected]>
* Bug Fixes
  - Get the correct buffer size under fmemopen/torify (#441)
  - Use static inlines to make gcc 4.2.1 happy
  - getdnsdomainname: cancel getaddrinfo_a if needed
  - imap: remove useless code (#434) (origin/master)
  - Fixes missing semi-colon compilation issue (#433)
* Docs
  - github: added template for Pull Requests, issues and a CONTRIBUTION.md (#339)
  - editorconfig: support for new files, fix whitespace (#439)
  - add blocking fmemopen bug on debian to manual (#422)
* Upstream
  - Increase ACCOUNT.pass field size. (closes #3921)
  - SSL: Fix memory leak in subject alternative name code. (closes #3920)
  - Prevent segv if open-appending to an mbox fails. (closes #3918)
  - Clear out extraneous errors before SSL_connect() (see #3916)

2017-02-25  Richard Russon  <[email protected]>
* Features
  - Add option $show_multipart_alternative
  - notmuch: Allow to use untransformed tag for color
  - Use getaddrinfo_a if possible (#420)
* Bug Fixes
  - handle sigint within socket operations (#411)
  - Avoid browsing the remote spoolfile by setting MUTT_SELECT_MULTI attach
  - notmuch: fix crash when completing tags (#395)
  - Fixes missing failure return of notmuch msg open (#401)
  - Fix latest Coverity issues (#387)
  - Advance by the correct number of position even for unknown characters (#368)
  - Release KyotoCabinet data with kcfree() (#384)
  - 22 resource leaks
* Translations
  - Update translations
  - Update the german translation (#397)
* Docs
  - fix typo in notmuch example
  - remove duplicate "default" in the sidebar intro
  - fix confusing description of notmuch operators (#371)
  - correct spelling mistakes (#412)
* Website
  - link to clang-format config in main repo (#28)
  - updated list of useful programs
  - update/improve list of useful programs
  - sidebar_format has a single default value
  - fix name of GNU Guix
  - added guix distro
  - added link to new afew maintainers
  - add code of conduct
  - add mutt-addressbook to useful
  - remove unnecessary unicode non-breaking spaces
  - github merging
* Build
  - Enable and run unit-tests on the feature/unit-test branch
  - add notmuch to default, feature
  - new dbs for mutt
  - master is now the main branch
  - streamline builds
  - fix doc generator
  - add a few includes (prelude to clang-format)
  - slcurses.h defines its own bool type
  - travis: use container build
  - add clang-format file
  - Remove ugly macros and casts from crypt-gpgme.c
  - fix minor reflow issues in some comments
  - editorconfig: use spaces to indent in *.[ch] files
  - added comment-blocks for clang-format to ignore
  - fix 80 column limit, align statements
  - Remove snprintf.c from EXTRA_DIST (#406)
  - Kill homebrew (v)snprintf implementations, as they are C99 (#402)
  - Display charset + small refactoring
  - Do not cast or check returns from safe_calloc (#396)
  - refactor: create a generic base64 encode/decode
  - debug: remove dprint in favor of mutt_debug (#375)
  - Fix dubious use macro for _() / gettext() (#376)
  - Use mutt_buffer_init instead of memset
  - Make the heap method and datatype a plain list
  - Reverts making AliasFile into a list_t (#379)
  - Turn mutt_new_* macros into inline functions
  - Do not cast return values from malloc (et similia)
* Upstream
  - Simplify mutt_label_complete().
  - Permit tab completion of pattern expressions with ~y (labels).
  - Fix the mutt_label_complete() pos parameter.
  - Fix the x-label update code check location.
  - Improve the label completion hash table usage.
  - Adds label completion.
  - Add hash_find_elem to get the hash element.
  - Minor fixes to the x-label patch from David.
  - Adds capability to edit x-labels inside mutt, and to sort by label.
  - Allow "unsubjectrc *" to remove all patterns.
  - Add subjectrx command to replace matching subjects with something else.
  - Abstract the SPAM_LIST as a generic REPLACE_LIST
  - Improve Reply-to vs From comparison when replying. (closes #3909)
  - Fix sidebar references to the "new count" to be "unread". (closes #3908)
  - Fix several alias hashtable issues.
  - Add casecmp and strdup_key flags to hash_create()
  - Improve error handling in mbox magic detection.
  - Allow initial blank lines in local mailboxes.
  - Fix minor documentation issues.
  - Convert cmd_parse_search to use the uid hash. (closes #3905)
  - Create a uid hash for imap. (see #3905)
  - Convert HASH to be indexable by unsigned int. (see #3905)
  - Fix imap server-side search to call uid2msgno() only once. (see #3905)
  - Add a pattern_cache_t to speed up a few repeated matches.
  - Canonicalize line endings for GPGME S/MIME encryption. (closes #3904)
  - Fix build for bdb.
  - Create function to free header cache data.
  - Add Kyoto Cabinet support to the header cache.
  - Prevent null pointer exception for h->ai_canonname
  - Show SHA1 fp in interactive cert check menu.
  - Fix potential cert memory leak in check_certificate_by_digest().
  - Plug memory leak in weed-expired-certs code.
  - Filter expired local certs for OpenSSL verification.
  - Change "allow_dups" into a flag at hash creation.
jperkin pushed a commit that referenced this issue Mar 20, 2017
# Change Log

## [3.5.5] - 2017-02-24

[3.5.5]: hashie/hashie@v3.5.4...v3.5.5

### Added

* [#326](hashie/hashie#326): Added `Hashie::Extensions::Mash::KeepOriginalKeys` to give Mashes the ability to keep the original structure given to it - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#415](hashie/hashie#415): Fixed Mash logging keys multiple times which lead to a bad user experience or, in some cases, errors - [@michaelherold](https://github.com/michaelherold).

## [3.5.4] - 2017-02-22

[3.5.4]: hashie/hashie@v3.5.3...v3.5.4

### Added

* [#412](hashie/hashie#412): Added a Hashie::Extensions::Mash::SymbolizeKeys extension that overrides the default stringification behavior for keys - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#409](hashie/hashie#409): Fixed Railtie detection for projects where Rails is defined but Railties are not availble - [@CallumD](https://github.com/callumd).
* [#411](hashie/hashie#411): Fixed a performance regression from 3.4.3 that caused a 10x slowdown in OmniAuth - [@michaelherold](https://github.com/michaelherold).

## [3.5.3] - 2017-02-11

[3.5.3]: hashie/hashie@v3.5.2...v3.5.3

### Fixed

* [#402](hashie/hashie#402): Use a Railtie to set Hashie.logger on rails boot - [@matthewrudy](https://github.com/matthewrudy).
* [#406](hashie/hashie#406): Ensure that subclasses that disable warnings propagate that setting to grandchild classes - [@michaelherold](https://github.com/michaelherold).
* Your contribution here.

## [3.5.2] - 2017-02-10

[3.5.2]: hashie/hashie@v3.5.1...v3.5.2

### Added

* [#395](hashie/hashie#395): Add the ability to disable warnings in Mash subclasses - [@michaelherold](https://github.com/michaelherold).
* [#400](hashie/hashie#400): Fix Hashie.logger load and set the Hashie logger to the Rails logger in a Rails environment - [@michaelherold](https://github.com/michaelherold).

### Fixed

* [#396](hashie/hashie#396): Fix for specs in #381: Incorrect use of shared context meant example was not being run - [@biinari](https://github.com/biinari).
* [#399](hashie/hashie#399): Fix passing Pathname object to Hashie::Mesh.load() - [@albb0920](https://github.com/albb0920).

### Miscellanous

* [#397](hashie/hashie#397): Add the integration specs harness into the main test tasks - [@michaelherold](https://github.com/michaelherold).

## [3.5.1] - 2017-01-31

* [#392](hashie/hashie#392): Fix for #391: Require all dependencies of Hashie::Mash - [@dblock](https://github.com/dblock).

[3.5.1]: hashie/hashie@v3.5.0...v3.5.1

## [3.5.0] - 2017-01-31

* [#386](hashie/hashie#386): Fix for #385: Make `deep_merge` always `deep_dup` nested hashes before merging them in so that there are no shared references between the two hashes being merged. - [@mltsy](https://github.com/mltsy).
* [#389](hashie/hashie#389): Support Ruby 2.4.0 - [@camelmasa](https://github.com/camelmasa).

[3.5.0]: hashie/hashie@v3.4.6...v3.5.0

### Added

* [#381](hashie/hashie#381): Add a logging layer that lets us report potential issues to our users. As the first logged issue, report when a `Hashie::Mash` is attempting to overwrite a built-in method, since that is one of our number one questions - [@michaelherold](https://github.com/michaelherold).

### Changed

* [#384](hashie/hashie#384): Updated to CodeClimate 1.x - [@boffbowsh](https://github.com/boffbowsh).

### Fixed

* [#369](hashie/hashie#369): If a translation for a property exists when using IndifferentAccess and IgnoreUndeclared, use the translation to find the property - [@whitethunder](https://github.com/whitethunder).
* [#376](hashie/hashie#376): Leave string index unchanged if it can't be converted to integer for Array#dig - [@sazor](https://github.com/sazor).
* [#377](hashie/hashie#377): Dont use Rubygems to check ruby version - [@sazor](https://github.com/sazor).
* [#378](hashie/hashie#378): Deep find all searches inside all nested hashes - [@sazor](https://github.com/sazor).
* [#380](hashie/hashie#380): Evaluate procs default values of Dash in object initialization - [@sazor](https://github.com/sazor).

### Miscellanous

* [#387](hashie/hashie#387): Fix builds failing due to Rake 11 having a breaking change - [@michaelherold](https://github.com/michaelherold).
wiedi pushed a commit to wiedi/pkgsrc-legacy that referenced this issue Jan 28, 2018
pkgsrc changes:
- switch to using qt5 (to follow upstream)
- handle ${PREFIX} in more places
- fix package COMMENT (remove "for IBus")
- GCC_REQD 4.7 for c++11
- add patch comments

See PR pkg/52689 for more details.

Upstream changes:
(from https://github.com/google/mozc/blob/master/docs/release_history.md)

Summary of changes between 2.19.2644.102 and 2.20.2673.102 as follows.

    Third party libraries:
        None.
    Build related changes:
        --qtver GYP build option was removed (280e38f).
        Mozc for macOS now uses macOS 10.11 SDK by default (b2a74bb).
    Major changes:
        src/data/installer/credits_ja.html was removed (2ec6c8f).
        Mozc for macOS now generates 64-bit executables. 32-bit machine is no longer supported on macOS.
        Mozc for Android now has more translations (d914458).
    Fixed issues:
        TritonDataCenter#187: build_mozc.py always generates 32 bit binaries on 64 bit OSX
        TritonDataCenter#327: Switch to Qt5 from Qt4
        TritonDataCenter#348: DirectWrite may fail to render text in certain enviromnents
        TritonDataCenter#391: ImportError: gen_zip_code_seed.py
        TritonDataCenter#399: OK/Cancel buttons on Mozc key binding editor dialog cannot be clicked on Windows
        TritonDataCenter#400: Close icon on GUI dialogs do not work on Windows
    Total commits:
        30 commits.

Summary of changes between 2.18.2613.102 and 2.19.2643.102 as follows.

    Third party libraries:
        protobuf: e8ae137 -> c44ca26
        Dropped dependency on fonttools
    Build related changes:
        --qtver=5 GYP build option is implicitly assumed on macOS and Linux builds (f76c304). On Windows, --qtver=4 is still the default.
    Major changes:
        Mozc for macOS now supports 10.12 as a runtime environment.
        Mozc for Android now uses on-device font to render keytop icons (f5dcad).
    Fixed issues:
        TritonDataCenter#263: Incorrect position in voiced sound marks on the key pad in Android
        TritonDataCenter#384: HUAWEI P9 lite does not show MozcView.
        TritonDataCenter#388: Having multiple abbreviation user dictionary entries with the same reading should be supported
        TritonDataCenter#389: Emoticon user dictionary entry should not be treated a content word
    Total commits:
        39 commits.

Summary of changes between 2.17.2532.102 and 2.18.2612.102 as follows.

    Third party libraries:
        protobuf: d5fb408 -> e8ae137
        GYP: e2e928b -> 4ec6c4e
        breakpad: d2904bb -> 85b27e4
        Dropped dependency on zlib
    Build related changes:
        Renamed src/mozc_version_template.txt to src/data/version/mozc_version_template.bzl
        Reference build environment now uses Ubuntu 14.04.5 (a7cbf72)
        Reference build environment now uses Ninja 1.7.1 (d2bc62b)
        Removed --android_compiler GYP option (5ce7fa6)
        Android build requires Android NDK r12b (5ce7fa6)
    Major changes:
        Improved Store Apps compatibility on Windows (0488082)
    Fixed issues:
        NPE in UserDictionaryToolActivity.onPostResume on Android (09b47c3)
        TritonDataCenter#273: Compilation errors in Android arm64 and mips64 build
        TritonDataCenter#373: Unexpected size bloat of the APK
        TritonDataCenter#374: Duplicate candidates after Undo
        TritonDataCenter#375: 90- is suggested from 090-
        TritonDataCenter#376: Suggestion-only user dictionary entry may not work
        TritonDataCenter#377: Abbreviation user dictionary entry may not work
        TritonDataCenter#378: Suppression word may not work
        TritonDataCenter#379: Single character noun user dictionary entry may not work
        TritonDataCenter#380: Dependency on dictionary/pos_matcher.h from session/session_server.cc is missing in GYP rules
        TritonDataCenter#382: Fix typo
    Total commits:
        84 commits.

Summary of changes between 2.17.2405.102 and 2.17.2531.102 as follows.

    Third party libraries:
        protobuf: 1a59a71 -> d5fb408
    Build related changes:
        Building Mozc for Windows requires Visual Studio 2015 update 3.
        --qtdir option is no longer supported in Linux desktop build (d003076).
    Major changes:
        Updated system dictionary.
        Removed several Shift-JIS-based normalizations on Windows (26241b0).
        Mozc for Windows requires SSE2 even on 32-bit environment.
        Mozc for Windows supports Windows 7 SP1 and later only.
        Mozc for macOS supports macOS 10.9 and later only.
        Mozc for desktop platforms (Windows, macOS, desktop Linux) supports Qt5 behind --qtver=5 GYP option.
    Fixed issues:
        Fix OOM when importing too large dictionary file on Android (5c859ae)
        TritonDataCenter#298: Fix NPE on Samsung devices on showing toast
        TritonDataCenter#315: Switch to Visual C++ 2015
        TritonDataCenter#372: Discontinue the support of Windows Vista
    Total commits:
        128 commits.

Summary of changes between 2.17.2355.102 and 2.17.2404.102 as follows.

    Third party libraries:
        protobuf: 172019c -> 1a59a71
    Build related changes:
        Building Mozc requires protobuf 3.0 or later.
        --android_stl GYP option is removed in Android build. You cannot use GNU STL to build Mozc for Android anymore.
    Major changes:
        None.
    Fixed issues:
        TritonDataCenter#369: Unexpected software keyboard layout can be chosen
        TritonDataCenter#370: Mozc keeps crashing on Android N Developer Preview 5
        TritonDataCenter#371: Shortcut word in personal dictionary should not be used for multi segment conversion
    Total commits:
        50 commits.

Summary of changes between 2.17.2323.102 and 2.17.2354.102 as follows.

    Third party libraries:
        None.
    Build related changes:
        None.
    Major changes:
        2.17.2323.102 and later commits in OSS repository preserve the original CL commit date in Google internal repository.
            Consider to specify --topo-order option to git log to see commits in the actual commit order.
        Multiple performance improvements in Android.
    Fixed issues:
        None.
    Total commits:
        32 commits.

Summary of changes between 2.17.2314.102 and 2.17.2322.102 as follows.

    Third party libraries:
        googletest: 1d53731 -> 82b11b8
        WTL: 9.0.4140 -> 9.1.5321
    Build related changes:
        Building macOS binaries now requires Ninja instead of xcodebuild.
    Major changes:
        None.
    Fixed issues:
        TritonDataCenter#247: Use ninja to build Mac binaries
        TritonDataCenter#355: Native resource leak due to the missing pthread_detach call in mozc::Thread::Detach
        TritonDataCenter#361: ImmSetCandidateWindow() with CFS_EXCLUDE isn't supported on Win Vista and Win7
    Total commits:
        15 commits.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants