Discussion:
[Oscar-devel] New oscar-packager.
LAHAYE Olivier
2014-02-03 13:26:08 UTC
Permalink
Hi,

I've just enhanced oscar-packager (v1.2.3) requires oscar build 6.1.2r10511
New features:

=> support for GIT source retreival (method git:)

=> Support for Mercurial source retreival (method hg:)

=> Use OSCAR::Logger:oscar_log to have a clean usable log output.

=> Now supports the nobuild: tag in build.cfg. It is used to disable the build of a package for a specific distro.
syntax: (between [distr:version:release] and require: line:
nobuild: reason for not building hte packages (use distro, broken, not supported, ...)

=> New version to override the above: --ignore-nobuild

=> Now the repo is updated at each successful package build so we can have build.cfg internal require like the example below:
--------8<--------8<--------8<--------8<--------8<--------8<--------
[rhel:6:*]
requires: perl-devel
common: perl-module1
requires: perl-devel
common: perl-module2
requires: gcc
mybinlib
requires: perl-devel perl-module1 perl-module2
common: FooBarProg
requires: perl-devel mybinlib-devel FooBarProg
mySuperProg

--------8<--------8<--------8<--------8<--------8<--------8<--------
The above examples will build the 2 perl modules that are requires for the FooBarProg
Then it'll build the binary library (dist package as opposed to common which are noarch packages)
Then it'll install the 2 perl modules (and perl-devel) and build the FooBarProg that is required for mySuperProg
Then it'll install FooBarProg and finaly build mySuperProg

=> Now package building handles far more situations, and deb and rpm sides are almost equivalent.
The only difference is that oscar-package is also able to build srpms while it doesn't deal with debian sources packages .dsc.
After retreiving the build source from the url found in /etc/oscar/oscar-packager/{core,included}_unstable.cfg, oscar-packager looks in order for:
- build.cfg => as usual: read the file and build what's described inside
- distro build material (*.spec rpm/*.spec or debian/ directory)
- Makefile (=> tries a issue a make deb|rpm)

=> Now, rpms can be built from svn/git/mercurial if a specfile is present. (same behaviour as dpkg-buildpackage)
oscar-packager is now smart enough to parse a spec file and determine the tarball name expected by the build.
(does'nt work for %setup rules with a -n argument (yet))

=> No more glob (*.rpm or *.deb) used to collect built rpms. The build command is parsed and the built packages are collected using exact names.

=> Now, requires support generic requirements like : perl(Pod::Man)

Best regards,

Olivier.
--
Olivier LAHAYE
CEA DRT/LIST/DIR

Loading...