V00-22-01 back on top.
Do not bother about "module" env variable. * Not needed by apt and creates problems on slc6.
Revert back to V00-21-08.
Do not bother about the "module" env variable. This is not needed to run apt and causes problems on slc6.
Allow root installation if file /etc/cms-root-install-allowed is present.
- Enable local repositories for SVN - Enable debug on boostrap if cmsBuild is running in debug mode - Remove .gitignore and .gitattributes files - Drop --bootstrap-subdir option. Pick boostrap.sh from the current repository.
Forgot to delete one line.
Do not allow repository name to have -cache in it.
Avoid race condition which happens when two cmsBuild are invoked on top of the same work-dir. * This used to happen because tmp dir was being deleted before checking that no one else was running there.
fix upload of sources
remove debug statement
do not allow backslash "\" in path
allow . in path but not as a first char on the dir name
Misc fixes. * Do not allow hidden directories as --work-dir * Clean up regexp for --work-dir * Early abspath of workDir to make sure it was done.
Add dummy final job. * This job is dependent from any other task being scheduled and will therefore always be scheduled last. This is useful to avoid dead-lock situations because it forces all threads to remain active until all the tasks have terminated. * Unit tests updated accordingly.
More obsolete code removed.
Remove obsolete upload code.
based on 1.520 i.e. V00-21 series: added uploadport for ssh used by rsync, used uploadUser instead of hardcoded cmsbuild, add Acquire::http::No-Cache=true and Acquire::http::Pipeline-Depth=0 for apt-get update to avoid server side caching
based on 1.518: added uploadport for ssh used by rsync, used uploadUser instead of hardcoded cmsbuild, add Acquire::http::No-Cache=true and Acquire::http::Pipeline-Depth=0 for apt-get update to avoid server side caching
calculate child hash on server as sha256sum might not be available on build machines e.g osx
same as rev 1.517 i.e V00-20 series plus: fix the comp driver name, drop simplify.sh and mark old style user temp directory as deletable
based on rev 1.516 i.e V00-16 series: fix the comp driver name, drop simplify.sh and mark old style user temp directory as deletable
same as 1.515: sync back latest dev of V00-20 series
based on rev 1.502 i.e. V00-16-18: Back ported new upload proceedure; source apt.old to get the apt env otherwise rpm 4.4.2.2 fails (RPMHandler::InternalDep)
calculate child hash locally; rename uploadNew to be upload; For now it will not allow to upload to comp
fix apt md4cache usage
unify the subsystem names
based on rev 1.510: create top level BUILDROOT to avoid bug https://its.cern.ch/jira/browse/CMSSDT-68
based on rev 1.509: create top level BUILDROOT to avoid bug https://its.cern.ch/jira/browse/CMSSDT-68
based on rev 1.508: rpm locak issue plus latest dev sync back
CMSSDT-76 Issue: based on V00-20-35: properly lock locally build rpm instalations commands.
based on rev 1.506: set ignore_compile_errors for new scheduler too
based on V00-20-34: set ignore_compile_errors for new scheduler too
resync latest dev and fix BuildRequires for new scheduler
based on 1.503: Fixes new-scheduler for BuildRequires
based on rev 1.501: sync back latest dev and set CVSROOT for TC checkout
Based on V00-20-32 rev 1.489: set CVSROOT for TC checkouts
Based on V00-16 rev 1.491: set CVSROOT for TC checkouts
Actually copy files WEB directory for upload...
Create WEB area also in case parent does not have one.
Allow for a web area to be uploaded in parallel to the usual RPM repository.
First attempt at automatically deprecating local repository in case we detect a modified repository.
Better way to support packages which use the same sources.
Nevermind. Revert commit 1.495 since its not the correct thing to do.
Support the case in which we upload two packages sharing the same sources. * E.g. FWLite and CMSSW.
Misc fixes to the new upload procedure. * Allow specifying a repository name on command line (but it still cannot be called neither "cms" not "comp"). * Get --upload-tmp-repository flag back to working. Temporary repositories no longer limited to foo.username.
Introduce a new uploadNew command which can be used to do atomic uploads. * Automatically migrates old style repositories to new style. * Add versioning to repository for easy roll back. * Atomic transactions. When two transactions they either both fail to commit or the first one which arrives wins, with the other one starting from scratch. * Deliberately refuse to work when used with cms and comp repositories. * Can be used together with old style uploads, if needed (manual syncrhonization needed in that case).
V00-20-30 back on top.
Use cmspm from cmsdist, if available.
Reverted back to V00-16-14.
Use the cmspm in CMSDIST if found.
V00-20-29 back on top.
Go back to use CMSSW rather than CMSSW.admin to checkout from CVS.
Reverted back to V00-16-05-23
Fix CVSROOT. * Now that we have migrated to the new CVSROOT which does not have locking issues, we go back to the official CMSSW reposiotory so that we can get rid of the CMSSW.admin hack.
Support for checking out a git tag, rather than a revision.
same as 1.481: sync back the latest dev in to CVS head
back ported buildrequire fix from V00-20 in to V00-16-05
bug fixed: install buildrequires of dependent packages too
sync back the V00-20 series dev: 1.477
based on V00-19-06: back ported checking of local/server packages fix from V00-20-26
based on V00-16-05-21: back ported CheckSum and checking local/server packages fix from V00-20-26
fixed regexp for SpecChecksum and checking of packages on Server and local
Fix genbasedir usage. Pick up genbasedir from environment and drop the `--server-genbasedir` option. Source the .sh init script before running genbasedir, not the .csh one.
V00-20-23 back on top.
Use readonly repository also in V00-16 series.
V00-16-05-19 back on top.
Use new CMSSW.admin read-only repository.
V00-20-22 back on top.
Use read-only CMSSW.admin repository for faster checkouts.
add conditional support for subpackages
Better output when a package fails to build.
sync back latest dev: V00-20
backport the CVS_PASSFILE usage for cmstc url
pass cvsroot to cmspm
based on 1.462 i.e. V00-20: check if svn scheme already contains svn+
based on 1.460 i.e V00-16: check if svn scheme already contains svn+
Syntactic sugar to specify CMSSW version on command line. * `cmsBuild build CMSSW_5_0_0` modifies cmssw.spec inplace and does `cmsBuild build cmssw`.
based on rev 1.459 i.e. V00-20: -a option is no more available for cmspm as we pass -d cvsroot instead
based on Rev 1.455 i.e V00-16: back ported CVS_PASSFILE changes from V00-20
Make cmspm behave like CVS. * -d option added to specify CVSROOT. Default is $CVSROOT. * cmsBuild adapted to pass the CVSROOT it knows about, this way we have only one single place where this is defined. * cmsBuild uses CVS_PASSFILE to avoid cvs login also when downloading using tag collector.
Typo... mkdirs in place of makedirs.
Initial version of the new build task scheduler. * Completely independent from the old one. Enable by passing --new-scheduler when invoking cmsBuild. Old one will be removed once we are happy with the new one. * Download sources of different packages in parallel, while other packages are building. * Build everything which can be build and complain about packages which cannot be built, all of them, only at the end. * Based on Scheduler.py.
based on 1.454 i.e. V00-20: added missing die function implementation
added implementation of die function
sync back V00-20 development: same as 1.452
based on 1.443 i.e. V00-16: back ported cmspm usage, subpackage, svn download etc. from V00-20 release cycle in to V00-16
cleanup: cmspm checkout cmssw packages in src directory for patch releases too
Use cmspm in place of PackageManagement.pl
Reindent downloadTc.
Misc fixes. * Drop --ignore-tag-collector-errors flag. * Syntactic sugar for "cmstc:" url.
integrated debug subpackage and revision stuff
Drop debug message.
Fix download svn bug introduced by supporting svn+<tunnel-protocol>.
Drop question mark from arguments.
sync back V00-20 dev: same as 1.442 rev
cleanup for V00-16based on 1.441: remove a test statement
sync back the latest changes for V00-20 series
based on 1.436 i.e. V00-16: sync latest git/svn download changes and workdir lock changes. added %clean section to avoid rpm cleaning up the buildroot
lock workdir to avoid multiple cmsBuild process working in same area. make use of apt-cache information instead of running apt-cache show
Improved "Source" url handling. * Support format of the kind: git+https:// svn+ssh:// to download using git / svn with a different protocol than their native one. * Support for: git://foo.git?obj=branch/tag to simplify specification of branch and tag of a git repository.
Improve url parsing and git downloading. * Now understands urls of the kind: svn+https://blah git+https://blah and sets the protocol to be https, while still invoking the git / svn downloader. * Git downloader now actually supports specifying different protocols. Notice this is not the case yet for the svn one which still needs to have the old "&scheme=http" argument.
Based on V00-20-10: (a) do not try to build packages which are already installed. (b) refresh rpm cache after each command-line package is build
Based on V00-16-05: (a) do not try to build packages which are already installed. (b) refresh rpm cache after each command-line package is build
based on 1.433: (a) RPM query run once to get the install packages, define cmsos and cmscompilerv via rpmbuild which avoids running of cmsos.file for each cmsplatf in spec file. use 1.35 or above of CMSDIST/rpm-preamle.file to benefit from this
based on V00-16-05-12: (a) RPM query run once to get the install packages, define cmsos and cmscompilerv via rpmbuild which avoids running of cmsos.file for each cmsplatf in spec file. use 1.35 or above of CMSDIST/rpm-preamle.file to benefit from this, (c) sync back giulio's changes for apt-cache and cmsplatf
Enormously speed up initialization time. * Do apt-cache search only once in the beginning, and cache results for later usage. * Drop a now unneeded intermediate save of spec files.
Misc cleanup * Speed up initial part by 20s (for CMSSW) by using options.architecture to determine the architecture rather than figuring it out by evaluating every single spec file. * Cleanup some text concatenations.
fixed for --no-bootstrap option
fixed for --do-not-bootstrap option
sync back V00-20-07 changes: pus set the max macro value liit to 8000 chars
Based V00-16-05-10: Max macro line limit set to 8000 (less that 8K as there are few chars for defining a macro itself). Back ported giulio's git updates
based on 1.425: support for BuildRequires added, for now at build time cmsBuild is going to download/install full dependency i.e. Requires+BuildRequires but using raw apr-get/rpm will only install Requires
based on V00-16-05-09: support for BuildRequires added, for now at build time cmsBuild is going to download/install full dependency i.e. Requires+BuildRequires but using raw apr-get/rpm will only install Requires
Misc cleanups. * Working git support for downloading sources. * Allow work dirs to be called "something.app" to create standalone macosx application.
sync back V00-20 development plus added the splitting of large marco fix to avoid rpm marco buffer limit
split require macros in smaller parts to avoid rpm macro buffer limit
make it compatible with V00-19 release series i.e. for rebuild. Please include use rpm-preamble.file rev 1.31 or above for the build.
sync back latest dev of V00-20
marge changes of V00-19-05 and 1.418
sync back latest dev of V00-20 release series
based on V00-19-04: back ported fix for Description in package name and RPM 4.4 %post section bug
based on V00-20-00: sync back latest dev plus fix for Description in package name and RPM 4.4 %post section bug
Based on V00-16-05-07: allow packages to have Description work in their name, backported revision checking fix from V00-20-00, fix for RPM 4.4 %post section bug
HEAD is back to be the latest greatest (V00-20).
Backport the fix done between 1.411 and 1.412.
V00-19-04 back on top.
Correct handling of revisions with rpm 4.8 rpm 4.8 hardcodes the architecture in the revision, this drops it.
Forward porting changes between 1.408 and 1.409 to HEAD.
Old HEAD on top.
Avoid issues with missing / mixed apt-get environment. There was a bug which was preventing "apt-get update" to happen after an area was bootstrapped and it failed silently. Moreover, whenever one builds a new version of the bootstrap kit, there could be problems if the two rpm are not compatible. The new workflow for bootstrapping is as follow: * Check if there is a link to apt init.sh in <workdir>/<architecture>/apt-init.sh * If there is not, bootstrap the area and create such a link. * Source the apt environment from that link. * Invoke apt-get update. This guarantees that apt-get update is always invoked with an apt installation present and guarantees that the only apt used to build packages is the one which was used at bootstrap time. This means we can drop the whole logic to detect the most recent version of apt as well. The --force-apt-version option is also dropped. If a build area was bootstrapped with an old version of cmsBuild, it will create the link to the apt installation. Upgrades from old build areas with two different versions of apt in it is not supported and you'll have to create the link by hand.
V00-19-03 back on top to fix broken apt-get update.
Fix typo.
sync back the latest dev of V00-20 series
ported back the buildroot changes in V00-16-05 series
bug fix: checksum is part of package and not the options
for cms repository, always build with /opt/cmssw as prefix. Build will be done under <workDir>/tmp/BUILDROOT/<checksum>/opt/cmssw: for this please do not forget to include rev 1.31 of CMSDIST/rpm-preamble.file
Merge back with V00-20-00.
Copy bootstrap.sh to presonal repository when uploading.
Go back to V00-19-02.
sync back the latest changes from Giulio plus fixes for tmpdir and special workdir /opt/cmssw
(a) always use tmp directory in the workDir, (b) rename tmp to tmpX if one is building under /tmp/... this is to avoid workDir/tmp to be different then symlink workDir/tmp, (c) special case for workDir==/opt/cmss which will build rpm in <pwd>/opt/cmssw but rpm prefix will be set to /opt/cmssw only (this is for online releases)
Add a "then" that got lost in one of the init.csh reshuffling a while ago.
Always trust the server certificate when checking out with svn.
Misc fixes. * Correct message when using the wrong architecture flag (e.g. osx* on linux). * Check for rpm before using it for anything. Die with sensible message if not found. * Always remove .a and .la files in the post %install part. Define %keep_archives to be non null in order to keep them (required for generators). * Always remove pkgconfig directory, unless keep_pkgconfig macro is defined. * Remove files / directories found in the %drop_files macro. This allows to clean up packages, without having to specify a custom install section. * Strip files found in the %strip_files macro. This allows stripping packages without having to specify a custom install section. It also handles differences between mac and linux (strip -x vs strip).
Drop need for external curl or wget utilities. * Use urllib2, now that we have python2.4 everywhere. * Do not print spurious messages when files are not found in cache.
Remove extra 'self.' in getCommandPrefix().
_topdir must be defined from rpmbuild command line to prevent the command from creating $HOME/rpmbuild directory structure - which in turn does not work for computing installations as installs are done on an account which (deliberately) has a non-writeable home.
Drop ancient support for python2.3.
Ignore certificate errors.
Misc fixes for supporting non-system compilers on macosx. * Remove unused code. * Propagate correctly the choice of not using the system compiler.
sync back latest changes plus cleanup of CVS directories and _ONLINE hack removed
cleanup: removed _ONLINE hack, remove CVs directories using python for patch releases
Based on V00-18-02: call PackageManagement.pl with --export so that we do not get CVS directories in src
Based on V00-16-05-04: call PackageManagement.pl with --export so that we do not get CVS directories in src
Refuse to do anything is special characters are found in the workdir.
Fix error message. * When detecting a broken link, print the full path, not just the part relative to the workdir.
Delay $PATH setup until after sourcing dependencies so a package ends up preceding its pre-requisites in the final $PATH order.
Only insert existing directories into paths.
Adjust white space to make code more readable.
Only set one of LD_LIBRARY_PATH, DYLD_FALLBACK_LIBRARY_PATH.
Do not introduce an empty directory when modifying path variables.
sync back latest changes plus new bug fix
bug fix: treat only <tag><number> as cmsBuild added tags
Show . every second if --progress option is specified.
sync back latest dev plus stop processing when SCRAMRT_SET env variable is set
stop processing if SCRAMRT_SET i.e. scram runtime env is set. stop building is PackageManagement.pl script exit with non zero code (this change was somehow dropped
marged bug fix for V00-17-02: allow -NNN, where N is digit in the version string. cmsBuild was suppose to allow this but due to the bug it was not but now fixed.
marged bug fix for V00-16-05-01: allow -NNN, where N is digit in the version string. cmsBuild was suppose to allow this but due to the bug it was not but now fixed.
bug fix: allow -NNN, where N is digit in the version string. cmsBuild was suppose to allow this but due to the bug it was not but now fixed.
Clean up CVS files in checkout via python, rather than via bash.
Use architecture as RPM version for online packages.
Schedule subpackages for upload.
Fix a bug which was forcing system compiler on linux.
Better detection of running on linux.
Remove incorrect deprecation message.
Spring cleaning. * Now only two workflows are supported: cmsBuild [<common options>] -c <cmsdist> -a <architecture> build <packages> cmsBuild [<common options>] -c <cmsdist> -a <architecture> upload <packages> Notice that upload implies build and that an additional `--no-bootstrap` option can be provided to create the bootstrap kit on new architectures. * Redundant and unneeded options removed, in particular --test-tag is always false and --tag is now the same as repository. * Improved --help. For more information refer to the hypernews thread: https://hypernews.cern.ch/HyperNews/CMS/get/sw-develtools/1353.html
add SpecChecksum to subpackages, fix uploading of subpackages, add string to package revision (used online)
Sort dependencies when printing them out.
Use python unbuffered. * See thread https://hypernews.cern.ch/HyperNews/CMS/get/sw-develtools/1337.html
Improved behavior of TagCacheAptImpl.requestTag. Andrea Bocci was complaining that without --names-only a package also matches subpackages. This then breaks because subpackages don't have a SpecChecksum (which is actually wrong) and the logic fails. While more investigation should be done, this seems to me harmless.
Add documentation of TagCacheAptImpl.requestTag method.
revert to 1.351, plus documentation only changes from 1.352, plus fixes from 1.354
improve documentation of calculateHumanReadableVersion for appendRevision
sync back with 1.354
fix comparison
based on 1.352 - hopefully fix dependency checking together with "appendRevision"
sync back latest changes plus fixed the cmsBuild now stop when PackageManagement.pl script exit with non-zero code
cmsBuild now stop when PackageManagement.pl script exit with non-zero code
- make pkg.pkgRevision a string - add --append-revision option - minor fixes to option descriptions
fix regular expression to detect 32-on-64 build for online architectures
disable cache on curl/wget - needed for online builds
Allow site specific spec files. * `--site <site-name>` option (or similar `site` configuration variable) added. If specified, when looking up for dependencies cmsBuild will prefer `<site-name>-tool.spec` to `tool.spec`, if the former exists. This can be used to specify special configuration for sites or, for example for online, where some of the tools have to be picked up from the system. The advantage compared to now is that special cases in *dependent* tools will not be needed anymore.
Check for rpmbuild delayed until right before it is actually used.
Better error message when a package fails (no empty lines anymore).
Improved download. * Use curl -L to follow redirections. * Have --ignore-tc-errors option to run with `PackageManagement.pl -k` so that build does not fail if one of the packages cannot be checked out. * Cleanup DownloadOption class.
Misc improvements for building on mac. * Reduce the artificial delay between building two different packages from 1s to 0.1s. I should really implement a real scheduler at some point. * When parsing the spec line header, first do an echo so that things like `date +%Y%m%d` can be used to specify a version. This is handy for stuff like IB. * Set LANG=C to avoid locale related issues when parsing output of various commands. * Use a more standard set of options when using "file" to determine file type in the macosx %install postamble. * Exclude .pyc files by hand from install_name relocation procedures.
add supposrt for setting non-env variables in init files. All <TOOL>_* in init files will be non-env now. Fix for NOCOMPILER flags defined in IMPORT files
Remove creation of temporary git repositories.
test - simplified dependency checking when subpackeges are involved
fix BuildPackage.doDryRun() to properly take into acount subpackages
fix typo
create cache symlinks for subpackages, too
SubPackges do not have sources, and fix Package.__init__() to better cope with SubPackages
explicitly set CMS_INSTALL_PREFIX to RPM_INSTALL_PREFIX if not already set for post and postun sections
implement support for subpackages
*** empty log message ***
fix a couple of comments
Misc fixes. * Gracefully exit with an error messase if rpmbuild is not found. * Make dependencies of executable files (both libraries and proper executables) relocatable. This only applies for our stuff, not for that we get from the system.
use rpmLocation() insted of join(...) everywhere
add support for the "## SUBPACKAGE <subpackage>" directive, in order to create subpackages
read additional files to include or exclude from %_builddir/files
add support for options to the common spec file sections (%prep, %build, etc.)
support "delayed expansion" of %%name etc. when expanding spec macros
make rpmLocation a member of Package, and uniform error messages for post-build checks
make logLevel overridable in the [global] section of the configuration files
default for trace is set to False
Default values updated. tag=cms, trace=True, assumeYes=True, onlyOnce=True
actual base release version is now passed via cmstc url now along with the tag collector base queue. No need to have special check for _ONLINE. Old cmstc url will still work
Revert back Dan fixes for macosx as they trigger a rebuild.
Options to configure server-side tools during upload. * Adds --server-apt-root option to specify which environment to be sourced on upload. * Adds --server-genbasedir-path to specify which genbasedir to pick up on upload (this is needed because we are actually using a hand patched version of genbasedir, even compared to what we have built).
in osx postamble, use actual name of file instead of basename of the old install path; needed for Capabilities plugins that are renamed after creation
Pick up --server option correctly.
Always print out the CVS revision to simplify expert debugging.
Now it does not remove . from the gccver when system compiler is used. Using this will rebuild every thing which uses system compiler to build so basically online and osx builds
Copy cmsos to the temporary repository used for upload.
marged back the 1.313 revision including the svn fixes
Updated cmsBuild to support export command of svn in order to avoid checking out of .svn directories
Fixes missing "Done processing" message as reported by Andreas.
merged fixes from Andrea Bocci for online patch build.
RPM scriptlet (%post, %pre, etc) parsing now done in a separate helper method.
Cleans up stale rpm files. At the moment cmsBuild stops whenever something wrong is found. For example, whenever cmsBuild dies after the rpmbuild command but before the actual rpm installation in the work area, it leaves the built rpm behind and asks the user to remove it on the following execution. This patch changes things so that cmsBuild always goes back to a "sane state" without asking any questions (i.e. it deletes the stale rpm, without asking any questions). Old behaviour can be restablished by passing the --no-cleanup option on the command line, albeit there should not be any need for it, since the deletion happens only on the following cmsBuild execution and the broken package is available for inspection.
Remove old & unused apt stuff
Avoids gcc -> gcc recursion. Patch from Lassi.
Silenced output from skipPreInstall option: the output now will only appear in the DEBUG mode.
Removed accidental empty line
Merge in changes for online release from rev. 1.294-296 on top of V00-08-07 (this tag is currently used for build CMSSW 2.2.X releases). Also silenced output from skipPreInstall option: the output will only appear in the DEBUG mode.
More exception messages fixed.
Creates a git repository after unpacking sources. In order to facilitate porting to new platforms, now cmsBuild creates a temporary git repository with the unpacked sources and deletes it if a build succeeds. This way, in the case the build fails one can patch sources inplace and get the delta by simply doing git diff in the `BUILD/arch/group/name/version/` directory. Of course, in the case git is not there nothing happens. This will trigger a rebuild of all the sources.
Correctly relocate the name of libraries also when they end up in `.so`. Under macosx sometimes (e.g. xrootd) dynamic libraries still have a `.so` suffix and they fall through the `otool` library renaming, causing problems later on. This patch considers both `.dylib` and `.so` as candidates for renaming.
Misc fixes to PackageManagement.pl. * Fixes the --mypackagefile option so that it works with absolute paths. * Does not use xargs -r option since it does not work on macosx. * Introduction of PackageManagement.pl broke the --work-dir option. This fixes the problem.
Adds support for tags list in a file. At the moment the server part in the "cmstc://" url is not used, i.e.: cmstc://?output=foo This patch allows to use it to specify a tag list to be passed to `PackageManagement --mypackages`, either relative to CMSDIST or as an absolute path, e.g.: cmstc://tagfile.txt?output=foo cmstc:///home/ktf/tagfile.txt?output=foo This is done by modifing `parseTCUrl` and `downloadTC`.
Fixes (some) of the print-outs on exception. Due to a stupid bug, exception messages are splitted by letters. This solves some of the issues.
Executes the %post scripts when building bootstrap-less. Since in bootstrap-less mode there is no actual installation of the rpm packages produced, we need to extract the %post installation scripts and make sure they get executed correctly.
Fixes the deprecate-local command and related to behave more reliably. * When a conflict is found, the full "deprecate-local" to be used to resolve it is printed out. * `deprecate-local` now actually works in different conditions, especially when the workdir was not the default one.
09 compatible version
08 compatible cmsBuild for patch builds
Added skipPreInstall to configurableBooleanOptions list: this corrects the option type to be boolean inside createDeafultSections. Use standard cmsBuild log instead of printout.
Added an option --skip-pre-install-checks to skip execution of default CMS pre-install scriplet. This is needed for example for building online rpms installable by a superuser (quattor requirement).
To avoid leftovers after uninstall, let every rpm own the directory structure. Now when the last rpm is uninstalled, the directory structure is also gone.
adding fixes from Lassi
fix path to lndir
hard-coded path to lndir to avoid trouble ith upload
Use `cp` in place of `find` to copy bootstrap drivers in private repository.
Quitting tracker message moved to the `TRACE` log level.
Better message while waiting for build to complete.
Hardcodes /usr/X11/bin/lndir.
Patch for downloadCvs from Lassi applied. * Now downloadCvs works also in the case of cvs export of multi-level directory structures.
revert back to head
21X PKGTOOLS compatible version
patch build support for sources
Silencing debug output.
revert to previous head
forgot to sync the version actually used for the 2.1.X builds
Multiple revisions on server bug fixed. * Reported by David.
bug fix/ tweaks to revision features
geTest -> cms repo
add some help for --upload-tmp-repository
Fixes a bug related to the new revision support. * Reported by Zhen and Frank.
Misc fixes. * It now supports the `## REVISION n` metacommand which allows the developer to specify a different revision for a given package. * Does not expect revision to always be equal to `1`. * Fixes letter by letter printout of RpmInstallFailed exception.
Allows packages not to "Requires: gcc" if `## NOCOMPILER` specified. * This is useful for "script" only packages like cms-common and should allow data files to be compiled in parallel with gcc. Hurray!
Better error message in case the rpm-preamble is too ancient to be used. * Since some people (PRODAGENT, CRAB) are using old, unsupported versions of the rpm-preamble for historic reasons, we now print a sensible message asking them to update to the latest version, and then quit.
fix csh bug in line that sources dependencies
Contents of revision 1.270 are put back on top
Patched version used for super-user installable online releases
cmsBuild now also defines directpkgreqs which contains only direct dependencies plus gcc dependency
Fixes bug in help method.
Commented code removed.
sorting checksums
fix trivial typo
Replaces `source` with `.`. * Required by Ubuntu ash shell.
More refactoring work: * Package.specdir, Package.sourcedir and Package.pkgdir are now python properties. * doFetch helper method suppressed. Log message now part of fetchSources.
Misc fixes. * --ignoreCompileErrors renamed --ignore-compile-error. * Loggin levels are now NORMAL=10, DEBUG=20, TRACE=30.
Reworking of the build check procedures. * cmsBuild is now able to detect when there is nothing to upload and exists gracefully in that case. * The checkBuildConsistency helper function has been refactored to BuildChecker class. * The upload function now returns False rather than None if no packages to be uploaded are specified. * The BuilderAction class now has a produceStuffToUpload virtual method which can be overridden to specify wether a certain action produced something which should be uploaded or not, on successful completion.
More clean ups. * PackageFactory is now passed only once per Command. This means that a bunch of stuff done in initialization is now done only once. * createWithSpec helper function is replaced by PackageFactory.createWithSpec * The class for the cmsos.file dumper is now a parameter of the PackageFactory constructor. This makes the PackageFactory still indipendent of CMSDIST files, so that the test_Package01.py works again. * test_Package01.py is now working again. An assert was broken because Package.sources now stores absolute paths, rather than relative ones.
adding ignoreCompileOptions to cmsBuild (to be debugged further)
Lots of refactoring. * PackageFactory is now the owner of the regular expression used to parse the headers in the spec file. The regular expressions themselves are stored as member variables of the HeaderMatchingRegexps class. * calculateChecksum helper method is gone. A new class ChecksumCalculator is provided to calculate the checksum of a given package. All the code to calculate the checksum which was previously sparse between calculateChecksum and Package.calculateChecksums is now collected there. * fetchLocal is not used anymore to get cmsos.file. A special object of type CmsosDumper is now available in every Package (owned by the PackageFactory) which caches cmsos.file and dumps it in the wanted location. There is now a method Package.dumpCmsos which writes cmsos to the dir with all the sources for a given package. * Package.calculateChecksums was renamed to Package.calculateChecksum. It now uses the ChecksumCalculator object and as a result the Package.checksums property is now gone. * Package.sources list now contains the full, absolute, path for sources which are local. This way we avoid in a number of places (doDownload, download) to have to pass the cmsdist location and do the "join" every time. Some code which was relying on the source not having a "/" in it to decide wether or not its a local source file, now uses a regular expression. * There is now an ActionFactory to create various build actions. This simplifies the creation of actions. Moreover, when creating the action tree actions which do nothing (e.g. download and empty set of sources) are not added to the tree.
fixes for cmsBuild depencency checksums with imports
More fixes.
Typo corrected.
Final attempt to fix the asmcklmckasdcc 'screen' problem...
Better fix for the screen problem, proposed by Shahzad.
More fixes to handle escape characters in user environment.
String escapes the environment variables before setting them. * Should fix the screen problem David was seeing.
Variable PACKAGE_NAME_CATEGORY added to init.sh/init.csh
Fixes the problem reported by David and adds a test case for it.
Code cleanup. * A Package object now uses the factory used to create it to create the Packages associated to its dependencies.
postProcessSpec helper method moved to PackageFactory.
More cleanups: * Package.sectionPreambles and Package.sectionPostambles are now properties. Their actual value is now set by PackageFactory. * Package.sectionPreambles is now read-only.
More clean up. * In Package.initWithSpec and Package.parseRequires now we use PackageFactory.createWithSpec rather than the standalone helper createWithSpec.
More cleanups of the code in sight of handing it over to Andreas and David. * unsafe_mode cfg option renamed unsafeMode for consistency. * rpmGetPreamble helper method removed. * PackageFactory is now responsible for loading the preamble and injecting it in newly created Packages. * Package.initWithSpec now takes a list of lines as input. File reading is done in PackageFactory.createWithSpec. This simplifies the writing of unittest for the Package class since it now does not depend on the existance of CMSDIST. * Package.preamble is now a property. * Package.calculateChecksums now does not reload the spec to calculate its checksum but uses the copy already in self.origSpec. * Package.rpmEvalString restructured for easier reading. * Package.rpmEvalString now throws an exception if the rpm-preamble.file is malformed.
Initial refactoring of the Package class. * Package objects are now created by a PackageFactory. * createWithSpec helper method now uses a PackageFactory. * MetaSpecSyntax object introduced with precompiled regular expression to be used for parsing the specs.
Expand spec refactoring.
Typos fixed.
rpmRequiresAndSources helper function moved to Package.getRequiresAndSources. * Package.__getTmpSpecName introduced.
Commands can now be repeated in a cfg file. * It's now possible to specify a label in a section definition in the cfg file to have the same command repeated twice with possibly different options.
Now also the requires_cache takes into account the architecture.
Makes sure that the objects in the package_cache are divided by architecture. * New CacheProxy and ArchitectureDecorator objects.
Unused `pickle` import removed.
Add support for specifying compiler version via --compiler-version option. * With an appropriate cfg file we can now build all packages for all the platforms with a single cfg file. * detectCompilerVersion helper method added to clean up some code. * parseRPMLine helper method now takes --compiler-version and --compiler-name options into account. * Unit test for detectCompilerVersion and parseRPMLine added.
Refactoring of calculateChecksums * using a join over a list of strings rather than a for loop.
Fixes problem with linux32 reported by andreas. * Extra space between linux32 and sh added.
Correctly detect --use-system-compiler default for given architecture. * Making sure that the correct default for --use-system-compiler is adopted when an explicit architecture is specified via --architecture option.
Fixes linux32 detection. * Typo in the option name fixed. * Makes sure it always use getCommandPrefix () helper method in order to detect wether or not linux32 applies for a given platform. * More debug output.
Beautification of the printing of lists.
Workdir option behavior changes. * The workdir (--work-dir/workDir) option is now always made absolute path before anything else is done with it.
Bootstrap done message also in non-interactive mode.
Printout in command `bootstrap` online for interactive usage. * Bootstrap now prints out where to find the correct init.sh/init.csh on when in interactive mode.
Taking the abspath of workDir at the beginning of the bootstrap procedure.
Additional logging in BootstrapLocationGuesser.
guessArchitecture now takes the --use-32-bit-on-64 into account. * `--32-bit-on-64` bit renamed `--use-32-bit-on-64`. * `useLinux32` renamed `use32bitOn64`.
Convert workDir to absolute path before doing anything.
More clean ups: * More messages moved to DEBUG level. * Fixes syntax error in debug message.
Clean up of source code in sight for V00-07-00 tag * Change all the print statements to log * Document the log function * Change most of the log messages to be DEBUG level rather than TRACE, leaving TRACE only for following the loop of the action scheduler.
cmsBuild is now able to detect the architecture to be used. * Also detects wether or not to use the system compiler by default. It's now possible to have uniform configuration files between osx and linux. * It is still possible to override the detection via the usual command-line / configuration options. * guessArchitecture / guessUseSystemCompiler helper methods added.
Complain if the bootstrap was not found. * Prints out a sensible message, rather than just throwing an exception.
More cleanups of the fetching subsystem: * There is now an helper method initDownloadHandlers that takes care of setting up the detected download handlers. * Revamped test script for download handlers * Now the download handlers take a specific DownloadOptions object rather than the global options one. * Typo fixed: selectHttpDownloadHanler is now selectHttpDownloadHandler. * downloadTc now calls packCheckout using tempdir rather than exportpath.
More integration fixes on David feedback * Fixes a bug in downloadTc. * Initial guessArchitecture method. * Configuration for webtools nightlies.
Fixes download of sources from CVS.
cmsBuild is now able to locate the most recent apt version to use.
Misc fixes of bug reported by David: * Avoids messing with the SHELL environment (fixes problem in building gcc using tcsh?). * Uses uploadTmpRepository rather than obsolete tmpRepositoryName.
fix my commit:(
fix tag collector fetch code in cmsBuild
fix trivial typo
Uses absolute path for target library when fixing it via install_name_tool. * MacOSX only.
More fixes: * Better handling of malformed spec files * configuration file now can take %(pwd)s macro for the current directory. * Fixes bad usage of getLocalUser helper method.
More flexibility in naming convention for temporary repository. * Option --upload-tmp-repository <name> added which allows repository called something.<name> rather than just something.username.
More fixes toward a cleaned release PKGTOOLS_0_7_0. * checkHttpGetMethod removed. * Fixed a bug which would have ignored the default CVSROOT if a url of the kind `cvs://?` were supplied. * Better logic to detect what to use between `wget` and `curl`. * Method `download` now uses `downloadHandlers["http"]` for http/https urls rather than hardcoded `downloadWget` method. This enables `curl` support. * Temporarily avoid fatal error if the apt repository is broken. * Typo fixed in SOURCES_CACHED log message. * Configuration option `dateFormat` is now `%y%m%d` by default. * Better logic for `build` command execution which first decides which are the packages to be build and then builds all of them, rather than doing a step by step approach. * The upload will now copy all the boostrap drivers from the parent repository to the test one. * Checking out of CMSDIST from cvs is now performed using executeWithErrorCheck helper method. * Debug printout removed.
Method `downloadSvn` is now the handler for `svn` scheme.
Overhaul of the fetching subsystem. * Subversion support integrated from git tree. * Helper method parseUrl now takes a dictionary `defaults` with defaults for arguments and a list `required` of required arguments. * Default/required arguments support moved away from parseGitUrl, parseCvsUrl, parseTcUrl to parseUrl. * Helper methods packCheckout and executeWithErrorCheck added to simplify download methods relying on a "checkout and pack" workflow, like cvs, git, tag collector and subversion.
Removing FIXME regarding fixed bug
Safer parseRpmLine method implementation. * parseRpmLine now handles the case in which the "### RPM" header is not on the first one. * Typo fixed.
Check added for which download handler (wget or curl) to use for http(s)/ftp(s).
Fixes type problem for option/configurable. * useLinux32 is now a boolean, rather a string.
More fixes to have %cmsos expanded in Sources. * fetchLocal creates the target directory if it is not there. * typo removed in the error handling of bad/missing configuration filename.
Minor fixes to get webtools nightlies to work. * escaping % in a string containing %_rpmdb, since the string now gets formatted. * Fixed a problem due to passing pkg rather than pkg.options to getCommandPrefix method.
--only-once option added. * Passed on to bootstrap.sh
Properly handling --assume-yes and --only-once.
cmsBuild now prepends linux32 if the architecture requires it. * No more need of extra linux32 in front of ./cmsBuild.
Support for bootstrap -only-once option added.
Configuration files now has a "home" macro.
Support for bootstrap -only-once option added.
More fixes to the cfg parser for cmsBuild. * TagCacheAptImpl has a new method `update` which does the apt-get update. * --cmsdist-tag default is now "" rather than None. * --compiling-processes default is now 0 rather than None * saveOriginalEnvironment and restoreOriginalEnvironment helper functions added to save / restore shell environment between one command and the other (to allow different environment per command). * Logic for option parsing now behaves correctly. Options precedence is: * Local section in the configuration file. * Options in `globals` section. * Command line options. * Command.run now takes care of bootstrapping (if requested) and handles environment setup. * Cfg file parser is now case sensitive.
%(workDir)s macro available in configuration file
%(architecture)s macro available in configuration file
Option `--cmsdist-tag` added as a semplification for most common usecase.
Configuration file to create a bootstrap kit made working. * configs/test_create-bootstrap.cfg created * Command.__lt__ moved to Command.__cmp__ for proper sorting of the commands. * It is now possible to specify `%(tmpdir)s` and `%(date)s` in the configure file as placeholders for a randomly created temporary directory (via `mkdtemp`) and for the date of the day. Format for the temporary directory and for the date can be specified (only) from command line options `--temp-dir-prefix` and `--date-format`. * --assume-yes (assumeYes in cfg) option is now passed to bootstrap script. * Missing parameter added to a `downloadWget ()` call.
Cleaning up the assumpion that the workDir is the same directory as the one cmsBuild is found. * basedir helper method removed () * downloadHandlers now take the options object as input. workDir is picked up from there.
Command execution re-engineered. * class Command now has a `run` method. It takes care of switching to the approriate directory, fetching CMSDIST (if required) and calling the callback. * `Command`s are now executed via their "run method".
Bootstrap now works properly from cfg file. * Bootstrap now takes into account the workDir option. * Every command happens in the "workDir" location. * Command class now has a __repr__ and __lt__ method. * `priority` option can be added to the cfg file to specify the order for executing different sections. Low priority means being executed first. This is useful for example to have the bootstrap scheduled before build options.
parseCfgFile now uses setOptions as well
--instroot renamed --work-dir
cmsBUild bootstrap now takes -architecture <architecture> as an option, not as an argument.
In the configuration file it is now possible to specify options on a per command basis.
cmsBuild can now execute multiple commands in a row. * Useful, for example to bootstrap, build, check and upload in a single shot. * Command class introduced.
cmsBuild can be driven by cfg file. * --cfg option added. Right now it only supports local files. * Configuration is a standard ini file. Right now it only has a [globals] section which allows you to specify global options like the repository and so on. * Configuration file overrides options specified by command-line.
cmsBuild is now able to access CMSDIST on remote servers (CVS, git, TagCollector). * If the option value for --cmsdist starts with cvs://, git://, tc://, http://, etc, cmsBuild interprets it as an url and fetches the files into $PWD/CMSDIST (possibly overriding what's already there). Notice that this was only tested for CVS albeit the logic does not depend on it. * It is now possible to omit the cvs server and password in cvs:// urls. This is in particular nice to specify CMSDIST checks out from cvs with --cmsdist "cvs://?tag=ge20071204" * MalformedUrl exception now take an optional missingParams parameter to be used to specify which bits of the url where missing.
Defaults for CVSROOT and CVS_PASS when downloading from Sources from CVS.
Better error message when not able to install a package.
Fixes for BUILDIF and macro expansion in Sources: * BUILDIF clause it's executed before %initenv * BUILDIF clause is now appended in front of %pre, %post, %preun, %postun since they could requires some feature which was not build. * Obsolete rpmEval and rpmEvalProperty are now removed. * It's now possible to use macros like %cmsplatf and %cmsos in Source: lines.
Using the new single bootstrap.sh
%install postamble to do install_name_tool magic add. * Required to get macosx builds fully working and relocatable. * This is now able to build working apt & co on leopard. Confirmed by Simon.
proper dependencies for rpm. online_release stuff removed until we can actually provide proper support for different requires per different platforms
cmsbuildApiVersion defined to be 1
cmsBuild sets now cmscompiler and compilerRealVersion. Required by generic compiler support.
Patch to disallow root installation is now also in the %pre preamble, not only in the default
Patch from lassi to have %pre section exiting with 1 when installing as root
Upload now works correctly even if part of the dependencies come from apt.
SourcesDownload and InstallFromServer action fixed. * a missing "self." added * Missing .split("\n") added.
checkIfOnServer and subsequent installApt fixed.
bugfix in fetch command
%post now relocates init.{sh,csh}. Extra spaces removed.
stripping spaces at the beginning and end of # INITENV commands
Does not sync source files if they are already there
tmp always created if it does not exists
%initenv is now part of the preamble
upload command re-engineered * --sync-back option added * Now all the actions on the repositories are done by the Repository class this results in an easier to read upload method. * Full chain tested on a separate copy of the cms repository. The new workflow seems to be 100% compatible with what we were doing before.
More fixes toward cmsBuild integration with current workflow. * rewriteRequires now also adds requiredtools definition for tool-file generation. * Better parsing of INITENV commands (Thanks to Shahzad) * Helper script "downloadOracle.sh" added to repository to pre-download oracle from cmsrep.cern.ch rather than having to go to the official oracle site.
Uber-patch for cmsBuild: * Tag assignment mechanism now fully based on apt-get, no more need for a tag database or a central cgi-script to keep track of the association between a build checksum and the associated tag. Notice that no migration is required for the old packages, and while new and old packages will not be mixed they also don't interfere with each other. * 'check' command added to make sure that the BUILD area is consistent with the build procedure performed (e.g. no tampering with the BUILD area happened) and with the server (e.g. no one uploaded a package with the same name in the official repository). * 'check' command is based on a new action-based workflow builder which decomposes a task in smaller actions, builds the decision tree of which action will have to be taken and which not and checks that the actual result is consistent. In a later version we could use this mechanism to achieve even higher level of parallelism (e.g. download sources of other packages while gcc builds). * 'upload' command added to replace the separate updateServer.sh script used during install.sh era. The command performs a 'check' (see above) before the upload, to ensure that junk is not uploaded. * 'upload' command has initial support for 'upload permissions' to avoid having random developers uploading random packages with random tags. * dozens of checks, speed-ups and bugfixes.
Merge branch 'merge-workers' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS into merge-workers
Merge branch 'merge-workers' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS into merge-workers
Support for gcc executables in bin-real, rather than in bin. * The idea is that in order to support distcc it's enough to have distcc in $GCC_ROOT/bin while gcc itself will be in $GCC_ROOT/bin-real. This way we can create links from distcc to bin/gcc which will then find the real executable in bin-real.
Remove the limit on the packages in the schedule queue that can be scheduled at once.
Now a packages waiting for its dependencies does not block others to be built.
Better scheduling algorithm for workers. * Now we dispatch a package as soon as its dependencies are done.
Acquisition/Release of locks is now logged in TRACE level.
Better print-out for thread info.
Merge branch 'master' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS into merge-workers
Merge branch 'git-download'
More bugfixes in downloadTc * tmpdir renamed tempdir in the command string. * "if not error" should have been "if error"
Corrected command for tagcollector download. * $tempdir replaced with %(tempdir)s
Multiple fixes to bootstrap procedure. * Better message when the bootstra-$SCRAM_ARCH.sh file is not found. * Now cmsos gets copied anyway, since it is required to be able to even just parse a cfg file.
Better success message on bootstrap.y
Correct --cmsdist argument not required if bootstrap command is specified.
Now also non bootstrapped installation have some memory of which packages where already built.
Now looks up for the rpm in RPMS/apt repository before downloading.
Better printout when building a package. Including the dependencies.
Merge branch 'master' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS into loglevels
Message displayed when using a non bootstrapped area is now more explicit.
* Code cleanup for fetchSources
More print statements replaced with log.
More print messages replaced with "log".
More cleanup of print statements. * Use map/lambda to print lists. * More print statements moved to use "log" method.
Infrastructure for multilevel debug output added. * free function "log" introduced. * log used in place of print in a number of places.
* Do not use the full cmsBuild to calculate the md5 id of a given spec, but only the default preambles/sections.
* More debug statements removed.
* debug print statements removed for download method.
* better error messages when downloading stuff.
bootstrap option added. * It is now possible to run cmsBuild bootstrap <architecture> to get a software area bootstrapped using bootstrap-<architecture>.sh. This cuts out most of the recipe to do a new rpm build.
* parseCvsUrl now always adds the pserver port (2401) if it is not there.
* Fixes a problem when removing unwanted requires.
* download () now attempts to fetch files from cache before going to the official location.
* --server and --repository options added.
* cleanup of fetchSource function using map and closures.
* "fetch" command added.
* the download() method returns immediately with True if the downloaded files and the link are already there.
* Creating a symlink only if it does not exists.
* help function called correctly.
* typo: self in place of pkg
* help now displayed if no command passed to cmsBuild * "sources" command now shows patches as well.
* cmsBuild now can take different "commands" on the command line. * Default behavior (building packages) assigned to the "build" command. * "sources" command added to show which are the sources for a given package. * "pretend" command added to show which packages the build command will build.
* First attempt to get the internal download method to cache files that have the same url.
* Now using the internal download method rather than fileFetcher to get files.
* download method added. * unit tests for the newly introduced download method added.
* downloadTC method added * parseTcUrl method added * createTempDir helper method added.
* parseUrl helper function added. * parseCvsUrl now uses parseUrl.
* downloadCvs now behaves correctly * downloadCvs now takes only source and dest * downloadCvs, downloadWget and downloadCurl now takes the destination directory as argument, rather than the actual filename.
Trying to get the cvs fetcher to work
Trying to get the cvs fetcher to work
downloadCvs: now it creates the export dir.
Creates a cvspass file for pserver based authentication
* dummy downloadCvs helper function added.
* basedir helper method added.
* downloadCvs now checks that all the required arguments are there.
* Default strategy options for cvs downloads is "export"
* MalformedUrl exception added.
* Method to parseCvsUrls and its unit test added.
* Code cleanup for downloadWGet and downloadCurl
* Initial version for helper methods: - downloadExternal - downloadCurl - downloadWget
* Helper method for checking which method to use for fetching http/ftp/https files added.
* Creation of default sections now includes also the correct "postamble" associated to a given section (not trivial, because the "postamble" might be generated from the spec itself, like in the case of the %install one).
* Fixes regular expression to postprocess Requires.
* Missing space in pkgreqs.
* Finally fixes the problem with the wrong "Requires"
* Typo fixed.
* Remove all the 'Requires' statements aparts from those generated by cmsBuild itself.
* default prep phase fixed.
* BUILDIF metacommand implemented properly.
* better aliasing message.
* fixing wrong usage of python "map" free function.
* Typo.
* Removes trailing empty spaces in the the ### RPM line.
* --do-not-build option added.
* More short-circuits for "system-compiler" package.
* Fixes typo.
* calculateChecksums now picks up the checksum for the system-compiler correctly.
* Using pkg rather than self.
* Typo: missing .
* Checksum calculated correctly also in the case of --use-system-compiler
* helper function calculateHumanReadableVersion added which does all the TagCache look ups and returns a sensible version string.
* FileNotFound exception handled.
* RPM header is now closer to install.sh one. In particular "Prefix: %instroot" has been reintroduced.
* Uses correct path for produced RPMs when installing.
* default argument of --system-compiler is "False"
* Passing a Package (besides the packagefilename) to installRpm.
* Initial support for system compilers and other compilers other than gcc. * Fixes a possible problem with --official-tag where: - cmsBuild --official-tag foo uuid - modify uuid - cmsBuild --official-tag foo uuid - modify uuid - cmsBuild --official-tag bar uuid would have resulted in uuid-foo.rpm, uuid-foo2.rpm, uuid-bar3.rpm, whereas now it results in uuid-foo.rpm, uuid-foo2.rpm, uuid-bar.rpm.
* Gcc always added as a dependency.
* bug fix for rsplit23 when the splitter is not in string.
* Fixes typo.
* fetchSources is now able to get remote patches.
* Writes done when apt has installed a package.
Merge branch 'master' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS
Merge branch 'master' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS Conflicts: cmsBuild
* Installation via apt/rpm of packages which were previously built by someone else now works.
* Uses \\+ rather then + when checking for availability of a package in an apt repository.
* Uses os.exists to determine if an rpm is actually already available.
* Provides an helper function for str.rsplit "rsplit" which has fall back implementation for python2.3
Merge branch 'master' of ssh://ktf@hifi-bonsai.com/Users/git/PKGTOOLS Conflicts: cmsBuild
Initial support for rpm installation.
* Support for request/test/commit procedure for humar readable tags.
* Extra tags are only applied if a given package with a given version was already built (with a different spec/patch/cmsBuild version).
* Rolled back to 1.41.
* NotCorrectlyBootstrapped exception added. * Handling of NotCorrectlyBootstrapped and RpmInstallFailed added.
* Fixes bug in rsplit which was always using "/" as a separator.
* Multiple "from os import" statements condensed into one. * Now calls sys.exit (1) after a fatal error.
* NotCorrectlyBootstrapped exception added. * Handling of NotCorrectlyBootstrapped and RpmInstallFailed added.
* Installation via apt/rpm of packages which were previously built by someone else now works.
* Uses \\+ rather then + when checking for availability of a package in an apt repository.
* Uses os.exists to determine if an rpm is actually already available.
* Provides an helper function for str.rsplit "rsplit" which has fall back implementation for python2.3
Initial support for rpm installation.
* Support for request/test/commit procedure for humar readable tags.
* Initial support for request/test/commit procedure for humar readable tags.
* Extra tags are only applied if a given package with a given version was already built (with a different spec/patch/cmsBuild version).
* Initial commit for the tag cache.
* Packages are now sortable. Package A is greater than package B if Package A depends on package B. Moreover, if a package does not depend on another, the one with less dependencies is said to be greater. If two independent packages have the same number of dependencies, than they are sorted alphabetically.
* FileNotFound dummy exception class created. * Now picking up also patches and using them to calculate the checksum. * Not using remote patches and sources in the checksum calculations. * Quoting url when using fileFetcher to fetch sources.
* FileNotFound dummy exception class created. * Now picking up also patches and using them to calculate the checksum. * Not using remote patches and sources in the checksum calculations. * Quoting url when using fileFetcher to fetch sources.
* Compiling processes option added.
* Correct wrongly positioned " in SET and +PATH of COMMAND_SH.
* Typo in the COMMAND_SH/COMMAND_CSH fixed. * INITENV preamble/defaults added. * Typo in init.csh creation actually created a file called init.sh
* Better compilation progress message, also specifing where to find the compilation log. * post-amble is now added to the last section. it does not override it. * Better handling of failures. It prints out the last part of the log.
* Now handling ctrl-c gracefully.
* Better comments on what is happening.
* Build output redirected to %_buildir/log. * pkgreqs generated by the python script.
* debug statements added.
* rpmEvalStrings now works correctly. * rpmBuild now picks up the correct build directory * rpmRequiresAndSources now works correctly.
* DUMMY_HEADER definition removed. * Description now treated as a normal section.
* helper method rpmEvalString added. * get gcc before everything, so that we can determine the architecture directly. * postProcessSpec now transforms also "Source:" and "Patch:"
* SPEC_HEADER is now in front the rpm-preamble.file * fetchLocal now drops the postfix. * add rpmEval debug statements.
* Initial attempt to source fetching. Looks like http sources actually work. Not yet true for local stuff.
* --unsafe option added. Specs files with the same "realversion" also have the same version.
* importing getenv.
* Header now defines the various pkg* macros.
* Helper methods specdir, pkgdir, buildir and sourcedir added to Package class * Now spec files are saved like in the old "install.sh" days (in SPECS/%pkgdir)
* escaping {} in postProcessSpec regular expressions. * calling postProcessSpec when writing spec to file.
* postProcessSpec method added.
* rpmEval somewhat implemented. * initial buildSpecs implementation.
* new helper method packageList added.
Better message when dumping dependencies.
* version now includes uniquely generated md5sum. * saveSpecs now saves also the spec for the actual package, not only for its dependencies.
cmsBuild md5sum is added to the md5Sum for all the packages.
md5sum calculated using python's md5/hashlib
* calculates md5sums for a given spec, it's dependencies and the imports.
* Saves the spec in SPECS when done.
* Support for INITENV macro language added.
* Default sections/preambles more similar to install.sh ones.
* Add the rpm-preamble to a spec. * Package objects are now cached when looking for dependencies.
* Rebuild the Requires line with the expanded cms-specific package names.
* Initial method to pick up Source and Requires as provided by the original spec file. * method to generate a spec file from the Package class added. * method to create necessary dirs addes.
* First attempt to get requires from the spec file and it's dependencies.
* Support for parsing sections (finally including multipackage subsections!)
* Now the spec parser recognizes imports.
* cmsBuild is now able to parse at least the first line of a spec.
Stub for install.sh rework (authors predetermined... ;-)
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.