* How to deal with GPL paper when the contributer can not contact with?
@ 2020-09-25 1:36 tumashu
2020-09-25 2:40 ` Stefan Monnier
2020-09-26 4:32 ` Richard Stallman
0 siblings, 2 replies; 6+ messages in thread
From: tumashu @ 2020-09-25 1:36 UTC (permalink / raw)
To: emacs-devel
Hello:
When I move ivy-posframe (https://github.com/tumashu/ivy-posframe) to gnu-elpa,
I can not contact with a contributer , and I do not know his GPL paper status.
1. his patchs: https://github.com/tumashu/ivy-posframe/commits?author=noctuid
2. The length of his patchs is > 15 lines.
2. his patchs are rewrite ivy.el and swiper.el's exist functions, so many code of his patch come from ivy.el and swiper.el, ivy.el and swiper.el are gnu-elpa packages.
How should I do? wait or elimit his commit?
Other info:
1. https://github.com/tumashu/ivy-posframe
2. https://github.com/tumashu/ivy-posframe/issues/95#issuecomment-698649551
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to deal with GPL paper when the contributer can not contact with?
2020-09-25 1:36 How to deal with GPL paper when the contributer can not contact with? tumashu
@ 2020-09-25 2:40 ` Stefan Monnier
2020-09-25 4:07 ` tumashu
2020-09-26 4:32 ` Richard Stallman
1 sibling, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2020-09-25 2:40 UTC (permalink / raw)
To: tumashu; +Cc: emacs-devel
> When I move ivy-posframe (https://github.com/tumashu/ivy-posframe) to gnu-elpa,
> I can not contact with a contributer , and I do not know his GPL paper status.
>
> 1. his patchs: https://github.com/tumashu/ivy-posframe/commits?author=noctuid
> 2. The length of his patchs is > 15 lines.
Indeed, looking at those patches makes it sound like they're not quite
trivial enough.
I've also sometimes found it difficult to get in touch with some people.
Filing an issue in their repository is an alternative way to contact
them (which I have never tried, tho, because I prefer to keep my github
use to a minimum).
> 2. his patchs are rewrite ivy.el and swiper.el's exist functions, so many
> code of his patch come from ivy.el and swiper.el, ivy.el and swiper.el are
> gnu-elpa packages.
Maybe if you decompose his patches into "copy code from gnu-elpa" (his
copyright doesn't apply to this) and then "modify that new code"
(copyright does apply to that), the end result is simple enough to pass
the "15 lines or so" test.
Then again, copying code is better avoided, so maybe you can rewrite his
changes in such a way that they make use of (i.e. share code with)
ivy/swiper code rather than copying it. That would circumvent the
problem and improve the code at the same time.
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re:Re: How to deal with GPL paper when the contributer can not contact with?
2020-09-25 2:40 ` Stefan Monnier
@ 2020-09-25 4:07 ` tumashu
0 siblings, 0 replies; 6+ messages in thread
From: tumashu @ 2020-09-25 4:07 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel@gnu.org
At 2020-09-25 10:40:39, "Stefan Monnier" <monnier@iro.umontreal.ca> wrote:
>> When I move ivy-posframe (https://github.com/tumashu/ivy-posframe) to gnu-elpa,
>> I can not contact with a contributer , and I do not know his GPL paper status.
>>
>> 1. his patchs: https://github.com/tumashu/ivy-posframe/commits?author=noctuid
>> 2. The length of his patchs is > 15 lines.
>
>Indeed, looking at those patches makes it sound like they're not quite
>trivial enough.
>
>I've also sometimes found it difficult to get in touch with some people.
>Filing an issue in their repository is an alternative way to contact
>them (which I have never tried, tho, because I prefer to keep my github
>use to a minimum).
>
>> 2. his patchs are rewrite ivy.el and swiper.el's exist functions, so many
>> code of his patch come from ivy.el and swiper.el, ivy.el and swiper.el are
>> gnu-elpa packages.
>
>Maybe if you decompose his patches into "copy code from gnu-elpa" (his
>copyright doesn't apply to this) and then "modify that new code"
>(copyright does apply to that), the end result is simple enough to pass
>the "15 lines or so" test.
In his patch, I think using code from ivy.el and swiper.el is a normal thing,
for ivy-posframe-swiper-avy is just posframe version ivy-swiper-avy
and ivy-posframe-avy is posframe version ivy-avy,
If I were him, I will do same thing :-) because ivy-posframe is a melpa
package at that time, no need consider gpl paper. :-)
>
>Then again, copying code is better avoided, so maybe you can rewrite his
>changes in such a way that they make use of (i.e. share code with)
>ivy/swiper code rather than copying it. That would circumvent the
>problem and improve the code at the same time.
>
>
> Stefan
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to deal with GPL paper when the contributer can not contact with?
2020-09-25 1:36 How to deal with GPL paper when the contributer can not contact with? tumashu
2020-09-25 2:40 ` Stefan Monnier
@ 2020-09-26 4:32 ` Richard Stallman
2020-09-26 7:12 ` tumashu
1 sibling, 1 reply; 6+ messages in thread
From: Richard Stallman @ 2020-09-26 4:32 UTC (permalink / raw)
To: tumashu; +Cc: emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 2. his patchs are rewrite ivy.el and swiper.el's exist functions,
> so many code of his patch come from ivy.el and swiper.el, ivy.el
> and swiper.el are gnu-elpa packages.
> How should I do? wait or elimit his commit?
How many of those lines contain code he wrote?
There is no need to count the code that he left unchanged.
If what he wrote is short, and not crucial, then you can ignore
the copyright issue for that.
Or you can rewrite the code some other way. It sounds like that
won't be a lot of work.
--
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re:Re: How to deal with GPL paper when the contributer can not contact with?
2020-09-26 4:32 ` Richard Stallman
@ 2020-09-26 7:12 ` tumashu
2020-09-27 2:45 ` Richard Stallman
0 siblings, 1 reply; 6+ messages in thread
From: tumashu @ 2020-09-26 7:12 UTC (permalink / raw)
To: rms@gnu.org; +Cc: emacs-devel@gnu.org
At 2020-09-26 12:32:21, "Richard Stallman" <rms@gnu.org> wrote:
>[[[ To any NSA and FBI agents reading my email: please consider ]]]
>[[[ whether defending the US Constitution against all enemies, ]]]
>[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> > 2. his patchs are rewrite ivy.el and swiper.el's exist functions,
> > so many code of his patch come from ivy.el and swiper.el, ivy.el
> > and swiper.el are gnu-elpa packages.
>
> > How should I do? wait or elimit his commit?
>
>How many of those lines contain code he wrote?
>There is no need to count the code that he left unchanged.
>
>If what he wrote is short, and not crucial, then you can ignore
>the copyright issue for that.
>
>Or you can rewrite the code some other way. It sounds like that
>won't be a lot of work.
1. ivy-posframe.el
;; (defun ivy-posframe--avy-action (pt)
;; "Finish ivy session with the candidate at PT."
;; (with-current-buffer ivy-posframe-buffer
;; (ivy--done
;; (substring-no-properties
;; (nth (- (line-number-at-pos pt) 2) ivy--old-cands)))))
1. ivy.el (cdd7ada)
;; (defun ivy--avy-action (pt)
;; (when (number-or-marker-p pt)
;; (ivy--done
;; (substring-no-properties
;; (nth (- (line-number-at-pos pt) 2) ivy--old-cands)))))
about 3 lines
--------------------------------------------------------------------------
2. ivy-posframe.el
;; (defun ivy-posframe--window ()
;; "Return the posframe window displaying `ivy-posframe-buffer'."
;; (frame-selected-window
;; (buffer-local-value 'posframe--frame
;; (get-buffer ivy-posframe-buffer))))
about 5 lines
-----------------------------------------------------------------------------
3. ivy-posframe.el
;; (defvar avy-all-windows)
;; (defvar avy-keys)
;; (defvar avy-keys-alist)
;; (defvar avy-style)
;; (defvar avy-styles-alist)
;; (defvar avy-action)
;; (declare-function avy--process "avy")
;; (declare-function avy--style-fn "avy")
;; (defun ivy-posframe-avy ()
;; "Jump to one of the current ivy candidates."
;; (interactive)
;; (unless (require 'avy nil 'noerror)
;; (error "Package avy isn't installed"))
;; (unless (boundp 'avy-pre-action)
;; (error "A newer version of avy is required for this command"))
;; (let* ((avy-all-windows nil)
;; (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
;; avy-keys))
;; (avy-style (or (cdr (assq 'ivy-avy
;; avy-styles-alist))
;; avy-style))
;; ;; prevent default pre action, which calls
;; ;; `select-frame-set-input-focus', deselecting the minibuffer and
;; ;; causing `ivy-posframe-cleanup' to run prematurely
;; (avy-pre-action #'ignore)
;; (window (ivy-posframe--window))
;; candidates)
;; (with-current-buffer ivy-posframe-buffer
;; (save-excursion
;; (save-restriction
;; (narrow-to-region
;; (window-start window)
;; (window-end window))
;; (goto-char (point-min))
;; (forward-line)
;; (while (< (point) (point-max))
;; (push (cons (point) window) candidates)
;; (forward-line)))))
;; (setq avy-action #'ivy-posframe--avy-action)
;; (avy--process
;; (nreverse candidates)
;; (avy--style-fn avy-style))))
3. ivy.el (cdd7ada)
;; (defun ivy-avy ()
;; "Jump to one of the current ivy candidates."
;; (interactive)
;; (unless (require 'avy nil 'noerror)
;; (error "Package avy isn't installed"))
;; (let* ((avy-all-windows nil)
;; (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
;; avy-keys))
;; (avy-style (or (cdr (assq 'ivy-avy avy-styles-alist))
;; avy-style))
;; (avy-action #'ivy--avy-action))
;; (avy--process
;; (ivy--avy-candidates))))
;; (defun ivy--avy-candidates ()
;; (let (candidates)
;; (save-excursion
;; (save-restriction
;; (narrow-to-region
;; (window-start)
;; (window-end))
;; (goto-char (point-min))
;; (forward-line)
;; (while (< (point) (point-max))
;; (push
;; (cons (point)
;; (selected-window))
;; candidates)
;; (forward-line))))
;; (nreverse candidates)))
about 5 lines without count (defvar xxx)
------------------------------------------------------------------------------
4. ivy-posframe.el
;; (declare-function avy--make-backgrounds "avy")
;; (declare-function avy-window-list "avy")
;; (declare-function avy-read-de-bruijn "avy")
;; (declare-function avy-read "avy")
;; (declare-function avy-tree "avy")
;; (declare-function avy--overlay-post "avy")
;; (declare-function avy--remove-leading-chars "avy")
;; (declare-function avy-push-mark "avy")
;; (declare-function avy--done "avy")
;; (defun ivy-posframe--swiper-avy-candidate ()
;; (let* ((avy-all-windows nil)
;; ;; We'll have overlapping overlays, so we sort all the
;; ;; overlays in the visible region by their start, and then
;; ;; throw out non-Swiper overlays or overlapping Swiper
;; ;; overlays.
;; (visible-overlays (cl-sort (with-ivy-window
;; (overlays-in (window-start)
;; (window-end)))
;; #'< :key #'overlay-start))
;; (min-overlay-start 0)
;; (overlays-for-avy (cl-remove-if-not
;; (lambda (ov)
;; (when (and (>= (overlay-start ov)
;; min-overlay-start)
;; (memq (overlay-get ov 'face)
;; swiper-faces))
;; (setq min-overlay-start (overlay-start ov))))
;; visible-overlays))
;; (offset (if (eq (ivy-state-caller ivy-last) 'swiper) 1 0))
;; (window (ivy-posframe--window))
;; (candidates (nconc
;; (mapcar (lambda (ov)
;; (cons (overlay-start ov)
;; (overlay-get ov 'window)))
;; overlays-for-avy)
;; (with-current-buffer ivy-posframe-buffer
;; (save-excursion
;; (save-restriction
;; (narrow-to-region (window-start window)
;; (window-end window))
;; (goto-char (point-min))
;; (forward-line)
;; (let (cands)
;; (while (not (eobp))
;; (push (cons (+ (point) offset) window)
;; cands)
;; (forward-line))
;; cands)))))))
;; (unwind-protect
;; (prog2
;; (avy--make-backgrounds
;; (append (avy-window-list)
;; (list (ivy-state-window ivy-last))))
;; (if (eq avy-style 'de-bruijn)
;; (avy-read-de-bruijn candidates avy-keys)
;; (avy-read (avy-tree candidates avy-keys)
;; #'avy--overlay-post
;; #'avy--remove-leading-chars))
;; (avy-push-mark))
;; (avy--done))))
4. ivy.el (cdd7ada)
;; (defun swiper--avy-candidate ()
;; (let* ((avy-all-windows nil)
;; ;; We'll have overlapping overlays, so we sort all the
;; ;; overlays in the visible region by their start, and then
;; ;; throw out non-Swiper overlays or overlapping Swiper
;; ;; overlays.
;; (visible-overlays (cl-sort (with-ivy-window
;; (overlays-in (window-start)
;; (window-end)))
;; #'< :key #'overlay-start))
;; (min-overlay-start 0)
;; (overlays-for-avy (cl-remove-if-not
;; (lambda (ov)
;; (when (and (>= (overlay-start ov)
;; min-overlay-start)
;; (memq (overlay-get ov 'face)
;; swiper-faces))
;; (setq min-overlay-start (overlay-start ov))))
;; visible-overlays))
;; (offset (if (eq (ivy-state-caller ivy-last) 'swiper) 1 0))
;; (candidates (nconc
;; (mapcar (lambda (ov)
;; (cons (overlay-start ov)
;; (overlay-get ov 'window)))
;; overlays-for-avy)
;; (save-excursion
;; (save-restriction
;; (narrow-to-region (window-start) (window-end))
;; (goto-char (point-min))
;; (forward-line)
;; (let ((win (selected-window))
;; cands)
;; (while (not (eobp))
;; (push (cons (+ (point) offset) win)
;; cands)
;; (forward-line))
;; cands))))))
;; (unwind-protect
;; (prog2
;; (avy--make-backgrounds
;; (append (avy-window-list)
;; (list (ivy-state-window ivy-last))))
;; (if (eq avy-style 'de-bruijn)
;; (avy-read-de-bruijn candidates avy-keys)
;; (avy-read (avy-tree candidates avy-keys)
;; #'avy--overlay-post
;; #'avy--remove-leading-chars))
;; (avy-push-mark))
;; (avy--done))))
about 3 line without count (defvar xxx)
-----------------------------------------------------------------
the rest code have been rewrite by me.
----------------------------------------------------------------
>
>--
>Dr Richard Stallman
>Chief GNUisance of the GNU Project (https://gnu.org)
>Founder, Free Software Foundation (https://fsf.org)
>Internet Hall-of-Famer (https://internethalloffame.org)
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-09-27 2:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-25 1:36 How to deal with GPL paper when the contributer can not contact with? tumashu
2020-09-25 2:40 ` Stefan Monnier
2020-09-25 4:07 ` tumashu
2020-09-26 4:32 ` Richard Stallman
2020-09-26 7:12 ` tumashu
2020-09-27 2:45 ` Richard Stallman
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.