On 8/6/06, Jonas Karlsson <[EMAIL PROTECTED]> wrote:
On Sun, 06 Aug 2006 06:21:55 +0200, Hisham Muhammad <[EMAIL PROTECTED]>
wrote:
> On 8/5/06, Jonas Karlsson <[EMAIL PROTECTED]> wrote:
>> Making use of unmanaged files I noticed that, in recipes, one has to
>> specify the unmanaged files in a variable, unmanaged_files, in the
>> recipe
>> instead of a file, Resources/UnmanagedFiles, in the recipe directory. I
>> think the latter is more natural as it follows the same layout as
>> packages.
>
> Sounds like a good idea, but on the other hand having them listed in
> the text of the recipe makes it easier to inspect it and not forget
> about it (I can understand Dependencies being "meta" information
> enough to warrant being listed in a separate file but I'm not sure
> about this.) What I mean is: I do see your point but I'm undecided
> about it. More voices are welcome. :)
>
Well, one always inspects the Dependencies file before submitting a
recipe/package, right? ;)
Anyhow as UnmanagedFiles is manually created, it's no need to inspect it
as recipe author (because you created it) and if one are to inspect the
recipe as third person one can cat the UnmanagedFiles file. Besides having
it as an file becuase beeing consistant with package layout, you can look
on lukas' recipe on SVGAlib. He has 10 files as unmanaged, which is a bit
much, imo, to have listed as a variable.
Just came to think about recipes made with NewVersion, if the file list
changes. How about adding a suffix to the UnmanagedFiles file and if that
suffix exists one gets a warning when one compiles and the files installed
out of sandbox differs from the files listed in UnmanagedFiles, so that
one can check the file list for newly created recipes. If the list in
UnmanagedFiles is correct the suffix should be removed.
Ouch, in my head I thought it already did this check, but I just
looked at the implementation and realized it doesn't. Unlisted files
installed out of sandbox should be checked (and even the opposite, if
expected out-of-sandbox files are not created) and generate Compile
errors every time.
Here's a tentative implementation, also using the UnmanagedFiles file
instead of the unmanaged_files array. Well, the code does look
cleaner. Caveat emptor: untested.
Index: bin/Compile
===================================================================
RCS file: /cvsroot/goboscripts/tools/Compile/bin/Compile,v
retrieving revision 1.101
diff -u -r1.101 Compile
--- bin/Compile 2 Aug 2006 19:07:36 -0000 1.101
+++ bin/Compile 7 Aug 2006 11:38:43 -0000
@@ -108,17 +108,14 @@
if ! [ "$nomake" = "yes" ]
then
unset allowleftovers
- [ "${unmanaged_files[*]}" ] && allowleftovers=--allow-leftovers
+ [ -f "$unmanagedfiles" ] && allowleftovers=--allow-leftovers
SandboxInstall $allowleftovers [EMAIL PROTECTED] -f $makefile
-t "$install_target" "$1" "$2" -- "[EMAIL PROTECTED]" || wrap_fail
"Installation step failed."
install_extras
- if [ "${unmanaged_files[*]}" ]
- then
- mkdir -p "$target/Resources/Unmanaged/"
- cp -a "$target/.SandboxInstall_Root"/* "$target/Resources/Unmanaged/"
- fi
+ Install_Unmanaged_Files --move "$unmanagedfiles"
"$target/.SandboxInstall_Root" "$target/Resources/Unmanaged/"
+ [ `ls -A "$target/.SandboxInstall_Root" 2> /dev/null` ] && Die
"Unexpected left-over files in sandbox."
fi
if ! Boolean "no-strip"
@@ -184,14 +181,7 @@
Quiet mkdir -p $target/Resources
- if [ "${unmanaged_files[*]}" ]
- then
- rm -f -- $target/Resources/UnmanagedFiles
- for file in "[EMAIL PROTECTED]"
- do echo $file >> $target/Resources/UnmanagedFiles
- done
- Install_Unmanaged_Files "$target/Resources/UnmanagedFiles"
"$target/Resources/Unmanaged"
- fi
+ Install_Unmanaged_Files "$unmanagedfiles"
"$target/Resources/Unmanaged" "$goboPrefix"
Log_Normal "Generating package's build information..."
GenBuildInformation "$appname" "$versionnumber" >
"$target/Resources/BuildInformation"
@@ -431,6 +421,7 @@
recipedir="$bakedrecipedir"
reciperesources="$recipedir/Resources"
+unmanagedfiles="$recipedir/Resources/UnmanagedFiles"
if ! Boolean "no-dependencies" && ! Boolean "no-build"
then
Index: Functions/GoboLinux
===================================================================
RCS file: /cvsroot/goboscripts/tools/Scripts/Functions/GoboLinux,v
retrieving revision 1.18
@@ -587,14 +587,25 @@
}
function Install_Unmanaged_Files() {
- Parameters "$@" unmanagedfilesfile sourcedir
+ local movefiles=no
+ if [ "$1" == "--move" ]
+ then
+ movefiles=yes
+ shift
+ fi
+ Parameters "$@" unmanagedfilesfile sourcedir destdir
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}/"
+ local dname=$(dirname "$$line")
+ mkdir -p "${destdir}/${dname}"
+ cp -a "${sourcedir}/${line}" "${destdir}/${dname}/"
+ if [ "$movefiles" = "yes" ]
+ then
+ rm -rf "${sourcedir}/${line}"
+ rmdir -p "${sourcedir}/${dname}"
+ fi
done
fi
}
Index: bin/InstallPackage
===================================================================
RCS file: /cvsroot/goboscripts/tools/Scripts/bin/InstallPackage,v
retrieving revision 1.21
diff -u -r1.21 InstallPackage
--- bin/InstallPackage 30 Jul 2006 19:45:03 -0000 1.21
+++ bin/InstallPackage 7 Aug 2006 11:40:00 -0000
@@ -297,7 +297,7 @@
if ! Boolean "no-unmanaged" && [ -f "Current/Resources/UnmanagedFiles" ]
then
Log_Normal "Installing UnmanagedFiles"
- Install_Unmanaged_Files "Current/Resources/UnmanagedFiles"
"Current/Resources/Unmanaged"
+ Install_Unmanaged_Files "Current/Resources/UnmanagedFiles"
"Current/Resources/Unmanaged" "$goboPrefix"
fi
Quiet cd -
-- Hisham
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel