Hi all, We are pleased to announce the final release of new versions of the system tools. Compile 1.12.0 is a major update introducing the new recipe API and is a progressive step towards chroot-by-default, while Scripts 2.9.8 is a bugfix release also containing some supporting internals changes.
Installing a program over the top of the same version will now create a safe copy of the already-installed version, allowing it to revert back exactly if the installation fails. There is a new script, ProblemReport, that will generate a textual report of system status to help with tracking down issues, and improved POSIX compliance for tools allowing them to be used with other shells as /bin/sh. Any option to a script can now be specified in its configuration file, in the form "compileOption_remove_sources=yes", so default behaviour can be specified more exactly. Compile includes significant internal changes, as well as the new Recipe API. Recipes can now override the default build, configuration, or install phases with their own by defining a do_build() function (this instead of the previous hack of do_build=no pre_build() { ... do build here ... }). You can access the default behaviours within these functions with, for example, configure_do_build "$@". As well, there are three new variables, $builddir, $sourcedir, and $basedir which better define which action $dir was intended to represent, and ContributeRecipe is now smarter about the diffs it uses. Multiple dependencies can now be specified in recipes and packages, using a pipe ("|") to separate each dependency specification on one line. Those are full dependency lines, so they can include version and useflags as usual, and the first matching entry will be used. Packages are in the store now, but may take a few hours to reach the other mirrors. Install using `InstallPackage Scripts 2.9.8` and `InstallPackage Compile 1.12.0`. Please report any bugs you hit on http://bugs.gobolinux.org/ and ask questions here on the mailing list or in the forums. Full changelog follows below. -Michael Compile: 2008-11-11 19:33 mohjive * Makefile: We want to create the tarball from the tag (while we still are switched) instead of trunk 2008-11-11 20:21 mohjive * bin/Compile: First big change to start a large refactoring of Compile. Split do_symlink into two functions: do_install and do_symlink. Extract wrapper calls from do_symlink and to around the call of the function itself. Rearrange what is done where in do_install and do_symlink 2008-11-16 21:45 mohjive * Functions/Type_cabal, Functions/Type_cmake, Functions/Type_configure, Functions/Type_makefile, Functions/Type_manifest, Functions/Type_perl, Functions/Type_python, Functions/Type_scons, Functions/Type_xmkmf, bin/Compile: Huge rewrite of Compile to make each recipe_type a module, so functions for configuring, buliding and installing each type is defined in a module Type_foo and is made available in Compile by "Import Type_". 2008-11-16 22:16 mohjive * Functions/Type_configure: Stray 'fi' from nowhere 2008-11-23 06:31 mwh * bin/Compile: Invert no-symlink test, presuming it was a typo. 2008-11-26 08:07 mohjive * bin/Compile: Handle no_install=yes in recipes and also pass on --no-install to recursive calls of Compile 2008-11-26 22:08 mwh * bin/Compile: Re-support do_install=no. 2008-12-02 22:22 mohjive * Functions/Type_makefile: Only add flags in $with_foo to make variables with recipe_type=makefile 2008-12-02 23:00 mohjive * Functions/Compile, bin/Compile: Remove doubled function Assert_Dir Remove file info functions moved to Scripts Move some functions from bin/Compile to Functions/Compile Export Run_Hook as api and make Compile use that instead 2008-12-05 09:03 mohjive * Functions/Compile: Switch logic so that correct status is returned 2008-12-05 13:51 mohjive * Functions/Compile, bin/Compile: Move PostInstall run from do_symlink to main flow in Compile 2008-12-09 14:12 mohjive * ., bin/Compile: r...@hermes: jonas | 2008-12-09 15:11:57 +0100 Pass remove options to recursive calls of Compile 2008-12-16 23:29 mwh * Functions/Type_manifest: Support rsync-like ends-with-/ behaviour in manifest destinations. 2008-12-16 23:42 mwh * Functions/Compile: Parameter substitution is tidier than nested echo for expanding maybe-arrays. 2008-12-29 23:22 mohjive * Functions/BuildType_cabal, Functions/BuildType_cmake, Functions/BuildType_configure, Functions/BuildType_makefile, Functions/BuildType_manifest, Functions/BuildType_perl, Functions/BuildType_python, Functions/BuildType_scons, Functions/BuildType_xmkmf, Functions/Compile, Functions/Type_cabal, Functions/Type_cmake, Functions/Type_configure, Functions/Type_makefile, Functions/Type_manifest, Functions/Type_perl, Functions/Type_python, Functions/Type_scons, Functions/Type_xmkmf, bin/Compile: Rename Type_foo to BuildType_foo to make use clearer Prepend all recipe_type specific hooks with ${recipe_type}_ and by that making namespaces. This makes it possible to call them from a recipe even if the the do_foo hook is overloaded. Use $sourcedir instead of $dir to refer to absolute path to unpacked sources. Move fetching, unpacking and patching code from Compile to a function each. 2008-12-30 15:39 mohjive * bin/Compile: Only move failed installation if the target tree is modified. 2008-12-30 15:40 mohjive * bin/Compile: Correct number of arguments for Run_PostInstall and call wrap_fail if it fails. 2008-12-31 00:20 mohjive * Functions/Compile: Remove trace code 2008-12-31 12:10 mohjive * ., bin/NewVersion: r...@hermes: jonas | 2008-12-31 13:00:58 +0100 Support commas in urls 2008-12-31 12:10 mohjive * ., bin/MakeRecipe: r...@hermes: jonas | 2008-12-31 13:01:34 +0100 Support commas in urls 2008-12-31 12:10 mohjive * ., Resources/Dependencies: r...@hermes: jonas | 2008-12-31 13:02:51 +0100 Update Dependencies to Scripts >= 2.9.5 2008-12-31 12:11 mohjive * ., Functions/BuildType_cmake, Functions/BuildType_configure, Functions/BuildType_perl, Functions/BuildType_xmkmf, Functions/Compile: r...@hermes: jonas | 2008-12-31 13:05:43 +0100 Pass on arguments to do_install 2009-01-04 15:24 mohjive * ., bin/PackRecipe: r...@hermes: jonas | 2009-01-04 16:16:25 +0100 Adding yet another md5sum for LGPL 2.1 2009-01-04 15:24 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-04 16:19:32 +0100 We don't want to apply patches if it's an scm recipe and we're not fetching sources or we're [u]sing an unpacked directory 2009-01-06 13:23 mohjive * ., bin/PackRecipe: r...@hermes: jonas | 2009-01-06 14:18:22 +0100 Add another variant of LGPL 2.1 2009-01-07 20:22 mohjive * ., bin/PackRecipe: r...@hermes: jonas | 2009-01-07 18:09:15 +0100 Adding another variant of LGPL2 2009-01-07 20:23 mohjive * ., Functions/BuildType_cmake, Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-07 21:17:21 +0100 Fix some left references from $dir to $sourcedir 2009-01-11 01:20 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-11 02:14:47 +0100 Don't use $sourcedir as it's not set yet. It's (from the recipe) we are looking for 2009-01-11 01:49 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-11 02:35:55 +0100 Revert checks in do_{configuration,build,install} so they return true is function not set. Simplify some checks since the above functions are always set 2009-01-11 01:49 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-11 02:43:01 +0100 Readd "then" 2009-01-11 02:00 mohjive * ., Functions/BuildType_python: r...@hermes: jonas | 2009-01-11 02:54:58 +0100 Use whole path to find the build script, as we haven't changed directory when the recipe type is sourced 2009-01-17 09:23 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-17 10:17:34 +0100 Set $dirs as that value is used to set \sourcedir later 2009-01-20 01:08 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-18 15:25:48 +0100 Do not prompt for dependencies in batch mode 2009-01-20 01:08 mohjive * ., Functions/Compile: r...@hermes: jonas | 2009-01-20 00:35:52 +0100 Applying patches should be done from the "root" source dir 2009-01-20 02:31 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-20 03:25:19 +0100 Use the new safe install mechanism in Scripts. The only way to keep an installed program, when installing same version, is to pass "--keep" to Compile. Else the safe installation will take care of it. This deprecates safe_linking. 2009-01-21 21:44 mohjive * bin/RecipeLint: Ignore comments with white space before the hash symbol 2009-01-24 00:26 mwh * bin/ContributeRecipe: Make ContributeRecipe base logic smarter Use existing recipe of same version as base if it exists. If not, use newest available version. Always fetch from store if the relevant version isn't found in /F/C/R 2009-01-24 00:34 mwh * bin/ContributeRecipe: Add --pretend mode to ContributeRecipe. 2009-01-25 21:17 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 21:50:32 +0100 Safe linking is now deprecated (and also not needed) 2009-01-25 21:17 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 22:00:15 +0100 Don't use functions were it's not needed 2009-01-25 21:17 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 22:02:48 +0100 Use Combine_Arrays from Scripts/Functions/Array instead 2009-01-25 21:17 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 22:10:45 +0100 Removing unnecessary abstraction now that the recipe_type doesn't use this 2009-01-25 22:03 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 22:44:44 +0100 Missing parentesis 2009-01-25 22:03 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 22:53:22 +0100 Need to group PrepareProgram with Die, else Die will be runned if first statement is false 2009-01-25 22:03 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-25 22:56:14 +0100 Move algorithm for finding recipe to Functions/Compile and make it API. Define recipe path variables earlier so we can use them instead of $bakedrecipedir (which isn't available since we moved recipe finding). Move out in_host() to Functions/Compile 2009-01-25 23:44 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-25 23:09:44 +0100 We don't need to pass second argument to wrap_fail, now with safe copy 2009-01-25 23:44 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-25 23:41:21 +0100 Remove unneeded function and replace it with bash variable operation 2009-01-25 23:44 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-01-26 00:15:00 +0100 Move some application and version variable creation to where the other similare variables are defined. Make getting paths for dependencies a helper function 2009-01-26 00:16 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-01-26 00:48:31 +0100 Use bash variable operation instead of sed 2009-01-26 00:17 mohjive * ., Functions/BuildType_cmake, Functions/BuildType_configure, Functions/BuildType_python, Functions/Compile: r...@hermes: jonas | 2009-01-26 00:59:03 +0100 Use the new Combine_Arrays function 2009-02-05 22:22 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-02-05 23:11:32 +0100 Use separate variables for $basedir, base level of unpacked/checked out sources (used as base when applying patches), $sourcedir, the directory where main source is (used as build dir when no separate build dir is requested) and $builddir, the directory used for building - it dynamically changes target depending on if separate build dir is requested. If no separate build dir is requested $sourcedir and $builddir is the same, else $builddir is set to $sourcedir/_build. 2009-02-05 22:32 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-02-05 23:24:28 +0100 Roll back safe copy if cought signal, or when we just fail 2009-02-06 11:15 mohjive * bin/Compile: we need svn Scripts if following svn compile add missing 's' to array name 2009-02-07 00:36 mohjive * Functions/BuildType_python: Move python initialization to python_do_configuration() instead 2009-02-07 01:11 mohjive * Functions/BuildType_python: Putting things in _configuration breaks --lazy build. But build script detection has to run after sources are unpacked and there fore have to live in do_build(). 2009-02-07 05:48 mwh * Functions/BuildType_perl: Flip -e Build.PL test for old perl build system 2009-02-07 05:57 mwh * Functions/Compile: Fix symlinkopts expansion that was being evaluated. 2009-02-07 08:34 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-02-07 09:20:49 +0100 We should make an array, not evaluate 2009-02-07 08:34 mohjive * ., Functions/BuildType_cabal, Functions/BuildType_makefile, Functions/BuildType_perl, Functions/BuildType_python, Functions/BuildType_scons: r...@hermes: jonas | 2009-02-07 09:24:17 +0100 We should quote the items in the sandboxopts array 2009-02-07 08:34 mohjive * ., Functions/Compile: r...@hermes: jonas | 2009-02-07 09:25:37 +0100 The extra variable assignment is not needed. 2009-02-07 09:09 mohjive * ., bin/Compile: r...@hermes: jonas | 2009-02-07 10:01:31 +0100 Don't make option and argument one string. 2009-02-07 09:32 mohjive * ., Functions/BuildType_cabal, Functions/BuildType_cmake, Functions/BuildType_configure, Functions/BuildType_makefile, Functions/BuildType_manifest, Functions/BuildType_perl, Functions/BuildType_python, Functions/BuildType_scons, Functions/BuildType_xmkmf, bin/Compile: r...@hermes: jonas | 2009-02-07 10:22:18 +0100 Put sane check into a function, ${recipe_type}_sane_check. 2009-02-07 09:32 mohjive * ., Functions/Compile, bin/Compile: r...@hermes: jonas | 2009-02-07 10:24:24 +0100 Import all available build types, so the "name spaced" functions are available for the recipe. 2009-02-07 11:21 mohjive * ., Functions/Compile: r...@hermes: jonas | 2009-02-07 11:46:01 +0100 Don't use unnecessary for loop. 2009-02-07 11:21 mohjive * ., Functions/BuildType_cabal, Functions/BuildType_cmake, Functions/BuildType_configure, Functions/BuildType_perl, Functions/BuildType_python, Functions/BuildType_scons, bin/Compile: r...@hermes: jonas | 2009-02-07 12:13:16 +0100 Move recipe type dependant variables into new ${recipe_type}_init(). Checking for Perl-XML-{Parser,Writer} should be done in perl_sane_check(). 2009-02-13 22:47 mohjive * ., bin/NewVersion: r...@hermes: jonas | 2009-02-13 23:38:10 +0100 Use $normalFD for 'cat' output, instead of using stdout 2009-02-15 09:22 mohjive * Shared/man/man1/ApplyVariables.1, Shared/man/man1/Compile.1, Shared/man/man1/ContributeRecipe.1, Shared/man/man1/EditRecipe.1, Shared/man/man1/FetchArchive.1, Shared/man/man1/GetRecipe.1, Shared/man/man1/MakeRecipe.1, Shared/man/man1/NewVersion.1, Shared/man/man1/PackRecipe.1, Shared/man/man1/RecipeLint.1, Shared/man/man1/UpdateRecipes.1: Updated manuals Scripts: 2009-01-04 15:19 mohjive * ., Data/DistUseFlags.conf: r...@hermes: jonas | 2009-01-04 16:12:53 +0100 Adding more default distro use flags 2009-01-04 15:19 mohjive * ., Resources/Dependencies: r...@hermes: jonas | 2009-01-04 16:13:16 +0100 We depend on python >= 2.5 2009-01-04 21:39 mwh * bin/UseFlags: Fix typo. 2009-01-05 02:34 mohjive * ., bin/UpdateSettings: r...@hermes: jonas | 2009-01-05 03:28:45 +0100 Need to import MetadataInstallation to have gconf installation functions available 2009-01-05 03:45 mwh * bin/UseFlags: Fix mutually-exclusive bug when unavailable higher-priority component is installed. 2009-01-07 15:01 mohjive * ., bin/SandboxInstall: r...@hermes: jonas | 2009-01-07 15:55:13 +0100 Remove files from sandbox created by depmod 2009-01-08 15:57 lucasvr * bin/FixDirReferences: Fixed regex for /usr, which was sometimes truncating the string. 2009-01-10 20:09 mohjive * ., Functions/GoboLinux, Functions/OptionParser: r...@hermes: jonas | 2009-01-10 21:03:31 +0100 Make is possible to specify each option for a script in a configuration file, to set a default behaviour for a script. Syntax is <downcase scriptname>Option_<option name>, where '-' are switched to '_'. E.g. compileOption_remove_sources=yes in Compile/Compile.conf would set --remove-sources for Compile by default. Added new function to OptionParser API: Set_Option <option> <value> - will set a value to an option. Made boolean values also accept 'y(es)' or 't(rue)', besides 'on', as true (all other values are false). 2009-01-10 23:03 mohjive * ., Functions/GoboLinux: r...@hermes: jonas | 2009-01-10 23:57:31 +0100 Remove debug code accidently commited 2009-01-11 00:05 mohjive * ., Functions/OptionParser: r...@hermes: jonas | 2009-01-11 00:59:34 +0100 Fix logic for what is true for Boolean. Empty string is not true. Fixing cut and paste error in Set_Option. 'i' != 'j'. 2009-01-20 02:26 mohjive * ., Functions/Log: r...@hermes: jonas | 2009-01-20 03:11:29 +0100 Don't "overwrite" $message in other functions 2009-01-20 02:26 mohjive * ., Functions/GoboLinux: r...@hermes: jonas | 2009-01-20 03:20:37 +0100 New feature: safe installation. It includes two new functions: Pre_Installation_Preparation and Post_Installation_Clean_Up. The first function will copy the tree (if same version exists) and relink only the symlinks in /System/Links that point inside that tree. That way links will not be "stolen" if the installation fails. The second function will revert the above, if installation fails (third argument), and move the failed tree to a separate directory. If no third argument is passed the "safe" tree is just removed, so this function should be called after SymlinkProgram is called for the newly installed program. Also added two API functions to convert between a $goboPrograms entry and $goboSystem paths. 2009-01-21 15:37 mohjive * ., Functions/GoboLinux: r...@hermes: jonas | 2009-01-21 16:31:21 +0100 We only clean up if there's a -safelinking directory with the same version (the user could have choosen to install "over" the old version, which means that there wont be a backup). 2009-01-23 07:08 mwh * Data/CommandNotFound.data: Remove backup file listed in CNF DB 2009-01-23 09:49 mwh * Functions/GoboLinux, Functions/GoboLinux.sh, Functions/Log, bin/ScriptFunctions: POSIX compliance for some central components ScriptFunctions is now usable from dash, as is Log. F/GoboLinux.sh is a POSIX-compliant version of parts of F/GoboLinux. 2009-01-23 10:15 mwh * Functions/GoboLinux, bin/ScriptFunctions: Automatically import Foo.sh before Foo where available. 2009-01-23 10:34 mohjive * ., bin/InstallPackage: r...@hermes: jonas | 2009-01-23 11:28:17 +0100 Pass on --same and --old options to recursive calls of InstallPackage. Use new Add_Entry feature of defining a set of valid values for "same", "old" and "unmanaged". 2009-01-24 04:17 mwh * bin/ProblemReport: First go at a script to help with bug/problem reports by dumping useful debugging data about the user's system. 2009-01-24 05:13 mwh * bin/ProblemReport: Include Resources/* files in problem report (for BuildInformation and UseFlags, principally). 2009-01-24 09:41 mohjive * Functions/Log: Make Progress_* use normal log functions where possible and use proper colors elsewhere 2009-01-24 09:43 mohjive * Functions/GoboLinux: Creating safe copy and restoring it can take some time for some programs, so show progress to the user using Progress_* We should always remove the safe copy in Post_Install_Clean_Up. 2009-01-24 09:45 mohjive * bin/InstallPackage: Revert use of ${symlink} since we depend on it in a "case". Remove interactivity when same version is found. By default we cancel, but behaviour can be changed with call time option "--same". 2009-01-24 14:11 mohjive * bin/InstallPackage: trap signals so we clean up safe copy even when interupted. 2009-01-25 21:17 mohjive * ., Functions/OptionParser: r...@hermes: jonas | 2009-01-24 15:52:19 +0100 Replaced references to unknown variable. Use named variables instead of argument numbers. 2009-01-25 21:17 mohjive * ., Functions/Array: r...@hermes: jonas | 2009-01-25 21:59:48 +0100 We don't want to quote $fun as it could be a command with options 2009-01-25 21:17 mohjive * ., Functions/Array: r...@hermes: jonas | 2009-01-25 22:02:08 +0100 Move Combine_Arrays to Functions/Array and make it part of Scripts API 2009-01-26 06:25 mwh * Functions/OptionParser: Fix OptionParser parse error typo 2009-02-05 20:05 lucasvr * Functions/GoboLinux: Fixed typo from revision 3826. 2009-02-06 09:20 mwh * Functions/GoboLinux: Revert subshell/command substitution change from r3859. 2009-02-06 15:12 mohjive * bin/SandboxInstall: Remove fontconfig cache from sandbox. We generate this with SymlinkProgram. 2009-02-13 09:38 mwh * bin/CheckDependencies: Fix | alternation for dependencies as mentioned on mailing list, since there was no objection. 2009-02-13 22:07 mwh * bin/UseFlags: Fix UseFlags run when Dependencies doesn't exist to initialise potential flags 2009-02-13 22:19 mwh * bin/UseFlags: Same UseFlags fix for the legacy codepath 2009-02-13 22:35 mohjive * ., Functions/GoboLinux: r...@hermes: jonas | 2009-02-13 23:26:00 +0100 Use '-a' instead of '-R', so that we preserve owner and permissions when making the safe copy 2009-02-15 09:31 mohjive * Shared/man/man1/AddUser.1, Shared/man/man1/AttachProgram.1, Shared/man/man1/CheckDependants.1, Shared/man/man1/CleanModules.1, Shared/man/man1/CreateInitRD.1, Shared/man/man1/CreatePackage.1, Shared/man/man1/Dependencies.1, Shared/man/man1/DetachProgram.1, Shared/man/man1/DisableProgram.1, Shared/man/man1/FiboSandbox.1, Shared/man/man1/FilterColors.1, Shared/man/man1/FindQuick.1, Shared/man/man1/FixAttributes.1, Shared/man/man1/FixDirReferences.1, Shared/man/man1/FixInfo.1, Shared/man/man1/GenBuildInformation.1, Shared/man/man1/GrepQuick.1, Shared/man/man1/GrepReplace.1, Shared/man/man1/GuessProgramCase.1, Shared/man/man1/Hashes.1, Shared/man/man1/InstallPackage.1, Shared/man/man1/KillProcess.1, Shared/man/man1/ListProgramFiles.1, Shared/man/man1/MergeTree.1, Shared/man/man1/NamingConventions.1, Shared/man/man1/PrepareProgram.1, Shared/man/man1/RemoveEmpty.1, Shared/man/man1/RemoveProgram.1, Shared/man/man1/Rename.1, Shared/man/man1/SandboxInstall.1, Shared/man/man1/SignProgram.1, Shared/man/man1/SuggestDuplicates.1, Shared/man/man1/SymlinkProgram.1, Shared/man/man1/SystemFind.1, Shared/man/man1/SystemInfo.1, Shared/man/man1/UnionSandbox.1, Shared/man/man1/UnversionExecutables.1, Shared/man/man1/UpdateSettings.1, Shared/man/man1/UpgradeSystem.1, Shared/man/man1/VerifyProgram.1, Shared/man/man1/VersionExecutables.1, Shared/man/man1/which.1: Updated manuals 2009-02-15 09:31 mohjive * bin/CreateRootlessEnvironment: Update version for CreateRootlessEnvironment.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel