Hi all,

instead of sleeping, tonight I invested time in something more fun: Debian
packaging support in gnustep-make.

That means you can type 'make deb' and, as long as you have a properly
patched 'equivs-build' on your machine, you should get a Debian package of
gnustep-make.

And if you include '$(GNUSTEP_MAKEFILES)/Master/deb.make', your library and
application magically also get the same superpower.

Please review 'Master/deb.make' in gnustep-make for more information,
including dependencies, how to patch '/usr/bin/equivs-build', and how to
make use of this nice new toy.

There are no dependencies in the packages yet. I would suggest extending
existing GNUmakefiles for core and other libraries and listing package
dependencies. A build script could patch this into GNUmakefiles for core
libraries; on the other hand, this could perhaps be used in rpm support as
well, or in automated packagers for other platforms.

I would not add '$(GNUSTEP_MAKEFILES)/Master/deb.make' to core libraries,
as this would make them depend on some software existing on Debian systems,
but perhaps not universally present. A build script can trivially patch
this in (just like dependencies, although it makes more sense to list
dependencies in the GNUmakefiles).

As Debian tracks upgrades based on package versions, note that packages
produced by these files will not be upgradeable in repositories, at least
until VERSION variable in GNUmakefile is updated.

-------

Now, on to troublesome parts.


Sadly, for some reason -DGNUSTEP does not get defined when the packages are
used in place of an installation made from source. Not only that, but
linking also fails.

==> Would someone be kind enough to take a look? I can't see what is
missing.

I have made some packages, configured to install in /GNUstep, available
here:
  http://ivan.vucica.net/debrepository/binary/
You can add this to your repository list (remove it after testing, who
knows how evil I am? :-) by running as superuser:
  echo "deb http://ivan.vucica.net/debrepository/ binary/" >
/etc/apt/sources.list.d/ivucica-repository.list

Packages were built on Ubuntu 12.04, and you'll need to add /GNUste/lib to
your dynamic linker search path:
  sudo echo /GNUstep/lib > /etc/ld.so.conf.d/GNUstep.conf
Then:
  apt-get install libobjc gnustep-make gnustep-base gnustep-gui gnustep-back
And you should also have clang on your machine, since I built the packages
with clang.

To see the problem, try building "SystemPreferences" from SVN. You'll run
into a problem in NSWindow.h with NSWindowDelegate; this is because GNUSTEP
constant is undefined.

[Note: These packages are, obviously, completely unrelated to Debian's and
Ubuntu's versions, and they're also (again, obviously) completely unrelated
to Philipe Roussel's packages.]



-- 
Ivan Vučica
[email protected]
_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to