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