Re: One source, two binary packages

1998-04-17 Thread Karl M. Hegbloom
 Santiago == Santiago Vila [EMAIL PROTECTED] writes:

Santiago Currently, you force to have those tools installed to
Santiago everybody who wants to recompile the package.

 Why is it a problem to require that `autoconf' and `automake' be
installed?  Once you install the compiler, make, and the library -dev
packages, why not just install the auto* programs too, to complete the
system?


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-17 Thread storm
On 16 Apr 1998, Karl M. Hegbloom wrote:

  Santiago == Santiago Vila [EMAIL PROTECTED] writes:
 
 Santiago Currently, you force to have those tools installed to
 Santiago everybody who wants to recompile the package.
 
  Why is it a problem to require that `autoconf' and `automake' be
 installed?  Once you install the compiler, make, and the library -dev
 packages, why not just install the auto* programs too, to complete the
 system?

It makes the build environment dependant on an unnecessary tool.
Automake, autoconf, libtool, and gettext are all designed specifically so
they aren't required to rebuild sources using them.  Automake changes
reasonably frequently (as does libtool) and you can't be sure to get the
same version of the tool that you used.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-10 Thread Ben Gertzfield
 Scott == Scott Ellis [EMAIL PROTECTED] writes:

Scott You actually only need to run it once.  Once they've been
Scott run once (probably right after porting your changes into a
Scott new version), the updated files are left behind and will be
Scott included in the diff generated when you build the package.

In my experience, making the diff file huge makes porting and new
versions unnecessarily difficult. The only way I've been able
to keep my sanity with the plethora of GIMP/GTK+ releases is
this solution.

-- 
Brought to you by the letters B and V and the number 6.
Do you wish to see our *surprising toys*? No! Do not! -- Orz, SCII
Ben Gertzfield http://www.imsa.edu/~wilwonka/ Finger me for my public
PGP key. I'm on FurryMUCK as Che, and EFNet and YiffNet IRC as Che_Fox.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-10 Thread Manoj Srivastava
Hi,
Bob == Bob Hilliard [EMAIL PROTECTED] writes:

Bob I expect to make some minor modifications in the upstream
Bob Makefile.in.  Should these be mentioned in the copyright file or
Bob the changelog?

Ummm, changelog, I think, unless it somehow modifies or is
 relevant to the upstream copyright.

manoj
-- 
 I don't agree at all with any partisan or other criticism of the
 United States build-up in Vietnam. Richard M. Nixon, February 15,
 1962
Manoj Srivastava  [EMAIL PROTECTED] http://www.datasync.com/%7Esrivasta/
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Ben Gertzfield
Your debian/rules should build *both* packages.

Here's the debian/rules from my GIMP packages. It should clear up
your confusion. It uses debhelper judiciously; I'd recommend using
debhelper to save your sanity. :)

#!/usr/bin/make -f

# First, we build the package. The automake/aclocal/autoconf stuff
# isn't important; it's to get around libtool wonkiness. Ignore it. :)

build: build-stamp
build-stamp:
dh_testdir
automake
aclocal
autoconf
# Add here commands to compile the pacckage.
./configure --prefix=/usr
$(MAKE)
touch build-stamp

clean:
dh_testdir
dh_testroot
-rm -f build-stamp install-stamp
# Add here commands to clean up after the build process.
-$(MAKE) clean
-$(MAKE) distclean
rm -rf debian/{gimp,gimp-nonfree,libgimp1,libgimp-dev}
find . -name '*.o' -o -name '_libs' -o -name '*.lo' -o -name '*.a' -o 
-name '*.P' -o -name 'Makefile' | xargs rm -rf
-rm app/gimp
dh_clean

# Build architecture-independent files here.
binary-indep: build
# We have nothing to do by default.

# Build architecture-dependent files here.

# Notice how binary-arch has lots of separate targets for the different
# packages that get built! Each one gets built after the 'build'
# and the 'install' targets are run.

binary-arch: build install gimp-nonfree gimp libgimp-dev libgimp1

# This target basically does the 'make install' bit of the package.
# All the individual files for each package are then moved through
# judicious use of dh_movefiles (I HIGHLY recommend using dh_movefiles
# for multi-binary packages; it makes things MUCH easier :)

install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean
dh_installdirs usr/X11R6/bin
$(MAKE) prefix=`pwd`/debian/tmp/usr install
mv debian/tmp/usr/bin/gimp debian/tmp/usr/X11R6/bin
touch install-stamp

# The libgimp1 target is missing the dh_movefiles call because it's
# the topmost package target and the last target in binary-arch;
# it basically takes what's left in debian/tmp and packages it up
# for itself.

libgimp1: build install
dh_testdir -plibgimp1 
dh_testroot -plibgimp1
dh_installdirs -plibgimp1
rm -rf debian/tmp/usr/bin debian/tmp/usr/X11R6 debian/tmp/usr/include \
  debian/tmp/usr/share debian/tmp/usr/lib/*.la
dh_installdocs -plibgimp1
dh_installchangelogs -plibgimp1
dh_strip -plibgimp1
dh_compress -plibgimp1
dh_fixperms -plibgimp1
dh_installdeb -plibgimp1
dh_shlibdeps -plibgimp1
dh_gencontrol -plibgimp1
dh_makeshlibs -plibgimp1 -V
dh_md5sums -plibgimp1
dh_builddeb -plibgimp1

# The rest of the targets use dh_movefiles to move files into debian/package.
# The gimp target moves everything it wants into debian/gimp.

gimp: build install
dh_testdir -pgimp 
dh_testroot -pgimp
dh_clean -k -pgimp 
dh_installdirs -pgimp usr/X11R6/man/man1
dh_movefiles -pgimp
-rm -f install-stamp
cp docs/gimp.1 debian/gimp/usr/X11R6/man/man1
dh_installdocs -pgimp debian/README.debian docs/*.txt \
  README NOTES
dh_installchangelogs -pgimp ChangeLog
dh_strip -pgimp
dh_compress -pgimp
dh_fixperms -pgimp
dh_installmenu -pgimp
dh_installdeb -pgimp
LD_LIBRARY_PATH=$(shell pwd)/debian/tmp/usr/lib dh_shlibdeps -pgimp
dh_gencontrol -pgimp
dh_md5sums -pgimp
dh_builddeb -pgimp

gimp-nonfree: build install
dh_testdir -pgimp-nonfree
dh_testroot -pgimp-nonfree
dh_clean -k -pgimp-nonfree
dh_movefiles -pgimp-nonfree
-rm -f install-stamp
dh_installdirs -pgimp-nonfree
dh_installdocs -pgimp-nonfree
dh_installchangelogs -pgimp-nonfree
dh_strip -pgimp-nonfree
dh_compress -pgimp-nonfree
dh_fixperms -pgimp-nonfree
dh_installdeb -pgimp-nonfree
LD_LIBRARY_PATH=$(shell pwd)/debian/tmp/usr/lib dh_shlibdeps 
-pgimp-nonfree
dh_gencontrol -pgimp-nonfree
dh_md5sums -pgimp-nonfree
dh_builddeb -pgimp-nonfree

libgimp-dev: build install
dh_testdir -plibgimp-dev
dh_testroot -plibgimp-dev
dh_clean -plibgimp-dev -k
dh_installdirs -plibgimp-dev
dh_movefiles -plibgimp-dev
-rm -f install-stamp
dh_installdocs -plibgimp-dev
dh_installchangelogs -plibgimp-dev
dh_strip -plibgimp-dev
dh_compress -plibgimp-dev
dh_fixperms -plibgimp-dev
dh_installdeb -plibgimp-dev
dh_shlibdeps -plibgimp-dev
dh_gencontrol -plibgimp-dev
dh_md5sums -plibgimp-dev
dh_builddeb -plibgimp-dev

source diff:  
@echo 2 'source and diff are obsolete - use 

Re: One source, two binary packages

1998-04-09 Thread Adam P. Harris
Ben Gertzfield [EMAIL PROTECTED] writes:
 Your debian/rules should build *both* packages.
 
 Here's the debian/rules from my GIMP packages. It should clear up
 your confusion. It uses debhelper judiciously; I'd recommend using
 debhelper to save your sanity. :)

Bob, don't fear the reaper.  dh_* is great, but if you wanna learn the
guts, do it by hand.  My jade source package produces 3 binary
packages from it, with not a whit of dh_* in sight.  Um, that's
actually an overly complex example, due to shlibs and dynamic version
hackage.  Hmm.  Maybe my 'mh' package is a better example.  Here's my
snippet:

dpkg-gencontrol -isp -p$(pkg-doc) -P$(prefix-doc)
dpkg --build $(prefix-doc) ..

dpkg-gencontrol -isp -p$(pkg)
dpkg --build $(prefix) ..

Manoj has some nice rules files to play around with too.  It's
possible there's some obscure syntax error in the control file or
substvars stuff.

.A. P. [EMAIL PROTECTED]URL:http://www.onShore.com/


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Manoj Srivastava
Hi,
I have this in my directory on master (rules.tar.gz, I
 think). README follows (the tarball has HTML stuff in it too, meant
 to be dropped onto the develoers corner web page).

manoj

__

Here are a set of ./debian directories. A short description
 follows. All are live debian directories frozen at the time of
 writing, complete with maintainer scripts and emacs .el files and
 menu files and all.

All the rules files are quite similair; and since I tend to
 copy a rules file over to a new package area, all my rules files 
 tend to have a very similar look and feel. 

This should serve well as a learning by example set. Any
 feedback (espescially patches) shall be appreciated. This is
 approximately 170K tarred and compressed, and 233K uuencoded.

miscfilesJust a bunch of files installed in various places. A
 bare bones minimalistic package.
cvs-buildpackage One of the simplest packages I have
kernel-package   A relatively simple package.
angband-doc  A simple derivative of the angband package rules;
 essentially there are just help files that need to be
 installed.
sgml-baseAlso very simple; the only thing of possible interest
 is in the rules file where we convert the SGML to text
 and HTML iff the debaindoc2blah converters are 
 available. 


make The package I used as a learning tool; in my eyes,
 this is ``the'' typical package. Also shows you how
 to get HTML files into a separate package.
angband  A fairly generic makefile, with the exception that
 there are a lot of library files involved in a
 special heirarchy, and some of them need to be conf
 files. The rules file does not need to know the names
 of these files, which is good since they change often.


c2manA simple package, except that it shows how to deal
 with a Perl style Configure file. 
dist A large package, which shows how to deal with a Perl
 style Configure file.  
mailagentA Configure style package, with a large examples dir
 and an in place patch of the binary in the postinst.


libcgi-perl  A package to handle a typical CPAN style
 package. This shows how to get the man pages in the
 correct directories, and all.
pkg-orderAnother CPAN style package, with an auto genearation
 of the version.pl file based on the changelog entry.


psgmlAn emacs package, with byte compilation, info files,
 and a site-stard.d file.
vm   Another emacs package, with the el files split into
 another package


kernel   Complex package showing how kernel paclkages are
 built. Not something to look at at an early stage of
 learning about rules files. But it shows the power of
 the rules file, and what one may do with it
latex2html   This was difficult to write, and has a few
 interesting variations. Sets up icons in conformance
 with the web standard; add things to the TeX
 heirarchy. 

-- 
 I would suggest the taxation of all property equally whether church
 or corporation. --anonymous
Manoj Srivastava  [EMAIL PROTECTED] http://www.datasync.com/%7Esrivasta/
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05  CC 2D 27 12 1D F5 E8 6E


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Adam P. Harris
Manoj Srivastava [EMAIL PROTECTED] writes:

   I have this in my directory on master (rules.tar.gz, I
  think). README follows (the tarball has HTML stuff in it too, meant
  to be dropped onto the develoers corner web page).

You should just put this up on the public HTML space on master...?
I'm thinking of doing this too for some of my rules file, which I'm
also proud of --- especially since I think I'll be able to adapt
them to FHS with very little changes.

My rules files always start like this:

#!/usr/bin/make -f
# rules file for doc-base
#
# I believe in stripped down rules files; nothing that is not required.
# I believe in readability through abstraction.

package := doc-base

# directory abstraction
prefix  := debian/tmp
sbindir := $(prefix)/usr/sbin
mandir  := $(prefix)/usr/man
docdir  := $(prefix)/usr/doc/$(package)
sharedir:= $(prefix)/usr/share/$(package)
vardir  := $(prefix)/var/lib/$(package)

# build abstraction
install_file:= install -o root -g root -m 644
install_script  := install -o root -g root -m 755
install_program := install -o root -g root -m 755 --strip
make_directory  := install -d -o root -g root -m 755
compress:= gzip -9f

.A. P. [EMAIL PROTECTED]URL:http://www.onShore.com/


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Santiago Vila
-BEGIN PGP SIGNED MESSAGE-

On 8 Apr 1998, Ben Gertzfield wrote:

 Here's the debian/rules from my GIMP packages. It should clear up
 your confusion. It uses debhelper judiciously; I'd recommend using
 debhelper to save your sanity. :)
 
 #!/usr/bin/make -f
 
 # First, we build the package. The automake/aclocal/autoconf stuff
 # isn't important; it's to get around libtool wonkiness. Ignore it. :)
 
 build: build-stamp
 build-stamp:
   dh_testdir
   automake
   aclocal
   autoconf

I disagree here.

If you put this in a different debian/rules target (called, for example,
automake-refresh), then you and only you would be forced to have automake
and autoconf installed, but nobody else.

Currently, you force to have those tools installed to everybody who wants
to recompile the package.

Think about all the GNU packages: They include a configure script which
already matches the configure.in, so that the person compiling the package
has not to have autoconf installed. I don't see any reason why Debian
packages should not take this as a good practice also.

Thanks.

-BEGIN PGP SIGNATURE-
Version: 2.6.3ia
Charset: latin1

iQCVAgUBNSyjzSqK7IlOjMLFAQEKEgP/aWKCXaGKjsDGAt9qIl+/VRyZ8cnjel2e
XYkCRmmtCX5AwWMaIJUDb49wRIQQuRkfuhqC1DDX4zJv233fO6H5qQj37ezeNpPX
2uNxHF/WW25uqIz6Ds9ygPTWgDNHE1GzDCIo4kvmf/0uUt2URZwuWFYRaqNnMhSu
46RK8eGA6GY=
=byEc
-END PGP SIGNATURE-


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Ben Gertzfield
 Santiago == Santiago Vila [EMAIL PROTECTED] writes:

Santiago I disagree here.

Santiago If you put this in a different debian/rules target
Santiago (called, for example, automake-refresh), then you and
Santiago only you would be forced to have automake and autoconf
Santiago installed, but nobody else.

That's why the comment said that it's unnecessary for that package.

For the GIMP packages, it is required; they ship with a libtool
that is incompatible with Debian policy. I have to run
automake/aclocal/autoconf every single time the package builds
to remove all vestiges of the old libtool and replace it with the
Debian libtool.

-- 
Brought to you by the letters C and Y and the number 17.
I put my feet on the Ottoman.. Empire. -- Moxy Fruvous
Ben Gertzfield http://www.imsa.edu/~wilwonka/ Finger me for my public
PGP key. I'm on FurryMUCK as Che, and EFNet and YiffNet IRC as Che_Fox.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Re: One source, two binary packages

1998-04-09 Thread Santiago Vila
-BEGIN PGP SIGNED MESSAGE-

On 9 Apr 1998, Ben Gertzfield wrote:

 For the GIMP packages, it is required; they ship with a libtool
 that is incompatible with Debian policy. I have to run
 automake/aclocal/autoconf every single time the package builds
 to remove all vestiges of the old libtool and replace it with the
 Debian libtool.

I still don't understand why this has to be done in the *build* target.

Suppose a GNU package has a configure script generated by a buggy
autoconf. The Debian maintainer could add a special target in the
debian/rules which calls autoconf and refreshes configure from
configure.in.

Then the package could be created normally, and the new (fixed) configure
script would be reflected in the diffs.

And then, people compiling the *same* source package for m68k, powerpc,
alpha, or whatever do not need to run autoconf again.

I don't know much about libtool, but is it so much different than
generating configure scripts from configure.in?

-BEGIN PGP SIGNATURE-
Version: 2.6.3ia
Charset: latin1

iQCVAgUBNS0XOiqK7IlOjMLFAQE9yAP9GgM+RvmPp+fDOcJ6wopxbjOLkniHoxkm
DDK2SAt856tvTl8EhpvX7heB0X0Nq+RdCvvW+SVuXI9JVgtgjXGAaZPT3iEOGIJL
EGRspr+8n84yFrMyIdw2eRchfEMJcRlMUbd97CaoBcHE9QdrlKL408/TJHeEZk0o
Ukbi9eIcmho=
=KqiE
-END PGP SIGNATURE-


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]