auto-apt

When you want to build a program from source and it fails due to missing headers. Auto-apt can search what package would provide the header files.
(from https://help.ubuntu.com/community/AutoApt)


Log

  • Started: 2012-01-24
  • Discussed: 2012-01-26
  • Draft Submitted: -
  • Submitted: 2012-02-07, Bug#659025
  • Accepted: 2013-05-13, by Barry deFreese

ToDo

The output of grep -R PATH_MAX auto-apt-0.3.22/* is a bit long. It contains files that have been patched using #define PATH_MAX XYZ.
Here is the only file of interest:

pkgcdb/pkgtab.c:    char buf[PATH_MAX];
pkgcdb/pkgtab.c:    assert(p - pkg < PATH_MAX);
pkgcdb/pkgtab.c:    static char buf[PATH_MAX];
pkgcdb/pkgtab.c:    assert(len < PATH_MAX);

Comments

+++ auto-apt-0.3.22/auto-apt-pkgcdb.c        2012-02-03 09:25:54.045858173 +0100

+    unsigned char *buf = NULL;

+        while (!feof(stdin)) {
             unsigned char *fname, *pkg;
             unsigned char *p;
             int nslash = 0;

+            buf = get_line(stdin);
+            if (buf == NULL)
+                break;

Reading from stdin using the get_line() function as explained in the porting guide.

+        free(buf);

+++ auto-apt-0.3.22/pkgcdb/pkgtab.c        2012-01-30 09:05:07.883096049 +0100

+    char *buf = NULL;

+        buf = (char *)malloc(p - pkg + 1);
+        if (buf == NULL) {
+            abort();
+        }

+        free(buf);

-    static char buf[PATH_MAX];
+    static char *buf;

+    if (buf != NULL) {
+        free(buf);
+    }
+    buf = (char *)malloc(len + 1);
+    if (buf == NULL) {
+        abort();
+    }