Mail Archive Home | think-dev List | June 2009 Index
|<-- Date Index -->||<-- Thread Index -->|
marc.poulhies@xxxxxxx (Marc Poulhiès) writes: > Olivier Lobry <olivier.lobry@xxxxxxx> writes: > >> Le 24 juin 09 à 08:43, Marc Poulhiès a écrit : >> NB: it may be good to also have the tar balls of the sources of the >> depending packages. But I don't know where we should put them... > > I propose to add a new (*sic*) directory on the SVN repository, named > "externals". Hi! [For the very lazy reader, you can skip directly to the end of the mail.] It was far easier than I expected, packages are ready and available on ubuntu's servers. I'll first describe quickly how I moved things in nuptse, and then I'll describe quickly the packages. I created a 'reorg' branch for nuptse reorganisation. I killed all binary jars from the source tree, modified the build script so that there is no hardcoded path anymore. Simply said, you have to take care of dependencies when running the build. Some deps are provided as sources only in the 'nuptse-externals' svn module, some are provided only on binary, etc. I won't go into details, you can check it by yourself. The old 'external' directory that was is 'thinkadl' is now in 'nuptse-externals/jars'. The 'added value' of this new nuptse-externals is to remove the dependencies from the nuptse source tree and we can now rebuild these jars. I did not fix (and I think I won't) the examples. As files have been moved, I guess all hardcoded paths in the build.xml, build.properies, common.stuff, etc may be broken. I added a tools/wrappers*/nuptse script that simply invokes the compiler. I'm not sure, I didn't test, but it may not work. I don't know if the -src-path arg is appended or overwritten when used more than twice. Some src-path components are provided by the compiler (fractal-c.jar and think.jar) and some is user defined. Now, executing the toplevel build.xml will build thinkadl, fractal-c and think jars. As for the packaging, I decided not to "pollute" main source tree. So for each module packaged, I've created a dedicated branch for debian packaging. There are 2 sources packages: nuptse-externals and nuptse (corresponding to the svn modules). The nuptse-externals is used to create libfractal-api-java, libfractal-adl-java and libfractal-deploy-java packages. These packages "replaces" previous thinkadl/externals jars. For asm and dtdparser, you can directly used ubuntu's packages (libdtdparser-java and libasm2-java). For codegen, I also created a codegen-java package (this should be renamed to libcodegen-java, that's why it's not commited yet). Simply said, you have to install: - libfractal-api-java - libfractal-adl-java - libfractal-deploy-java - codegen-java - libasm2-java - libdtdparser-java These are nuptse's dependencies. From the nuptse source package, 2 packages are built: - libnuptse-java, which contains think-adl.jar, fractal-c.jar and think.jar - nuptse-bin, which contains the shell wrappers to invoke the compiler. Instruction for installing the packages can be found here: https://launchpad.net/~marc-poulhies/+archive/ppa I could go into more details, but I'm not sure it will be useful. Basically, now the flow to build the packages (I use the 'trunk', but I should be merged with reorg first... when everything is ready and no regression has been found): - <some changes are made in nuptse's source, branch trunk> - checkout ubuntu-packaging branch - merge trunk - update debian/changelog file (use the 'dch' script). Double check the version and distribution advertised in the new section. - commit changes to debian/changelog - run: $ git-buildpackage --git-upstream-branch=trunk --git-debian-branch=ubuntu-packaging (here, you may have to change branches' names. git users will/should understand) If you are not using git but svn, there is an equivalent tool (svn-buildpackage). I guess it's working similarly... This will build the source package AND the binary packages. If you want only the source packages (if you are uploading the package to ubuntu for example), add the '-S' argument on the command line. Building packages for other branches (for dev branch for example) is as easy as changing the --git-upstream-branch value and adding a correct section in the changelog file. If you screwed up in the packaging part, you basically do the same, but only change the package version in the change log, not the upstream version. Debian tools will take care of everything (it won't reupload upstream source, as it didn't change, for example). Are for the very lazy, here's the quick install guide (that was the initial goal): add the lines: ,---- | deb http://ppa.launchpad.net/marc-poulhies/ppa/ubuntu jaunty main | deb-src http://ppa.launchpad.net/marc-poulhies/ppa/ubuntu jaunty main `---- to your /etc/apt/sources.list file. Update the package list, with '$ aptitude update' for example. Then, install nuptse-bin, with '$ aptitude install nuptse-bin'. You're good to go. This is only working for ubuntu, because debian does not provide any similar infrastructure. Canonical allows anyone to use their build servers and packages servers. Marc PS: what is missing for making a 'real' package: - a man page for nuptse-bin and its nuptse command (maybe by extracting part of the launcher) - testing it, before being able to advertise it to anyone ;)
|<-- Date Index -->||<-- Thread Index -->|
Powered by MHonArc.Copyright © 2006-2007, OW2 Consortium | contact | webmaster.