On 7/31/06, Jonas Karlsson <[EMAIL PROTECTED]> wrote:
Experimenting a bit with Unmanaged together with trying out the idea of
making the kernel aware of third party modules.
First Unmanaged:
Why does the file Resources/UnmanagedFiles exist? Is there an idea that
the files should be removed when the program is removed/disabled?
Otherwise one could just copy from Resources/Unmanaged to / or am I
missing something? Maybe it is there for future uses?

It exists for control by Compile. After building, Compile checks the
leftovers in the sandbox and only accepts leftovers accepted in the
UnmanagedFiles list. This way, we can control the build and not have
accidental leftovers end up in the package.

How does umanaged handle situations when the target already exist, i.e.
when installing into /System/Variable for a program that already is
installed and the file/directory is already installed?

Right now it is copying stuff with cp -a. The implementation, from
Scripts/Current/Functions/GoboLinux:

function Install_Unmanaged_Files() {
  Parameters "$@" unmanagedfilesfile sourcedir
  if [ -f "$unmanagedfilesfile" ]
  then
     cat "$unmanagedfilesfile" | grep -E -v "^(\./|/|)Programs" |
while read line
     do
        local dname=$(dirname "${goboPrefix}/$line")
        mkdir -p "${dname}"
        cp -a "${sourcedir}/${line}" "${dname}/"
     done
  fi
}

Is it possible to install directories using Unmanaged?

It should. Looking at the above implementation, I think it's possible.
If not, I'd consider a bug.

How about, if using UnionSandbox, mounting /System/Variable to
${target}/Resources/Unmanaged/System/Variable?

Listing the stuff you want to be in /S/V in the UnmanagedFiles file
should get you the same result.

About third party modules. When thinking about it, shouldn't
${target}/Shared/Linux/ThirdPartyModules/${appname} be a better location
then ${target}/Shared/Compile/${appname}?

Don't think so, because that would be a modules-specific path, and the
approach I suggested hints at turning this into a more general
"recompilation interdependency" mechanism. And the idea was, more
precisely:

${target}/Shared/Compile/${parentapp}/${childapp}

where $childapp is a file (e.g. Madwifi) and $parentapp is a directory
(e.g. Linux) and that would mean: $childapp needs to be recompiled
whenever $parentapp is. Actually, I think an additional directory
would even be a good thing, too keep the Shared/Compile namespace
clean for future additions:

${target}/Shared/Compile/Recompile/${parentapp}/${childapp}

I'm also trying out installing the kernel module into Unmanaged. Is the
UnmanagedFiles file automatically generated or do I have to create it
manually?

Manually, to avoid accidental extra files get dropped in the system
when updating a recipe, for example, with NewVersion. One possible way
to write it is to run Compile once, let the sandbox fail with
leftovers and then grab the leftovers list and use it as a base for
writing UnmanagedFiles.

One thought: you probably won't want to write the kernel version
explitictly in the UnmanagedFiles entries. One way to solve this would
be to use paths like:
/System/Kernel/Modules/Current/...
but then it's a good thing to make sure /S/K/M/Current is sane. We can
tweak Compile to ensure this link is correct before handling unmanaged
files.

-- Hisham
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to