nexgb: post-merge fixups and cleanups

AUTHORS, CONTRIBUTORS: still useful, add people from git log, clean up.

LICENSE: Google doesn't really grant you shit anymore.  The EU doesn't
have software patents either, so it doesn't affect me directly.

README, doc.go: erase mentions of unmaintained xgbutil.
This commit is contained in:
Přemysl Eric Janouch 2018-09-08 19:39:28 +02:00
parent 3173202cc1
commit 48fb710f35
Signed by: p
GPG Key ID: A0420B94F92B9493
14 changed files with 111 additions and 136 deletions

View File

@ -1,18 +1,26 @@
Andrew Gallant is the maintainer of this fork. What follows is the original # This is the official list of neXGB authors for copyright purposes.
list of authors for the x-go-binding. # This file is distinct from the CONTRIBUTORS file.
# This is the official list of XGB authors for copyright purposes.
# This file is distinct from the CONTRIBUTORS files.
# See the latter for an explanation. # See the latter for an explanation.
# Names should be added to this file as # Names should be added to this file as
# Name or Organization <email address> # Name or Organization <email address>
# The email address is not required for organizations. # The email address is not required for organizations.
# Please keep the list sorted.
Anthony Martin <ality@pbrane.org> Anthony Martin <ality@pbrane.org>
Firmansyah Adiputra <frm.adiputra@gmail.com> Firmansyah Adiputra <frm.adiputra@gmail.com>
Google Inc. Google Inc.
Scott Lawrence <bytbox@gmail.com> Scott Lawrence <bytbox@gmail.com>
Tor Andersson <tor.andersson@gmail.com> Tor Andersson <tor.andersson@gmail.com>
# The names above come from the original x-go-binding by Google.
# The following list pertains to BurntSushi/xgb and janouch.name/haven/nexgb:
Andrew Gallant <jamslam@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Axel Wagner <mail@merovius.de>
snyh <snyh@snyh.org>
Alessandro Arzilli <alessandro.arzilli@gmail.com>
fangyuanziti <tiziyuanfang@gmail.com>
Bryan Matsuo <bryan.matsuo@gmail.com>
Rabin Vincent <rabin@rab.in>
Přemysl Janouch <p@janouch.name>

View File

@ -1,34 +1,17 @@
Andrew Gallant is the maintainer of this fork. What follows is the original # This is the official list of people who may have contributed
list of contributors for the x-go-binding. # code to the neXGB repository.
#
# This is the official list of people who can contribute
# (and typically have contributed) code to the XGB repository.
# The AUTHORS file lists the copyright holders; this file # The AUTHORS file lists the copyright holders; this file
# lists people. For example, Google employees are listed here # lists people. For example, Google employees are listed here
# but not in AUTHORS, because Google holds the copyright. # but not in AUTHORS, because Google holds the copyright.
# #
# The submission process automatically checks to make sure
# that people submitting code are listed in this file (by email address).
#
# Names should be added to this file only after verifying that
# the individual or the individual's organization has agreed to
# the appropriate Contributor License Agreement, found here:
#
# http://code.google.com/legal/individual-cla-v1.0.html
# http://code.google.com/legal/corporate-cla-v1.0.html
#
# The agreement for individuals can be filled out on the web.
#
# When adding J Random Contributor's name to this file, # When adding J Random Contributor's name to this file,
# either J's name or J's organization's name should be # either J's name or J's organization's name should be
# added to the AUTHORS file, depending on whether the # added to the AUTHORS file.
# individual or corporate CLA was used.
# Names should be added to this file like so: # Names should be added to this file like so:
# Name <email address> # Name <email address>
# Please keep the list sorted.
Anthony Martin <ality@pbrane.org> Anthony Martin <ality@pbrane.org>
Firmansyah Adiputra <frm.adiputra@gmail.com> Firmansyah Adiputra <frm.adiputra@gmail.com>
Ian Lance Taylor <iant@golang.org> Ian Lance Taylor <iant@golang.org>
@ -37,3 +20,16 @@ Robert Griesemer <gri@golang.org>
Russ Cox <rsc@golang.org> Russ Cox <rsc@golang.org>
Scott Lawrence <bytbox@gmail.com> Scott Lawrence <bytbox@gmail.com>
Tor Andersson <tor.andersson@gmail.com> Tor Andersson <tor.andersson@gmail.com>
# The names above come from the original x-go-binding by Google.
# The following list pertains to BurntSushi/xgb and janouch.name/haven/nexgb:
Andrew Gallant <jamslam@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Axel Wagner <mail@merovius.de>
snyh <snyh@snyh.org>
Alessandro Arzilli <alessandro.arzilli@gmail.com>
fangyuanziti <tiziyuanfang@gmail.com>
Bryan Matsuo <bryan.matsuo@gmail.com>
Rabin Vincent <rabin@rab.in>
Přemysl Janouch <p@janouch.name>

View File

@ -1,42 +1,27 @@
// Copyright (c) 2009 The XGB Authors. All rights reserved. Copyright (c) 2009 The XGB Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are modification, are permitted provided that the following conditions are
// met: met:
//
// * Redistributions of source code must retain the above copyright * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer. notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the in the documentation and/or other materials provided with the
// distribution. distribution.
// * Neither the name of Google Inc. nor the names of its * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from contributors may be used to endorse or promote products derived from
// this software without specific prior written permission. this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Subject to the terms and conditions of this License, Google hereby
// grants to You a perpetual, worldwide, non-exclusive, no-charge,
// royalty-free, irrevocable (except as stated in this section) patent
// license to make, have made, use, offer to sell, sell, import, and
// otherwise transfer this implementation of XGB, where such license
// applies only to those patent claims licensable by Google that are
// necessarily infringed by use of this implementation of XGB. If You
// institute patent litigation against any entity (including a
// cross-claim or counterclaim in a lawsuit) alleging that this
// implementation of XGB or a Contribution incorporated within this
// implementation of XGB constitutes direct or contributory patent
// infringement, then any patent licenses granted to You under this
// License for this implementation of XGB shall terminate as of the date
// such litigation is filed.

View File

@ -1,5 +1,5 @@
# This Makefile is used by the developer. It is not needed in any way to build # This Makefile is used by the developer. It is not needed in any way to build
# a checkout of the XGB repository. # a checkout of the neXGB repository.
# It will be useful, however, if you are hacking at the code generator. # It will be useful, however, if you are hacking at the code generator.
# i.e., after making a change to the code generator, run 'make' in the # i.e., after making a change to the code generator, run 'make' in the
# xgb directory. This will build xgbgen and regenerate each sub-package. # xgb directory. This will build xgbgen and regenerate each sub-package.
@ -14,7 +14,7 @@ ifndef XPROTO
XPROTO=/usr/share/xcb XPROTO=/usr/share/xcb
endif endif
# All of the XML files in my /usr/share/xcb directory EXCEPT XKB. -_- # All of the XML files in my /usr/share/xcb directory except XKB, Xinput, SYNC.
# This is intended to build xgbgen and generate Go code for each supported # This is intended to build xgbgen and generate Go code for each supported
# extension. # extension.
all: build-xgbgen \ all: build-xgbgen \
@ -74,7 +74,3 @@ gofmt:
gofmt -w *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go gofmt -w *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go
colcheck *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go colcheck *.go xgbgen/*.go examples/*.go examples/*/*.go xproto/xproto_test.go
push:
git push origin master
git push github master

View File

@ -1,26 +1,28 @@
XGB is the X Go Binding, which is a low-level API to communicate with the neXGB is a fork of a fork of the X Go Binding, which is a low-level API to
core X protocol and many of the X extensions. It is closely modeled after communicate with the core X protocol and many of the X extensions.
XCB and xpyb. It is closely modelled after XCB and xpyb.
It is thread safe and gets immediate improvement from parallelism when It is thread safe and gets immediate improvement from parallelism when
GOMAXPROCS > 1. (See the benchmarks in xproto/xproto_test.go for evidence.) GOMAXPROCS > 1. (See the benchmarks in xproto/xproto_test.go for evidence.)
Please see doc.go for more info. Please see doc.go for more info.
Note that unless you know you need XGB, you can probably make your life Quick usage
easier by using a slightly higher level library: xgbutil. -----------
go get janouch.name/haven/nexgb
go run $GOPATH/src/janouch.name/haven/nexgb/examples/create-window/main.go
Quick Usage Přemysl Janouch's fork
=========== ----------------------
go get github.com/BurntSushi/xgb I've merged BurntSushi/xgb into haven as a subdirectory due to a/ inactivity
go run go/path/src/github.com/BurntSushi/xgb/examples/create-window/main.go upstream, and b/ intentions to make incompatible changes meant to be in sync
with the rest of the project.
BurntSushi's Fork It's Not Exactly XGB anymore.
=================
I've forked the XGB repository from Google Code due to inactivty upstream.
Godoc documentation can be found here: BurntSushi's fork
http://godoc.burntsushi.net/pkg/github.com/BurntSushi/xgb/ -----------------
I've forked the XGB repository from Google Code due to inactivity upstream.
Much of the code has been rewritten in an effort to support thread safety Much of the code has been rewritten in an effort to support thread safety
and multiple extensions. Namely, go_client.py has been thrown away in favor and multiple extensions. Namely, go_client.py has been thrown away in favor
@ -37,18 +39,8 @@ in tact.
I suppose I can legitimately release xgbgen under the WTFPL. To be fair, it is I suppose I can legitimately release xgbgen under the WTFPL. To be fair, it is
at least as complex as XGB itself. *sigh* at least as complex as XGB itself. *sigh*
What follows is the original README: License
-------
XGB README Unless otherwise noted, the neXGB source files are distributed
==========
XGB is the X protocol Go language Binding.
It is the Go equivalent of XCB, the X protocol C-language Binding
(http://xcb.freedesktop.org/).
Unless otherwise noted, the XGB source files are distributed
under the BSD-style license found in the LICENSE file. under the BSD-style license found in the LICENSE file.
Contributions should follow the same procedure as for the Go project:
http://golang.org/doc/contribute.html

View File

@ -1,8 +1,8 @@
I like to keep all my code to 80 columns or less. I have plenty of screen real Keep all code to 80 columns or less. We, the maintainers, have plenty of screen
estate, but enjoy 80 columns so that I can have multiple code windows open side real estate, but enjoy 80 columns so that we can have multiple code windows
to side and not be plagued by the ugly auto-wrapping of a text editor. open side to side and not be plagued by the ugly auto-wrapping of a text editor.
If you don't oblige me, I will fix any patch you submit to abide 80 columns. If you don't oblige us, we will fix any patch you submit to abide 80 columns.
Note that this style restriction does not preclude gofmt, but introduces a few Note that this style restriction does not preclude gofmt, but introduces a few
peculiarities. The first is that gofmt will occasionally add spacing (typically peculiarities. The first is that gofmt will occasionally add spacing (typically

View File

@ -1,4 +1,4 @@
package xgb package nexgb
/* /*
auth.go contains functions to facilitate the parsing of .Xauthority files. auth.go contains functions to facilitate the parsing of .Xauthority files.

View File

@ -1,4 +1,4 @@
package xgb package nexgb
/* /*
conn.go contains a couple of functions that do some real dirty work related conn.go contains a couple of functions that do some real dirty work related
@ -138,7 +138,7 @@ func (c *Conn) dial(display string) error {
} }
} }
display = display[colonIdx+1 : len(display)] display = display[colonIdx+1:]
if len(display) == 0 { if len(display) == 0 {
return errors.New("bad display string: " + display0) return errors.New("bad display string: " + display0)
} }

View File

@ -1,4 +1,4 @@
package xgb package nexgb
import ( import (
"errors" "errors"

View File

@ -1,16 +1,14 @@
/* /*
Package XGB provides the X Go Binding, which is a low-level API to communicate Package nexgb provides the X Go Binding, which is a low-level API to communicate
with the core X protocol and many of the X extensions. with the core X protocol and many of the X extensions.
It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is It is *very* closely modeled on XCB, so that experience with XCB (or xpyb) is
easily translatable to XGB. That is, it uses the same cookie/reply model easily translatable to neXGB. That is, it uses the same cookie/reply model
and is thread safe. There are otherwise no major differences (in the API). and is thread safe. There are otherwise no major differences (in the API).
Most uses of XGB typically fall under the realm of window manager and GUI kit Most uses of neXGB typically fall under the realm of window manager and GUI kit
development, but other applications (like pagers, panels, tilers, etc.) may development, but other applications (like pagers, panels, tilers, etc.) may
also require XGB. Moreover, it is a near certainty that if you need to work also require neXGB.
with X, xgbutil will be of great use to you as well:
https://github.com/BurntSushi/xgbutil
Example Example
@ -106,13 +104,13 @@ can be found in examples/xinerama.
Parallelism Parallelism
XGB can benefit greatly from parallelism due to its concurrent design. For neXGB can benefit greatly from parallelism due to its concurrent design. For
evidence of this claim, please see the benchmarks in xproto/xproto_test.go. evidence of this claim, please see the benchmarks in xproto/xproto_test.go.
Tests Tests
xproto/xproto_test.go contains a number of contrived tests that stress xproto/xproto_test.go contains a number of contrived tests that stress
particular corners of XGB that I presume could be problem areas. Namely: particular corners of neXGB that I presume could be problem areas. Namely:
requests with no replies, requests with replies, checked errors, unchecked requests with no replies, requests with replies, checked errors, unchecked
errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round errors, sequence number wrapping, cookie buffer flushing (i.e., forcing a round
trip every N requests made that don't have a reply), getting/setting properties trip every N requests made that don't have a reply), getting/setting properties
@ -120,12 +118,12 @@ and creating a window and listening to StructureNotify events.
Code Generator Code Generator
Both XCB and xpyb use the same Python module (xcbgen) for a code generator. XGB Both XCB and xpyb use the same Python module (xcbgen) for a code generator.
(before this fork) used the same code generator as well, but in my attempt to neXGB (before BurntSushi's fork) used the same code generator as well, but in my
add support for more extensions, I found the code generator extremely difficult attempt to add support for more extensions, I found the code generator extremely
to work with. Therefore, I re-wrote the code generator in Go. It can be found difficult to work with. Therefore, I re-wrote the code generator in Go. It can
in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a rough be found in its own sub-package, xgbgen, of xgb. My design of xgbgen includes a
consideration that it could be used for other languages. rough consideration that it could be used for other languages.
What works What works
@ -143,4 +141,4 @@ compiles, unlike XKB). I don't currently have any intention of getting XKB
working, due to its complexity and my current mental incapacity to test it. working, due to its complexity and my current mental incapacity to test it.
*/ */
package xgb package nexgb

View File

@ -1,4 +1,4 @@
package xgb package nexgb
/* /*
help.go is meant to contain a rough hodge podge of functions that are mainly help.go is meant to contain a rough hodge podge of functions that are mainly

View File

@ -1,4 +1,4 @@
package xgb package nexgb
// Sync sends a round trip request and waits for the response. // Sync sends a round trip request and waits for the response.
// This forces all pending cookies to be dealt with. // This forces all pending cookies to be dealt with.

View File

@ -1,4 +1,4 @@
package xgb package nexgb
import ( import (
"errors" "errors"

View File

@ -1,15 +1,15 @@
package main package main
/* /*
translation.go provides a 'Translate' method on every XML type that converts translation.go provides a 'Translate' method on every XML type that converts
the XML type into our "better" representation. the XML type into our "better" representation.
i.e., the representation of Fields and Expressions is just too general. i.e., the representation of Fields and Expressions is just too general.
We end up losing a lot of the advantages of static typing if we keep We end up losing a lot of the advantages of static typing if we keep
the types that encoding/xml forces us into. the types that encoding/xml forces us into.
Please see 'representation.go' for the type definitions that we're Please see 'representation.go' for the type definitions that we're
translating to. translating to.
*/ */
import ( import (