Bastian Eicher | 17 May 02:07

Re: Experimental "app" support

> 2. Desktop integration: the Windows version already has a concept of
> applications which are "integrated" into the environment (e.g. adding
> shell commands and menu entries). I think this makes sense. Apps bring
> this to POSIX systems too (though currently a single shell command is
> the only launcher allowed). Bastian, could we merge these systems
> somehow?
I certainly hope so.

The Windows version provides the commands "0install add-app", "0install integrate-app" and "0install remove-app".
%appdata%\0install.net\desktop-integration\app-list.xml stores the current configuration, i.e.
which applications are integrated in what fashion.  This enables the current set of integrations to be
repaired/reapplied, synced to other machines or rolled back.

Since a number of Windows integration points require dedicated executables instead of a command-lines
like "0launch URI", the desktop integration code automatically generates stub executables (similar to
0alias) as needed.
How about using the same commands and app-list.xml backing storage for POSIX but generate app bundle
directories as your branch does instead of stub executables?

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Dave Abrahams | 16 May 06:54
Picon
Picon
Favicon
Gravatar

More connection pooling?


When I download feeds with refresh for
http://ryppl.github.com/feeds/boost/bind-src.xml it looks like we are
seeing another logjam of connections to the server while it tries to
fetch all the dependency feeds.  I'm not sure that's the culprit, but it
sure seems ridiculously slow.  Thomas, do you think you could add
connection pooling for that case also?

Thanks,

--

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Dave Abrahams | 15 May 22:19
Picon
Picon
Favicon
Gravatar

A little guidance


I want to make 0compile on windows do all of its archive downloads by
invoking the windows-ported 0install tool, i.e. "0install download
<whatever>".  I think this is quite doable and I started crawling
through the source looking for where to hook the code... but I figured
someone more familiar with the implementation could save me lots of
time.

I was looking at two strategies:

1. Override some methods of fetch.Fetcher.  If that's the best approach
   I'd like to know which ones to override.

2. Add a RetrievalMethod that's always considered "best" and delegates
   the work to the windows 0install command.  If that's the best
   approach I'd like to know what's supposed to be in a RetrievalMethod
   (there's really nothing in the API docs) and any details of the
   0install command it should invoke.

If there's a better strategy of course, I'm all ears.

Thanks in advance!

--

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

------------------------------------------------------------------------------
Live Security Virtual Conference
(Continue reading)

Dave Abrahams | 15 May 14:20
Picon
Picon
Favicon
Gravatar

An apparent solver/driver limitation I'd like to overcome

When the solver finds a dependency for which there's only a source
feed, it fails.  I'd like it to assume the source feed can be built,
and thus act as though the necessary binary is available.  Is there a
way to do that?

--

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Tim Diels | 15 May 12:33
Picon

Dealing with hardcoded paths, intercepting system calls in general: sysintercept

I have a tool under way that will help deal with hardcoded paths on 
windows. This should make it easier for (haskell, ...) programs to be 
used with zeroinstall.

The tool: sysintercept: https://github.com/limyreth/sysintercept

I succesfully managed to redirect a file read by a haskell program of 
a.txt to b.txt. I should be able to extend this to replace the cabal 
prefix so these binaries can be relocated. In fact, I'll extend it to be 
able to replace any path by regex replacement.

To distribute a (haskell) binary with it, you'd use sysintercept as a 
runner. Sysintercept launches the program, injects a dll into the child 
process, does some patching of kernel32 and then intercepts all system 
calls related to file paths. The overhead of all this is mostly a couple 
of ifs per system call, there's no slow emulation.

The tool is currently still unusable as it's just a hardcoded test for 
this one haskell program. I'm busy with school at the moment, so it 
probably won't be ready any time soon, just thought I'd give a heads up.

Note: it can intercept any win32 system call, but I'll start out with 
just file path replacements. I might add other things like keyboard 
translation later.

Note: I've only tested it on a 32 bit windows XP

--

-- 
Kind regards

(Continue reading)

Tim Cuthbertson | 14 May 14:13
Favicon
Gravatar

Re: Experimental "app" support

On Sun, May 13, 2012 at 11:51 PM, Thomas Leonard <talex5 <at> gmail.com> wrote:
> I've created an "apps" branch in the 0install Git repository with
> experimental app support.
>
> Apps work a bit like aliases, e.g.
>
> $ 0install add rox http://rox.sourceforge.net/2005/interfaces/ROX-Filer
> $ rox --version
> ROX-Filer 2.11
>
> The main difference is that apps store their current selections (in
> ~/.config/0install.net/apps/rox/selections.xml in this case). This
> means that they start faster, because the solver isn't needed:
>
> $ 0alias rox-alias http://rox.sourceforge.net/2005/interfaces/ROX-Filer
> $ 0install add rox-app http://rox.sourceforge.net/2005/interfaces/ROX-Filer
>
> $ time rox-alias --version > /dev/null
> rox-alias --version > /dev/null  0.12s user 0.02s system 91% cpu 0.144 total
>
> $ time rox-app --version > /dev/null
> rox-app --version > /dev/null  0.06s user 0.02s system 92% cpu 0.082 total
>
> When run, they still trigger a background update if they haven't been
> updated for a while, and you can also update them manually:
>
> $ 0install update rox
> No updates found. Continuing with version 2.11.
>
> They also remember any restrictions (e.g. --before).
(Continue reading)

Dave Abrahams | 14 May 08:41
Picon
Picon
Favicon
Gravatar

command= attribute for <requires>


I'd like to be able to express that the 'foo' command of package A
depends on package B and all of B's 'foo' command requirements.  AFAICT
that isn't possible now.  Could we add a command= attribute to enable
saying such a thing?

--

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Tim Cuthbertson | 14 May 05:21
Favicon
Gravatar

Re: node.js binary implementation incompatibilities (was BUMP: 0install update messages)

I don't want to derail the original thread so I'll fork this one off here...

On Sun, May 13, 2012 at 11:51 PM, Yfrwlf <yfrwlf <at> gmail.com> wrote:
> On 05/13/2012 07:53 AM, Tim Cuthbertson wrote:
>> On Sun, May 13, 2012 at 10:17 PM, Yfrwlf<yfrwlf <at> gmail.com>  wrote:
>>> P.S.  Tim, I'm curious as to why node.js isn't compatible across
>>> different Linux distros, is it due to different versions of
>>> Java/IcedTea?  If so, the solution there would be to make a working
>>> specific version of Java be a dependency right?  I assume this is the
>>> issue since in my own uses of Java programs I have come across ones that
>>> need specific update versions of Java for them to work correctly, which
>>> really makes Java unstable to the point where you have to depend on ==
>>> version of Java.  Python seems much more stable as a dependency to me so
>>> far as the only major cut off point that I know of is between version 2
>>> and 3.
>> erm, node.js has no relation to (or dependency on) java, it's compiled
>> code (C or C++, not actually sure which).
>>
> Oh, I figured it was Java and you were referring to the bytecode not
> being created correctly with certain JVM versions.  So what component is
> the binary compatibility issue being caused by, and why isn't this
> circumventable by adding dependencies?  All distros are POSIX-compatible
> right, so I'm just trying to understand the big picture.  I thought as
> long as you had all the linked-to libraries/dependencies for a binary,
> as long as the binary and the kernel were POSIX-compatible, it would run?

I'm pretty sure POSIX-compatibility is at the level of system calls /
source code, not at the level of bytecode. E.g mac OSX is posix
compatible, but you won't get linux binaries running on it. According
to this link, ubuntu is not even necessarily compatible with debian
(Continue reading)

Thomas Leonard | 13 May 15:51
Picon
Gravatar

Experimental "app" support

I've created an "apps" branch in the 0install Git repository with
experimental app support.

Apps work a bit like aliases, e.g.

$ 0install add rox http://rox.sourceforge.net/2005/interfaces/ROX-Filer
$ rox --version
ROX-Filer 2.11

The main difference is that apps store their current selections (in
~/.config/0install.net/apps/rox/selections.xml in this case). This
means that they start faster, because the solver isn't needed:

$ 0alias rox-alias http://rox.sourceforge.net/2005/interfaces/ROX-Filer
$ 0install add rox-app http://rox.sourceforge.net/2005/interfaces/ROX-Filer

$ time rox-alias --version > /dev/null
rox-alias --version > /dev/null  0.12s user 0.02s system 91% cpu 0.144 total

$ time rox-app --version > /dev/null
rox-app --version > /dev/null  0.06s user 0.02s system 92% cpu 0.082 total

When run, they still trigger a background update if they haven't been
updated for a while, and you can also update them manually:

$ 0install update rox
No updates found. Continuing with version 2.11.

They also remember any restrictions (e.g. --before).

(Continue reading)

Dave Abrahams | 13 May 01:54
Picon
Picon
Favicon
Gravatar

ZI path case sensitivity


I think someone else reported a problem like this recently:

--8<---------------cut here---------------start------------->8---
Z:\src\ryppl\zi-win>0install remove-feed z:\Public\vmshare\zi-win\ZeroInstall.xml
The feed was not registered for any interfaces.

Z:\src\ryppl\zi-win>0install remove-feed Z:\Public\vmshare\zi-win\ZeroInstall.xml
The feed was successfully unregistered for the following interfaces:
http://0install.net/2007/interfaces/ZeroInstall.xml
--8<---------------cut here---------------end--------------->8---

It seems like 0install should be doing case-insensitive comparison here?

--

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
Dave Abrahams | 12 May 15:16
Picon
Picon
Favicon
Gravatar

Windows 0compile downloading outdated zeroinstall.


This is  with the latest 0install and 0compile on windows.  I can't
quite understand why it would be downloading zeroinstall-1.6.  Can
anyone explain?

Thanks,

--8<---------------cut here---------------start------------->8---
C:\Users\dave\AppData>0install --version
Zero Install Command CLI 1.7.0.0
Copyright 2010-2012 Bastian Eicher et al.
This program comes with ABSOLUTELY NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program under the terms of the GNU Lesser General Public License.

C:\Users\dave\AppData>0compile autocompile http://0install.net/tests/Hello-scons.xml
Downloading http://downloads.sourceforge.net/project/zero-install/0compile/0.28/0compile-0.28.tar.bz2...
[====================] Complete
Extracting archive (0install-fetcher-v1mbfqyd.0tm)...
[====================] Complete
Generating sha256 manifest (r0klzcyf.zog)...
[====================] Complete
Downloading http://downloads.sourceforge.net/project/zero-install/0publish/0.20/0publish-0.20.tar.bz2...
[====================] Complete
Extracting archive (0install-fetcher-fzskopba.u1p)...
[====================] Complete
Generating sha256 manifest (llvip1i1.jq0)...
[====================] Complete
Downloading http://downloads.sourceforge.net/project/zero-install/injector/1.6/zeroinstall-injector-1.6.tar.bz2...
[====================] Complete
--8<---------------cut here---------------end--------------->8---
(Continue reading)


Gmane