[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Introduce wrapper package of linuxbrew into Debian



On Tue, 2015-08-25 at 09:54 +0000, Gianfranco Costamagna wrote:
> 1) I did a build&install of the package, and I can't make it work
> 
> 
> 
> brew install cmake
> brew
> brew --help
> linuxbrew --help
> 
> returns nothing

Oops...Sorry for that...
By mistake I introduced this bug into the wrapper script.
Patch [1] fixes this bug. And it was fixed in the freshly uploaded
mentor package.

The first time running brew should be similar as following:

$ brew
Maybe you are the first time running brew/linuxbrew,
here are some hints:
* Modify your PATH,MANPATH,INFOPATH environment to utilize software
  installed by linuxbrew.
  + See example file /usr/share/doc/linuxbrew/examples/profile

==> This script will install:
/home/lumin/.linuxbrew/bin/brew
/home/lumin/.linuxbrew/Library/...
/home/lumin/.linuxbrew/share/man/man1/brew.1

Press RETURN to continue or any other key to abort

> 2) man brew doesn't work, man linuxbrew works

Please note that, the linuxbrew installer will pull a manpage of brew
(as above /home/lumin/.linuxbrew/share/man/man1/brew.1)
into ~/.linuxbrew/share/man/man1/brew.1

And after you changed MANPATH ENV, man brew should work.
(export MANPATH="${HOME}/.linuxbrew/share/man:${MANPATH}")

And hence I provided no manpage for `brew` but only `linuxbrew`,
and overrode the lintian missing-manpage /usr/bin/brew
(/usr/bin/brew is symlink -> /usr/bin/linuxbrew),
avoiding conflict with pulled brew manpage.

> 3) looking at the source, in first_time_hint the example file have a wrong location
> + See example file /usr/share/doc/linuxbrew/examples/profile

And this is another packaging bug, which is remained 
when I changed package name from "linuxbrew" to 
"linuxbrew-wrapper".

I have wrote wrong path in linuxbrew-wrapper.install:

 debian/bin/linuxbrew   usr/bin/
-install                usr/lib/linuxbrew/
+install                usr/lib/linuxbrew-wrapper/
 
> maybe you mean
> 
> /usr/share/doc/linuxbrew-wrapper/examples/profile
> 
> (and that function is never called on my system)

Not being called is a BUG, and I've fixed it and tested it
as said above.

> 4) I see an install file, but it has no +x, so it can't be run
> sudo chmod +x /usr/lib/linuxbrew/install
> 
> shouldn't the end user know that he needs to manually run the installation?

That install script should be automatically invoked by wrapper script
/usr/bin/linuxbrew. And letting users to manually run that script
is not what I want, since that way is always available.

Now the wrapper script BUG is fixed, and users the first time
run brew will see the install process is automated.

My local built latest package ships an `/usr/lib/linuxbrew-wrapper/install`
with (0755/-rwxr-xr-x). I don't know what happend
rendering your /usr/lib/linuxbrew-wrapper/install lost the read mode.

I installed that file in linuxbrew-wrapper.install:
install  usr/lib/linuxbrew-wrapper/

Maybe I should add somthing into d/rules to make sure 
that install script is installed with r mode?

Additionally, the wrapper script /usr/bin/linuxbrew is designed to
be able to accept a install script without r mode, and it runs
 ruby $INSTALL
to do that install process.

> after running install almost everything works as expected, so maybe its just
> a matter of tweaking the script for some bits, and setting the +x to the file
> (after mentioning $somewhere that it needs to be run).
> 
> What about doing that in a postinst script?

Invoke it in postinst is not proper, I believe.

> (sorry for this late mail, but I usually install stuff only when packaging
> looks good to me :) )

> BTW I'm installing cmake right now :) (with all the ton of build-dependencies)
> 
> I really appreciate this software, I think Debian folks will enjoy it!

Thank you for attention to this package, and thank you
for finding so many my mistakes. I've learnt a lot
within this ITP process as it is my 3rd debian package.

The latest uploaded package, should bring you better felling :-)

[1]
diff --git a/debian/bin/linuxbrew b/debian/bin/linuxbrew
index 72f0233..308b3ee 100755
--- a/debian/bin/linuxbrew
+++ b/debian/bin/linuxbrew
@@ -62,11 +62,11 @@ elif [ -d ${LINUXBREW_PREFIX} ]; then
   printf "Please check that directory.\n"
   false
 elif [ -x ${BREW_INSTALL} ]; then
-  first_time_hint ()
+  first_time_hint
   exec ${BREW_INSTALL}
 elif [ -r ${BREW_INSTALL} ]; then
   if [ -x $(which ruby) ]; then
-    first_time_hint ()
+    first_time_hint
     ruby ${BREW_INSTALL}
   else
     printf "E: found no ruby interpreter to run linuxbrew installer.\n"

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: