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

Bug#701626: marked as done (Add support for links in generated packages)



Your message dated Fri, 28 Jul 2017 23:33:55 +0000
with message-id <E1dbElX-0001o4-1C@fasolo.debian.org>
and subject line Bug#701626: fixed in equivs 2.1.0
has caused the Debian Bug report #701626,
regarding Add support for links in generated packages
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
701626: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701626
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: equivs
Version: 2.0.9
Severity: wishlist
Tags: patch

It can be necessary for an equivs package to contain a link. For
example when the files it is pretending are present _are_ actually
present, but in the wrong place on the system. This patch gives it
support for a Links: section that will create such links in the
package, much as it already does for files. 

I have also added a section to the pod file, the template and included
an example control file using this feature.

Oh, and I fixed some typos in the README. 

The example where it is needed is for supplying fake multiarch
packages for things which have not yet been multiarched, such as
libraries supplied by cross-compilers (libgcc1, and libstdc++6). These
libraries do exist on the system if the cross-toolchain is installed,
but are in libstdc++6-dev-<arch>cross instead of in libstdc++6-dev:<arch>

An equivs package of libstdc++6-dev:<arch> needs a link pointing to the
real library so that builds expecting that library will find it.

This functionality is currently a vital part of the multiarch
cross-building mechanisms, at least until we get cross-toolchains with
fully multiarched internal libraries. And the mechanism is likely to
have many other uses too.

-- System Information:
Debian Release: 6.0.7
  APT prefers stable
  APT policy: (990, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.33-kvm-i386-20111128-dirty (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Description: Add Support for links
 This patch allows an equivs package to contain links, which can be
 useful for 'pointing' to the real files the fake dependency should be
 supplying.
 .
Author: Wookey <wookey@debian.org>

diff -Nru equivs-2.0.9+multiarch2/debian/README.Debian equivs-2.0.9+multiarch3/debian/README.Debian
--- equivs-2.0.9+multiarch2/debian/README.Debian	2006-02-04 07:57:15.000000000 +0000
+++ equivs-2.0.9+multiarch3/debian/README.Debian	2013-02-23 21:19:01.000000000 +0000
@@ -19,11 +19,11 @@
 -----------------------
 
 I once made this package based on my preference to run my own
-installation of teTeX in "/usr/local/" because i didn't want to
+installation of teTeX in "/usr/local/" because I didn't want to
 depend on any package maintainer's update frequency. On the other
-hand i still wanted to take advantage of other TeX/LaTeX packages
+hand I still wanted to take advantage of other TeX/LaTeX packages
 which depend upon the Debian teTeX packages. While Debian's teTeX
-maintainer does an incredibly fine job i wanted to be able to
+maintainer does an incredibly fine job I wanted to be able to
 take advantage of Thomas Esser's update shell scripts as soon as
 they come out. In this very special case the needed "Provides:"
 field of the 'equivs' control file had to contain the entries
diff -Nru equivs-2.0.9+multiarch2/debian/equivs-build.pod equivs-2.0.9+multiarch3/debian/equivs-build.pod
--- equivs-2.0.9+multiarch2/debian/equivs-build.pod	2013-02-25 12:51:17.000000000 +0000
+++ equivs-2.0.9+multiarch3/debian/equivs-build.pod	2013-02-25 12:51:55.000000000 +0000
@@ -77,6 +77,17 @@
   Files: foo-cron /etc/cron.d/
    foo-cron-helper /usr/local/bin/
 
+=item Links:
+
+Links to be created in some directory of the created package. Each
+line contains two paths. The first is the path that the generated
+symlink points at; the second is the name of the symlink file (The
+same order as 'ln -s').  As with other multi-line headers, all lines
+but the first must be indented.  Example: 
+
+  Links: /usr/aarch64-linux-gnu/lib/libfoo.so /usr/lib/aarch64-linux-gnu/libfoo.so
+   /file/to/symlink/to  /symlink/file/name 
+
 =item File:
 
 Files to be copied into some directory of the created package,
diff -Nru equivs-2.0.9+multiarch2/examples/libstdc++6-dev.ctl equivs-2.0.9+multiarch3/examples/libstdc++6-dev.ctl
--- equivs-2.0.9+multiarch2/examples/libstdc++6-dev.ctl	1970-01-01 00:00:00.000000000 +0000
+++ equivs-2.0.9+multiarch3/examples/libstdc++6-dev.ctl	2013-02-25 12:35:06.000000000 +0000
@@ -0,0 +1,16 @@
+# Package to generate fake dependency (and links) for libraries provided by
+# cross-compilers. Built with equivs-build --arch <HOST arch>. 
+# e.g. equivs-build --arch armhf libstdc++6-dev
+Section: misc
+Priority: optional
+Standards-Version: 3.6.2
+
+Package: libstdc++6-dev
+Source: gcc-4.7
+Version: 4.7.2-22
+Maintainer: Wookey <wookey@wookware.org>
+Multi-Arch: same
+Description: Virtual package to satisfy build dependencies for arm64
+ The current toolchain contains the required libraries, but as -cross
+ packages. This suffices until things are fully multiarched.
+Links:  /usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/libstdc++.so /usr/lib/arm-linux-gnueabihf/libstc++.so
diff -Nru equivs-2.0.9+multiarch2/usr/bin/equivs-build equivs-2.0.9+multiarch3/usr/bin/equivs-build
--- equivs-2.0.9+multiarch2/usr/bin/equivs-build	2013-02-23 21:17:45.000000000 +0000
+++ equivs-2.0.9+multiarch3/usr/bin/equivs-build	2013-02-25 12:52:17.000000000 +0000
@@ -69,6 +69,12 @@
         unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
     $install_files{"$2/$1"} = $1;
 }
+my %create_links = ();
+for (split "\n", $control{'Links'} || "") {
+    die "Cannot parse Links line: '$_'\n"
+        unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
+    $create_links{"$2"} = $1;
+}
 my %create_files = ();
 for (@{$control{'File'} || []}) {
   if (m/^\s*(\S+)(?:\s+(\d+))?\s*\n(.*)$/s) {
@@ -83,7 +89,7 @@
 mkdir "$builddir/install", 0755;
 open INSTALL, '>', "$builddir/debian/install" or
   die "Cannot open $builddir/debian/install for writing: $!\n";
-foreach my $target (keys %install_files, keys %create_files) {
+foreach my $target (keys %install_files, keys %create_files, keys %create_links) {
   $target =~ s/ +//g;
   my $dest;
   my $cnt = 0;
@@ -105,6 +111,10 @@
       or die "Cannot copy $file to $dest: $!\n";
     chmod -x $file ? 0755 : 0644, $dest
       or die "Cannod chmod $dest: $!\n";
+  } elsif (defined $create_links{$target}) {
+    my $file = $create_links{$target};
+    symlink ($file, $dest)
+      or die "Cannot create symlink $dest pointing to $file: $!\n";
   } else {
     my ($content, $mode) = @{$create_files{$target}};
     open CREATE, '>', $dest
diff -Nru equivs-2.0.9+multiarch2/usr/share/equivs/template.ctl equivs-2.0.9+multiarch3/usr/share/equivs/template.ctl
--- equivs-2.0.9+multiarch2/usr/share/equivs/template.ctl	2013-02-23 21:17:45.000000000 +0000
+++ equivs-2.0.9+multiarch3/usr/share/equivs/template.ctl	2013-02-25 12:45:52.000000000 +0000
@@ -21,6 +21,7 @@
 # Changelog: <changelog file; defaults to a generic changelog>
 # Readme: <README.Debian file; defaults to a generic one>
 # Extra-Files: <comma-separated list of additional files for the doc directory>
+# Links: <pair of space-separated paths; First is path symlink points at, second is filename of link>
 # Files: <pair of space-separated paths; First is file to include, second is destination>
 #  <more pairs, if there's more than one file to include. Notice the starting space>
 Description: <short description; defaults to some wise words> 

--- End Message ---
--- Begin Message ---
Source: equivs
Source-Version: 2.1.0

We believe that the bug you reported is fixed in the latest version of
equivs, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 701626@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Axel Beckert <abe@debian.org> (supplier of updated equivs package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sat, 29 Jul 2017 01:12:47 +0200
Source: equivs
Binary: equivs
Architecture: source all
Version: 2.1.0
Distribution: unstable
Urgency: low
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Changed-By: Axel Beckert <abe@debian.org>
Description:
 equivs     - Circumvent Debian package dependencies
Closes: 603850 660765 663424 682929 701626 852223
Changes:
 equivs (2.1.0) unstable; urgency=low
 .
   [ Axel Beckert ]
   * Adopt equivs under the Debian Perl Group umbrella. (Closes: #852223)
   * Import package history into a Git repository and add Vcs-*
     headers. (Closes: #663424)
     + Add a .gitignore file.
   * Apply wrap-and-sort.
   * Switch debian/rules to minimal dh v7 style.
     + Use debian/install instead calling cp inside debian/rules.
     + Remove obsolete variables.
     + Replace usage of dpkg-parsechangelog with $SOURCE_DATE_EPOCH. Fixes
       lintian warning debian-rules-parses-dpkg-parsechangelog.
   * Rename debian/equivs.* to debian/*.
   * Move documentation files from debian/*.pod to *.pod.
   * Move man page generation from debian/rules to a new Makefile.
   * Declare compliance with Debian Policy 4.0.0. (No changes needed.)
   * Bump debhelper compatibility to 10.
     + Update versioned debhelper build-dependency accordingly.
   * pod2man call: Replace "Debian/GNU" with just "Debian".
   * Use $TMPDIR as directory for package builds if set in the
     environment. (Closes: #660765)
 .
   [ Wookey ]
   * Add Support for links. (Closes: #701626, #682929, LP: #1132813)
   * Fix typos in debian/README.Debian.
 .
   [ John Reese ]
   * Add support to build source packages, e.g. for source-only uploads as
     required for uploading to Ubuntu PPAs. (Closes: #603850)
Checksums-Sha1:
 a39229f5f8994a1fa00a1f55a535a8ab1ee93648 1594 equivs_2.1.0.dsc
 430b279f3c6e365e3e8417a47ab58125e5858c92 20656 equivs_2.1.0.tar.xz
 d8f093a8827f00def1c6a96fc6023fc8c3fdf548 21826 equivs_2.1.0_all.deb
 acd4c2587d3a3d44f928e4c395276d848d1c0163 5212 equivs_2.1.0_amd64.buildinfo
Checksums-Sha256:
 dbf28e7a2c3b61258933c1bcc18d39de2960a23e66fd222b76d86039e763f03b 1594 equivs_2.1.0.dsc
 508d2420efeb2588ddda2c6137373823654bf6504e18da3566e6dd963c36cf6c 20656 equivs_2.1.0.tar.xz
 1921fa0c1a807c73471415b4dd075086f90a4e6f140dbab2a8c0f0903c421758 21826 equivs_2.1.0_all.deb
 8cc4824b5cf64ed3210efdb58dee407626ee5613be83ae5543735518e760b717 5212 equivs_2.1.0_amd64.buildinfo
Files:
 9760df3f6d94e0b27fec7dd28d87e2ef 1594 admin extra equivs_2.1.0.dsc
 69b206367982586848ecb6184d8a1580 20656 admin extra equivs_2.1.0.tar.xz
 adcc6dbf869ca0bf5224503b25d96899 21826 admin extra equivs_2.1.0_all.deb
 cd942a2dbdd565e8cd666a04ce054261 5212 admin extra equivs_2.1.0_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEERoyJeTtCmBnp12Ema+Zjx1o1yXUFAll7xSwACgkQa+Zjx1o1
yXXCnxAAs4AHQQCHO9KOKnVQI/d4dAeV4SE2LNm0dcmtLsoiFDiY0dJJo10QWmIV
QSFz/N5ckXwF8PTqD9KWctp6Mp8CyOQraHKKA6WC6Uas3cnXQWkgPmQ+GeIDDXqd
t67ISdDMzafYoxIj/YA3x66CiSHfLJ42cKioWARuleIVkixn/tM+eIgF/lwFa5GM
jh5Q5sAcyV47UwT9udoktBVuDU2b+cmLviYWrtfF/psZYGZgUfWVtpW37nVLeJKb
H2e2JRdWBwSCIcOMx9SXFi8sH0SpRUA0MdMW9BBRRetBEgxtjiMVN2/0HJzOK4g/
xGZfVTxupMxzWN9YA1l0SN7A5L7SCUIrNVFEP46rkOeQlLb82xa/gE5GBvwYfA9e
IpbRpXpLcRpw4TyxHzTg9rEXjJQQL0k1DkGC6NGr5FVZxJcsbdEXVOpC+LcPiT9y
Bnz6vGPbI319WLbMpK/iFwZaW69P+QoceVNP571pQ10d17GwYlOY3uCMjeZ40yxQ
J50QhezGJL8tj102CP4iEkZG37a+mj5GJLjIKmQYRktJNmD6AnG9drVNi8HueFgb
L2ImzyC7gQShPWdCKmeAZdkzddMVUAoTO5LzfY4lmKk5LWZcQaRhQPOqXxMVfxNK
vD3BJx4kEWimPEcK2SIYK9Sx7OutSGqkdZgdaVq3daL1AN92ZUA=
=WtcY
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: