diff --git a/dependencies/curl-7.18.0-deps.db b/dependencies/curl-7.18.0-deps.db new file mode 100644 index 00000000000..f6860e94865 Binary files /dev/null and b/dependencies/curl-7.18.0-deps.db differ diff --git a/dependencies/git-1.6.0.2-deps.db b/dependencies/git-1.6.0.2-deps.db new file mode 100644 index 00000000000..622c5fea6c1 Binary files /dev/null and b/dependencies/git-1.6.0.2-deps.db differ diff --git a/dependencies/libidn-1.9-deps.db b/dependencies/libidn-1.9-deps.db new file mode 100644 index 00000000000..8427ba199dc Binary files /dev/null and b/dependencies/libidn-1.9-deps.db differ diff --git a/pkgfs.sh b/pkgfs.sh index 4fcd46de4bb..061a43d559b 100755 --- a/pkgfs.sh +++ b/pkgfs.sh @@ -121,6 +121,32 @@ run_file() } +# +# This function merges two GNU info dirs into one and puts the result +# into PKGFS_MASTERDIR/share/info/dir. +# +merge_infodir_tmpl() +{ + local pkgname="$1" + local merge_info_cmd="$PKGFS_MASTERDIR/bin/merge-info" + + [ -z "$pkgname" ] && return 1 + [ ! -r "$PKGFS_MASTERDIR/share/info/dir" ] && return 1 + [ ! -r "$PKGFS_DESTDIR/$pkgname/share/info/dir" ] && return 1 + + $merge_info_cmd -d $PKGFS_MASTERDIR/share/info/dir \ + $PKGFS_DESTDIR/$pkgname/share/info/dir -o \ + $PKGFS_MASTERDIR/share/info/dir.new + if [ "$?" -ne 0 ]; then + echo -n "*** WARNING: there was an error merging info dir from" + echo " $pkgname, aborting ***" + return 1 + fi + + $mv_cmd -f $PKGFS_MASTERDIR/share/info/dir.new \ + $PKGFS_MASTERDIR/share/info/dir +} + info_tmpl() { local tmpl="$1" @@ -448,7 +474,8 @@ build_tmpl_sources() # For now, just set LDFLAGS. # LDFLAGS="$LDFLAGS -L$PKGFS_MASTERDIR/lib -Wl,-R$PKGFS_MASTERDIR/lib" - export LDFLAGS + PKG_CONFIG="$PKGFS_MASTERDIR/bin/pkg-config" + export LDFLAGS PKG_CONFIG PKG_CONFIG_LIBDIR # # Packages using GNU autoconf @@ -459,8 +486,15 @@ build_tmpl_sources() done cd $pkg_builddir - ./configure --prefix="$PKGFS_MASTERDIR" ${configure_args} \ - --mandir="$PKGFS_DESTDIR/$pkgname/man" + # + # Pass consistent arguments to not have unexpected + # surprises later. + # + ./configure --prefix="$PKGFS_MASTERDIR" \ + --exec-prefix="$PKGFS_DESTDIR/$pkgname" \ + --mandir="$PKGFS_DESTDIR/$pkgname/man" \ + --infodir="$PKGFS_DESTDIR/$pkgname/share/info" \ + ${configure_args} # # Packages using propietary configure scripts. @@ -503,7 +537,7 @@ build_tmpl_sources() exit 1 fi - unset LDFLAGS + unset LDFLAGS PKG_CONFIG echo ">>> Installed \`$pkgname' into $PKGFS_DESTDIR/$pkgname." @@ -519,11 +553,22 @@ build_tmpl_sources() stow_tmpl() { local pkg="$1" + local infodir_pkg="share/info/dir" + local infodir_master="$PKGFS_MASTERDIR/share/info/dir" [ -z "$pkg" ] && return 2 + if [ -r "$PKGFS_DESTDIR/$pkg/$infodir_pkg" ]; then + merge_infodir_tmpl ${pkg} + fi + + if [ -r "$PKGFS_DESTDIR/$pkg/$infodir_pkg" -a -r "$infodir_master" ]; then + xstow_args="$xstow_args -i-file-in-dir $infodir_pkg" + fi + $PKGFS_XSTOW_CMD -dir $PKGFS_DESTDIR -target $PKGFS_MASTERDIR \ - ${xstow_args} $PKGFS_DESTDIR/$pkg + ${xstow_args} -pd-targets $PKGFS_MASTERDIR \ + $PKGFS_DESTDIR/$pkg if [ "$?" -ne 0 ]; then echo "*** ERROR: couldn't create symlinks for \`$pkg' ***" exit 1 @@ -550,7 +595,7 @@ unstow_tmpl() fi $PKGFS_XSTOW_CMD -dir $PKGFS_DESTDIR -target $PKGFS_MASTERDIR \ - -D $PKGFS_DESTDIR/$pkg + -D -ignore $PKGFS_DESTDIR/$pkg/share/info/dir $PKGFS_DESTDIR/$pkg if [ "$?" -ne 0 ]; then exit 1 else diff --git a/templates/curl-7.18.0.tmpl b/templates/curl-7.18.0.tmpl new file mode 100755 index 00000000000..394f72f9b47 --- /dev/null +++ b/templates/curl-7.18.0.tmpl @@ -0,0 +1,15 @@ +# Template file for 'curl-7.18.0' +pkgname=curl-7.18.0 +extract_sufx=".tar.bz2" +url=http://curl.haxx.se/download/ +build_style=gnu_configure +short_desc="Client that groks URLs" +maintainer="Juan RP " +checksum=f25ec844e7ef6221719439b3214fd3c3a42f5604 +long_desc=" + Curl is a command line tool for transferring files with URL syntax, supporting + FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. Curl supports + HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, + proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, + kerberos...), file transfer resume, proxy tunneling and a busload of other + useful tricks." diff --git a/templates/git-1.6.0.2.tmpl b/templates/git-1.6.0.2.tmpl new file mode 100644 index 00000000000..fe56c61c34d --- /dev/null +++ b/templates/git-1.6.0.2.tmpl @@ -0,0 +1,25 @@ +# Template build file for 'git-1.6.0.2". +pkgname=git-1.6.0.2 +extract_sufx=".tar.bz2" +url=http://www.kernel.org/pub/software/scm/git +build_style=gnu_configure +configure_args="--with-shell=/bin/sh --with-perl=$PKGFS_MASTERDIR/bin/perl + --with-curl --without-tcltk --with-expat" +# Looks like git is ignoring some stuff from autoconf, so pass our stuff +# directly to it through the environment. +export CPPFLAGS="-I$PKGFS_MASTERDIR/include" +export CURLDIR="$PKGFS_MASTERDIR" +make_cmd="$PKGFS_MASTERDIR/bin/gmake" +short_desc="GIT Tree History Storage Tool" +maintainer="Daniel Horecki " +checksum=eb91ca256d0fbcc956f91ad02da659d9b322261d +long_desc=" + GIT is a \"directory content manager\" designed to handle absolutely massive + projects with speed and efficiency, and the release of the 2.6.12 (and later) + versions of the Linux kernel as well as more and more other projects switching + to it would indicate that it does this task well. + + GIT falls in the category of distributed version control software, similar + to e.g. GNU Arch or Monotone (or, in the commercial world, BitKeeper). Every + GIT working directory is a full-fledged repository with full revision tracking + capabilities, not dependent on network access to a central server." diff --git a/templates/libidn-1.9.tmpl b/templates/libidn-1.9.tmpl new file mode 100755 index 00000000000..cad4dd130de --- /dev/null +++ b/templates/libidn-1.9.tmpl @@ -0,0 +1,23 @@ +# Template file for 'libidn-1.9' +pkgname=libidn-1.9 +extract_sufx=".tar.gz" +url=http://ftp.gnu.org/gnu/libidn +build_style=gnu_configure +configure_env="EMACS=/bin/false" +configure_args="--disable-csharp --disable-java" +short_desc="Internationalized Domain Names command line tool" +maintainer="Juan RP " +checksum=3b2217f015965600b69983cf831746a591f0680e +long_desc=" + GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA + specifications defined by the IETF Internationalized Domain Names (IDN) + working group. It is used to prepare internationalized strings (such as + domain name labels, usernames, and passwords) in order to increase the + likelihood that string input and string comparison work in ways that make + sense for typical users throughout the world. + + The library contains a generic Stringprep implementation that does Unicode + 3.2 NFKC normalization, mapping and prohibition of characters, and + bidirectional character handling. Profiles for iSCSI, Kerberos 5, Nameprep, + SASL, and XMPP are included. Punycode and ASCII Compatible Encoding (ACE) via + IDNA are supported." diff --git a/templates/ruby-1.8.7-p72.tmpl b/templates/ruby-1.8.7-p72.tmpl index 3208edd2fa8..becb0e7b1bf 100644 --- a/templates/ruby-1.8.7-p72.tmpl +++ b/templates/ruby-1.8.7-p72.tmpl @@ -3,8 +3,7 @@ pkgname=ruby-1.8.7-p72 extract_sufx=".tar.bz2" url=ftp://ftp.ruby-lang.org/pub/ruby/1.8 build_style=gnu_configure -configure_args="--enable-pthread --enable-shared - --exec-prefix=$PKGFS_DESTDIR/$pkgname" +configure_args="--enable-pthread --enable-shared" short_desc="Ruby programming language" maintainer="Daniel Horecki " checksum=07bf0d6987ba111aed988093c569fb66ba54891b