gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Preliminary Debian packaging support


From: Ivan Vučica
Subject: Preliminary Debian packaging support
Date: Fri, 20 Sep 2013 06:10:00 +0200

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
address@hidden


reply via email to

[Prev in Thread] Current Thread [Next in Thread]