This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours
Bug 461484 - Review Request: twin - Textmode window environment for Linux
Review Request: twin - Textmode window environment for Linux
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Nobody's working on this, feel free to take it
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-09-08 10:14 EDT by Milos Jakubicek
Modified: 2012-12-19 03:53 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-12-19 03:53:08 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
wolfy: fedora‑review?


Attachments (Terms of Use)

  None (edit)
Description Milos Jakubicek 2008-09-08 10:14:40 EDT
Spec URL: http://mjakubicek.fedorapeople.org/twin/twin.spec
SRPM URL: http://mjakubicek.fedorapeople.org/twin/twin-0.6.0-1.fc9.src.rpm
Description: Twin is a text-mode windowing environment: it draws and manages text windows on a text-mode display, like X11 does for graphical windows. It has a built-in window manager and terminal emulator, and can be used as server for remote clients in the same style as X11. It can display on Linux console, on X11 and inside itself.

Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=813355
Comment 1 Max Spevack 2008-09-13 07:49:41 EDT
+1 for wanting to see this reviewed and in Fedora.
Comment 2 manuel wolfshant 2008-09-13 22:09:17 EDT
I'll do a full review in a couple of days. Meanwhile, could you please try to preserve the timestamps (by using a touch -r after iconv and using install="INSTALL-p") ? Now all files (but those included with %doc), including the source from -devel, get the rpmbuilding time

As a sidenote, I tested it in Centos 5 and it failed to see my USB mouse. gpm was running. Is it normal / expected  / or maybe untested ?
Comment 3 Milos Jakubicek 2008-09-15 11:34:22 EDT
(In reply to comment #2)
> I'll do a full review in a couple of days. Meanwhile, could you please try to
> preserve the timestamps (by using a touch -r after iconv and using
> install="INSTALL-p") ? Now all files (but those included with %doc), including
> the source from -devel, get the rpmbuilding time

Fixed, I hope I didn't miss anything because unfortunately the sources are very inconsistent regarding the usage of 'install'.

> As a sidenote, I tested it in Centos 5 and it failed to see my USB mouse. gpm
> was running. Is it normal / expected  / or maybe untested ?

Untested, I'll look at it later.

New spec file: http://mjakubicek.fedorapeople.org/twin/twin.spec
New SRPM: http://mjakubicek.fedorapeople.org/twin/twin-0.6.0-2.fc9.src.rpm

(There are also x86_64 RPMs in the same directory available)
Comment 4 manuel wolfshant 2008-09-15 18:07:40 EDT
 There seem to be a couple of problems:
- gpm-devel is needed as BR in order to get a functional mouse (at least on C5)
- since you package twsetroot, I suggest including (in %doc) the README.twsetroot file and maybe setroot.sample too. In the /docs directory there are also some other files which seem to have interesting content (diagram.txt, FAQ). Do you have a special reason to not include them in the final rpm ?

 And now the real problems:
- twmapscrn is built against the clients/mapscrn folder which seems to contain a private (old and slightly modified) copy of kbd (ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/kbd-1.06.tar.gz), which in turn is a system package. As usage of private copies of system libs is explicitly forbidden, I'd say we have an issue here
- from the licensing point of view, we have a small mess
a) lots of files have headers defining them as GPLv2+ (good)
b) headers of some other files specifu Public Domain as license (good again)
c) however  there are several files ( for instance clients/threadtest.c and many files under /lib  ) which have no license specified. What reason can we invoke in order to assume that they are like all the others, Public Domain or GPLv2+ ? 
  In addition to that, the sourcefarge page of the project (http://sourceforge.net/projects/twin/) claims that the project is licensed as GPL and LGPL, but LGPL is only mentioned in the source through the presence of the standard LGPL license file; I have not been able to locate any other trace of it. Public Domain + GPLv2+ = no problem, but the presence of files with no specific license make me ask for help. Anyone more experienced in licensing willing to shed some light ?
Comment 5 Milos Jakubicek 2008-10-03 04:27:51 EDT
(In reply to comment #4)

Sorry for the delay,

>  There seem to be a couple of problems:
> - gpm-devel is needed as BR in order to get a functional mouse (at least on C5)

Unfortunately I can't get it working even with BR: gpm-devel (outside of X of course), I'm still getting:

GPM_InitMouse() failed: unable to connect to `gpm'.
make sure you started `twin' from the console
and/or check that `gpm' is running.
xterm_InitMouse() failed: this `linux' terminal
has no support for xterm-style mouse reporting.

I'll try to contact author in order to fix this.

> - since you package twsetroot, I suggest including (in %doc) the
> README.twsetroot file and maybe setroot.sample too. In the /docs directory
> there are also some other files which seem to have interesting content
> (diagram.txt, FAQ). Do you have a special reason to not include them in the
> final rpm ?

No, I'll include them of course, thanks for hint.

>  And now the real problems:
> - twmapscrn is built against the clients/mapscrn folder which seems to contain
> a private (old and slightly modified) copy of kbd
> (ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/kbd-1.06.tar.gz), which in turn
> is a system package. As usage of private copies of system libs is explicitly
> forbidden, I'd say we have an issue here

Hm, I just tried to remove twmapscrn and symlink it to the mapscrn provided by kbd -- and it works. I'll do more tests to check whether it really works, but if yes, this would be solution, wouldn't it?


> - from the licensing point of view, we have a small mess
> a) lots of files have headers defining them as GPLv2+ (good)
> b) headers of some other files specifu Public Domain as license (good again)
> c) however  there are several files ( for instance clients/threadtest.c and
> many files under /lib  ) which have no license specified. What reason can we
> invoke in order to assume that they are like all the others, Public Domain or
> GPLv2+ ? 
>   In addition to that, the sourcefarge page of the project
> (http://sourceforge.net/projects/twin/) claims that the project is licensed as
> GPL and LGPL, but LGPL is only mentioned in the source through the presence of
> the standard LGPL license file; I have not been able to locate any other trace
> of it. Public Domain + GPLv2+ = no problem, but the presence of files with no
> specific license make me ask for help. Anyone more experienced in licensing
> willing to shed some light ?

CC'ing Tom Callaway: do we have to ask upstream to specify license in each file?
Comment 6 manuel wolfshant 2008-10-03 04:45:48 EDT
ref:
 gpm: waiting for solution. 
 docs: excellent, thanks
 twmapscrn: of course, as long as you make sure all the deps are required/buildrequired.
 license: waiting for advices
Comment 7 Milos Jakubicek 2009-01-02 15:37:05 EST
(In reply to comment #6)

OK, just to let you know I didn't forget about this:

> ref:
>  gpm: waiting for solution. 

Fixed, this was plain wrong on my side.

>  docs: excellent, thanks
>  twmapscrn: of course, as long as you make sure all the deps are
> required/buildrequired.
>  license: waiting for advices

Waiting for upstream reaction -- still:( I finally succeeded to contact the author (e-mail address didn't work anymore), today I sent the second request to fix the license problem, I hope I'll get an answer (soon).

Thank you for your patience.
Comment 8 Milos Jakubicek 2009-02-17 12:03:20 EST
OK, finally there is a new upstream release solving the licensing issues:

New SPEC file: http://mjakubicek.fedorapeople.org/twin/twin.spec
New SRPM: http://mjakubicek.fedorapeople.org/twin/twin-0.6.1-1.fc10.src.rpm

I've also tested that it builds with gcc 4.4, see the koji scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=1133535
Comment 9 Milos Jakubicek 2009-02-17 16:12:08 EST
...just forgot to mention that I've also created and packaged a LICENSING.INFO file which recapitulates the state of licensing, there are finally 5 licenses in use:(

"
MIT: admin/install-sh
Public domain:  admin/mkinstalldirs clients/{cat.c,clip.c,clutter.c,demo.c,demo2.c,demo3.c,findtwin.c,lsobj.c,restackM.c,restackW.c,sendmsg.c,sysmon.c}
                include/md5.h,server/{md5.c,wrapper.c}
BSD with advertising: include/my_ttydefaults.h
LGPLv2+: lib/*
GPLv2+: others
"
Comment 10 Tom "spot" Callaway 2009-02-17 16:44:37 EST
Normally, the BSD with advertising file would be a problem, but the Copyright holder on that file is The Regents of the University of California, and they issued a blanket statement years ago dropping that clause.

ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

You should tell upstream about this, and have them drop the advertising clause in their copy of that code. You also need to correct the License tag to drop the advertising clause.

Aside from that issue, it looks okay.
Comment 11 manuel wolfshant 2009-02-20 11:55:18 EST
More a "pong" than a review, I';; be back a bit later:

rpmlint of twin:
twin.x86_64: W: file-not-utf8 /usr/share/doc/twin-0.6.1/setroot.sample
twin.x86_64: W: spurious-executable-perm /usr/share/doc/twin-0.6.1/LICENSING.INFO
twin.x86_64: W: file-not-utf8 /usr/share/doc/twin-0.6.1/README.twsetroot

More serious stuff, I am a bit puzzled by this snipplet from the build log (http://koji.fedoraproject.org/koji/getfile?taskID=1133537&name=build.log ):
checking for X... 
libraries , headers 
checking X11/xpm.h usability... 
no
checking X11/xpm.h presence... 
no
checking for X11/xpm.h... 
no
checking for XpmReadFileToPixmap in -lXpm... 
no
checking for gtk-config... 
no
checking gtk/gtk.h usability... 
no
checking gtk/gtk.h presence... 
no
checking for gtk/gtk.h... 
no
checking for gtk_init in -lgtk... 
no

It seems that BR gtk2-devel is not sufficient ?
Comment 12 Milos Jakubicek 2009-02-20 20:13:24 EST
(In reply to comment #11)
> More a "pong" than a review, I';; be back a bit later:
> 
> rpmlint of twin:
> twin.x86_64: W: file-not-utf8 /usr/share/doc/twin-0.6.1/setroot.sample
> twin.x86_64: W: spurious-executable-perm
> /usr/share/doc/twin-0.6.1/LICENSING.INFO
> twin.x86_64: W: file-not-utf8 /usr/share/doc/twin-0.6.1/README.twsetroot

Ah, forgot to rpmlint again, sorry, fixed.

> More serious stuff, I am a bit puzzled by this snipplet from the build log
> (http://koji.fedoraproject.org/koji/getfile?taskID=1133537&name=build.log ):
[...]
> checking for gtk-config... 
> no
[...]
> It seems that BR gtk2-devel is not sufficient ?

Yeah, gtk-config is in gtk+-devel, thanks for noticing that!

New SPEC file: http://mjakubicek.fedorapeople.org/twin/twin.spec
New SRPM: http://mjakubicek.fedorapeople.org/twin/twin-0.6.1-2.fc10.src.rpm
Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1143787

P.S. The BSD/BSD with advertising issue is just pending releasing new sources from upstream, should be soon (probably without bumping release number), I've modified the licensing info in spec file in advance.
Comment 13 manuel wolfshant 2009-02-21 05:42:18 EST
libXpm-devel was also missing as BR and the date of the last changelog entry was wrong (Fridat was Feb 20, not 21)

new koji scratch build at http://koji.fedoraproject.org/koji/taskinfo?taskID=1144478. I'll do the review later today.
Comment 14 manuel wolfshant 2009-02-23 06:35:33 EST
I've tried to use the package (both with and without the libXpm-devel BR) in a F-10 guest and results were... strange:
- if run from a GUI (direct access from the VM GUI), I can see the message "press PAUSE or mouse right button for menu" on the topmost line of the screen. The rest of the screen is filled with an ugly backgroun, vaguely similar to a text screen (the aspect from the turbo vision GUI from the '90s ) full of stars (one star per cell). The only way to interact is to press the right button of the mouse, keep it pressed while moving over the desired menu entry and release the button only after the mouse is over the desired entry. Not the most intuitive interface... I've never seen that before on any system that I've worked with, since the era of SFDX 
- if run from a text console (ssh from the host text console), the mouse is not detected at all (I am offered the choice RETURN to start the app without mouse support or CTRL-C to kill it). After starting without mouse support, I failed to identify the right keyboard combination to trigger any menu action. The screen is once again filled with some blue-ish sort of background
Comment 15 Milos Jakubicek 2009-02-24 12:40:50 EST
(In reply to comment #14)
> I've tried to use the package (both with and without the libXpm-devel BR) in a

I'll add the BR as soon as there will be new sources with fixing the very last licensing problem (BSD with ad.)

> F-10 guest and results were... strange:
> - if run from a GUI (direct access from the VM GUI), I can see the message
> "press PAUSE or mouse right button for menu" on the topmost line of the screen.
> The rest of the screen is filled with an ugly backgroun, vaguely similar to a
> text screen (the aspect from the turbo vision GUI from the '90s ) full of stars
> (one star per cell). The only way to interact is to press the right button of
> the mouse, keep it pressed while moving over the desired menu entry and release
> the button only after the mouse is over the desired entry. Not the most
> intuitive interface... I've never seen that before on any system that I've
> worked with, since the era of SFDX 

Yes, me too, and I'm afraid this was intended (but I'll ask upstream to make sure it is not just misconfiguration or something like that).

> - if run from a text console (ssh from the host text console), the mouse is not
> detected at all (I am offered the choice RETURN to start the app without mouse
> support or CTRL-C to kill it). After starting without mouse support, I failed
> to identify the right keyboard combination to trigger any menu action. The
> screen is once again filled with some blue-ish sort of background

Please make sure that gpm is running (service gpm start) -- ?
Comment 16 Milos Jakubicek 2009-02-24 16:15:53 EST
(In reply to comment #14)
> - if run from a GUI (direct access from the VM GUI), I can see the message
> "press PAUSE or mouse right button for menu" on the topmost line of the screen.
> The rest of the screen is filled with an ugly backgroun, vaguely similar to a
> text screen (the aspect from the turbo vision GUI from the '90s ) full of stars
> (one star per cell). The only way to interact is to press the right button of
> the mouse, keep it pressed while moving over the desired menu entry and release
> the button only after the mouse is over the desired entry. Not the most
> intuitive interface... I've never seen that before on any system that I've
> worked with, since the era of SFDX 

I'm quoting the reply from upstream:

"
First of all, twin is not really supposed to be run inside a generic terminal
(or terminal emulator) as the features will be limited and the display will
look ugly (stars instead of pseudo-graphic characters, limited or missing
mouse support, ...)
For the best experience it is supposed to be used on Linux console or,
if you feel silly, inside an X11 session with an Unicode font or inside
itself.

As for the retro look reminding Turbo Vision GUI, it is intentional.
After all, twin means Text-mode WINdowing environment.

The look-and-feel can be customized up to a certain limit, but basicly
twin is supposed to sit "in the background" while the user interacts with
windows drawn inside it.
So, maybe the default configuration should start at least a maximized terminal
with user's shell running in it...

Also, trying to judge twin _server_ user interface is a bit funny:
it's like saying that running X11 server from the command line brings up
a checkered background with a cross-shaped mouse pointer and you cannot
do anything useful with it.
While technically true, it's not how users are supposed to use X11:
just as people use window managers or desktop environments (kde/gnome/...)
running inside X11, it would be more fair (and useful) to comment at least
twdm or twterm running inside twin.
"

The sources have been updated, I've changed the source URL to SourceForge.net on upstream's demand, added BR: libXpm-devel, fixed the typo in changelog:

New SPEC file: http://mjakubicek.fedorapeople.org/twin/twin.spec
New SRPM: http://mjakubicek.fedorapeople.org/twin/twin-0.6.1-3.fc10.src.rpm
Comment 17 Milos Jakubicek 2009-02-24 16:25:32 EST
Manuel, I'm just considering that I'd include also the small twutils (contains a kcalc-like app for twin) and xmms-twin sources into this one package (please look at http://linuz.sns.it/~max/twin/) -- what do you think about it? For me it doesn't seem to be worth making extra packages for all of them.

Sorry for mass-mailing today, I was talking a lot with upstream etc.
Comment 18 manuel wolfshant 2009-02-25 04:15:07 EST
Explanations are sane enough and to be honest I am not surprised, which is why I tried to run it from a plain console, too. I'll test the new version too, but gpm was always started and the mouse was not working, so I guess there is (was ? ) a bug somewhere ... maybe in the mouse detection code ?

As of twutils and xmms-twin, I would create separate binary packages, even if coming from the same src.rpm. After all they are different projects, aren't they ?
Comment 19 Milos Jakubicek 2009-03-07 22:26:04 EST
(In reply to comment #18)
> As of twutils and xmms-twin, I would create separate binary packages, even if
> coming from the same src.rpm. After all they are different projects, aren't
> they ?  

Of course -- that's what I meant...needed a bit upstream communication regarding this, but finally we have it here:

New SPEC file: http://mjakubicek.fedorapeople.org/twin/twin.spec
New SRPM: http://mjakubicek.fedorapeople.org/twin/twin-0.6.1-4.fc10.src.rpm

Unfortunately xmms-twin segfaults right after startup, hence I'll disable the whole subpackage then until this works (maybe this is a x86_64 issue, haven't verified yet).
Comment 20 manuel wolfshant 2009-03-14 19:15:31 EDT
Things look mostly OK. A small issue is that part of the documentation is included twice:
-rw-r--r--    1 root    root                    18302 Feb 17 02:32 /usr/share/doc/twin-0.6.1/COPYING
-rw-r--r--    1 root    root                    25633 Feb 17 02:32 /usr/share/doc/twin-0.6.1/COPYING.LIB
-rw-r--r--    1 root    root                    48139 Feb 17 03:04 /usr/share/doc/twin-0.6.1/Changelog.txt
--rw-r--r--    1 root    root                     3620 Feb 17 02:32 /usr/share/doc/twin-0.6.1/README
-rw-r--r--    1 root    root                    18302 Feb 17 02:32 /usr/share/twin/COPYING
-rw-r--r--    1 root    root                    25633 Feb 17 02:32 /usr/share/twin/COPYING.LIB
-rw-r--r--    1 root    root                    48139 Feb 17 03:04 /usr/share/twin/Changelog.txt
-rw-r--r--    1 root    root                     3620 Feb 17 02:32 /usr/share/twin/README

And INSTALL (under share/twin) is useless I presume


I'll come back with a full review after I do a koji build for F10 + tests
Comment 21 manuel wolfshant 2009-03-17 19:22:11 EDT
First tests say that twin is not selinux-happy. When tryng to start te application I get the message:

twfindtwin: error while loading shared libraries: /usr/lib/libTw.so.4: cannot restore segment prot after reloc: Permission denied

and audit.log reveals:

type=AVC msg=audit(1235075038.804:69): avc:  denied  { execmod } for  pid=2256 comm="twin_real" path="/usr/lib/libTw.so.4.6.1" dev=dm-0 ino=149161 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file

later on, as soon as I started to test the various programs included in the package I got:

type=AVC msg=audit(1237006694.766:49): avc:  denied  { execmod } for  pid=3240 comm="twdetach" path="/usr/lib/libTw.so.4.6.1" dev=dm-0 ino=149160 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=system_u:object_r:lib_t:s0 tclass=file


according to http://danwalsh.livejournal.com/6117.html?thread=23525 this message usually reveals a bug in the code.
I have used chcon -t textrel_shlib_t to get over it and the application starts and runs after that.
Comment 22 Susi Lehtola 2009-05-15 11:25:54 EDT
The license header is wrong, it should be just GPLv2+. The license header refers to the license of the compiled binary; even if the sources are under (GPLv2+ and LGPLv2+ and MIT and Public Domain and BSD) every license used is compatible with GPLv2+ which thus overrides everything.
Comment 23 Tom "spot" Callaway 2009-05-15 12:23:01 EDT
Well, actually, it's not "wrong", its just "overly thorough". The license on the compiled binary is actually "GPLv2+ and LGPLv2+ and MIT and Public Domain and BSD". In reality, that simplifies down to meaning the exact same thing as "GPLv2+", but it doesn't make the original assertion incorrect.

I generally leave it up to maintainers on whether they wish to be overly verbose or not.
Comment 24 Susi Lehtola 2009-05-15 12:35:28 EDT
(In reply to comment #23)
> Well, actually, it's not "wrong", its just "overly thorough". The license on
> the compiled binary is actually "GPLv2+ and LGPLv2+ and MIT and Public Domain
> and BSD". In reality, that simplifies down to meaning the exact same thing as
> "GPLv2+", but it doesn't make the original assertion incorrect.
> 
> I generally leave it up to maintainers on whether they wish to be overly
> verbose or not.  

Right; it's more of an issue of clarity and terseness.
Comment 25 Susi Lehtola 2011-12-16 04:56:21 EST
Ping Milos, Manuel?
Comment 26 Miroslav Suchý 2012-12-19 03:53:08 EST
There is an year of inactivity from submiter. Closing. If you decide to continue, please reopen.

Note You need to log in before you can comment on or make changes to this bug.