I tried... but... finally, I succeeded.

Here you can discuss every aspect of Debian. Note: not for support requests!

I tried... but... finally, I succeeded.

Postby edbarx » 2014-10-09 09:26

You know, that I have been trying to disentangle parts of systemd. My work was facilitated by the fact that the systemd developers had implemented a way as to compile only what one needs. So, I followed telltale compiler directives to learn what should always be compiled and what should not. I think, this feature should be enough for Debian to implement choice regarding systemd. It can be done by pre and post installation scripts and many users would find it more attractive to continue using Debian.

The uselessd project aims to disentangle the various parts which are already disentangled through compiler directives. However, there are questionable parts that are meant to be removed.

Since, uselessd is doing the same thing I am doing, I think, it is far better for someone like me to try to use uselessd instead of what I am doing presently. I don't know, but there are users like stevepusser who can give me some ideas as to what it involves to port non-debianized sources to Debian. I would also like to make it clear that all this is unexplored ground for me, and that more often than not, I find it less than straightforward, to put it in a nice way.

Thanks for all your support.
Last edited by edbarx on 2014-10-20 10:30, edited 1 time in total.
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Re: I tried... but...

Postby static-catsit » 2014-10-09 10:52

edbarx,
Thank you for all your efforts.
Lets hope all of us that enjoy Debian can sort this unfortunate situation out.
Good luck with your other far more important problem, fingers crossed.
A.
User avatar
static-catsit
 
Posts: 34
Joined: 2011-04-12 23:36

Re: I tried... but...

Postby keithpeter » 2014-10-09 13:32

edbarx has carried out the kind of programme that Richard Stallman had in mind when he framed the GPL (to ensure the source code would *always* be available). The learning curve must have been pretty steep and we could all watch the progress even if our ability to contribute was small.

Contributing to uslessd sounds like a good move, and it had occurred to me that stevepusser would be the user who would know how to get stuff packaged.

Best of luck with it all.
User avatar
keithpeter
 
Posts: 502
Joined: 2009-06-14 08:06
Location: 5230n 0155w

Re: I tried... but...

Postby stevepusser » 2014-10-09 22:53

Usually, the first thing I look for is somebody else that's packaged it, so I can "borrow" their work.

I do have some ability to package programs from the raw tource, if they aren't too complicated--I did baka-mplayer http://bakamplayer.u8sand.net/index.php the other week to provide a GUI front-end to mpv, but QT programs are handled well by debhelper automatically. I'll take a look at uselessd.
MX Linux packager and developer
User avatar
stevepusser
 
Posts: 12192
Joined: 2009-10-06 05:53

Re: I tried... but...

Postby dasein » 2014-10-09 23:39

stevepusser wrote:Usually, the first thing I look for is somebody else that's packaged it, so I can "borrow" their work.

I just happened to notice; the post above is your #4000. Seems like as good a reason as any for a beer.

@edbarx: It was amazing that you even tried. Hats off to you.
User avatar
dasein
 
Posts: 7775
Joined: 2011-03-04 01:06
Location: Terra Incantationum

Re: I tried... but...

Postby Bulkley » 2014-10-10 02:51

dasein wrote:
stevepusser wrote:Usually, the first thing I look for is somebody else that's packaged it, so I can "borrow" their work.

I just happened to notice; the post above is your #4000. Seems like as good a reason as any for a beer.

@edbarx: It was amazing that you even tried. Hats off to you.


+1 & +1 Hats off to both.
Bulkley
 
Posts: 6034
Joined: 2006-02-11 18:35

Re: I tried... but...

Postby edbarx » 2014-10-10 13:28

Thanks for your understanding.

I am trying to 'port' uselessd to Debian Jessie. There are some teething problems which I have to look up.

Trying to build a package from uselessd source:
Code: Select all
edbarx@edbarx-pc:~/useless_d/uselessd-4$ dpkg-buildpackage
dpkg-buildpackage: source package uselessd
dpkg-buildpackage: source version 4-1
dpkg-buildpackage: source changed by edbarx <edbarx@edbarx-****>
dpkg-buildpackage: host architecture amd64
 dpkg-source --before-build uselessd-4
 fakeroot debian/rules clean
dh clean  --with autotools-dev
   dh_testdir
   dh_auto_clean
   dh_autotools-dev_restoreconfig
   dh_clean
 dpkg-source -b uselessd-4
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building uselessd using existing ./uselessd_4.orig.tar.gz
dpkg-source: info: local changes detected, the modified files are:
 uselessd-4/config.log
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/uselessd_4-1.diff.mmqvOy
dpkg-buildpackage: error: dpkg-source -b uselessd-4 gave error exit status 2


There is an incompatible piece of C++ code that I have to review.
Code: Select all
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "uselessd"
| #define PACKAGE_TARNAME "uselessd"
| #define PACKAGE_VERSION "4"
| #define PACKAGE_STRING "uselessd 4"
| #define PACKAGE_BUGREPORT "https://bitbucket.org/bcsd/uselessd/issues"
| #define PACKAGE_URL "http://uselessd.darknedgy.net"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define PACKAGE "uselessd"
| #define VERSION "4"
| #define CANONICAL_HOST "x86_64-pc-linux-gnu"
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <stdarg.h>
| #include <stdbool.h>
| #include <stdlib.h>
| #include <wchar.h>
| #include <stdio.h>
|
| // Check varargs macros.  These examples are taken from C99 6.10.3.5.
| #define debug(...) fprintf (stderr, __VA_ARGS__)
| #define showlist(...) puts (#__VA_ARGS__)
| #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
| static void
| test_varargs_macros (void)
| {
|   int x = 1234;
|   int y = 5678;
|   debug ("Flag");
|   debug ("X = %d\n", x);
|   showlist (The first, second, and third items.);
|   report (x>y, "x is %d but y is %d", x, y);
| }
|
| // Check long long types.
| #define BIG64 18446744073709551615ull
| #define BIG32 4294967295ul
| #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
| #if !BIG_OK
|   your preprocessor is broken;
| #endif
| #if BIG_OK
| #else
|   your preprocessor is broken;
| #endif
| static long long int bignum = -9223372036854775807LL;
| static unsigned long long int ubignum = BIG64;
|
| struct incomplete_array
| {
|   int datasize;
|   double data[];
| };
|
| struct named_init {
|   int number;
|   const wchar_t *name;
|   double average;
| };
|
| typedef const char *ccp;
|
| static inline int
| test_restrict (ccp restrict text)
| {
|   // See if C++-style comments work.
|   // Iterate through items via the restricted pointer.
|   // Also check for declarations in for loops.
|   for (unsigned int i = 0; *(text+i) != '\0'; ++i)
|     continue;
|   return 0;
| }
|
| // Check varargs and va_copy.
| static void
| test_varargs (const char *format, ...)
| {
|   va_list args;
|   va_start (args, format);
|   va_list args_copy;
|   va_copy (args_copy, args);
|
|   const char *str;
|   int number;
|   float fnumber;
|
|   while (*format)
|     {
|       switch (*format++)
|    {
|    case 's': // string
|      str = va_arg (args_copy, const char *);
|      break;
|    case 'd': // int
|      number = va_arg (args_copy, int);
|      break;
|    case 'f': // float
|      fnumber = va_arg (args_copy, double);
|      break;
|    default:
|      break;
|    }
|     }
|   va_end (args_copy);
|   va_end (args);
| }
|
| int
| main ()
| {
|
|   // Check bool.
|   _Bool success = false;
|
|   // Check restrict.
|   if (test_restrict ("String literal") == 0)
|     success = true;
|   char *restrict newvar = "Another string";
|
|   // Check varargs.
|   test_varargs ("s, d' f .", "string", 65, 34.234);
|   test_varargs_macros ();
|
|   // Check flexible array members.
|   struct incomplete_array *ia =
|     malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
|   ia->datasize = 10;
|   for (int i = 0; i < ia->datasize; ++i)
|     ia->data[i] = i * 1.234;
|
|   // Check named initializers.
|   struct named_init ni = {
|     .number = 34,
|     .name = L"Test wide string",
|     .average = 543.34343,
|   };
|
|   ni.number = 58;
|
|   int dynamic_array[ni.number];
|   dynamic_array[ni.number - 1] = 543;
|
|   // work around unused variable warnings
|   return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
|      || dynamic_array[ni.number - 1] != 543);
|
|   ;
|   return 0;
| }
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Re: I tried... but...

Postby golinux » 2014-10-10 15:19

Your abilities and tenacity are inspirational and very much appreciated.
May the FORK be with you!
User avatar
golinux
 
Posts: 1546
Joined: 2010-12-09 00:56
Location: not a 'buntard!

Re: I tried... but...

Postby stevepusser » 2014-10-10 18:10

dpkg-buildpackage: error: dpkg-source -b uselessd-4 gave error exit status 2


The build tools are enforcing the Debian Policy of not letting you make any changes to the .orig.tar source code, changes can only be applied from patches.

What you do instead, as long as you are using the "3.0 (quilt)" format, (now the default, check /debian/source/format), is to make all your changes to the source code, then instead of packaging, run

Code: Select all
dpkg-source --commit


This removes all your changes from the source code and makes them into a patch in debian/patches, which is per Debian Policy. You'll be asked what you want to name the patch (you can name it anything), and then the nano CLI editor will start up for you to edit the headers of the patch. It wil work if you don't edit the headers, but looks bad. I usually hit <Ctrl X> to exit nano and use my favorite GUI editor to finish the editing. There's some stuff in there for use by the official Debian packagers, which you can ignore or erase, the only stuff the patch system reads starts with the first file name to be patched.

The other thing to remember is when the patches get applied to the source code. The older patch systems never applied patches until the package build command was issued. The new quilt system will apply the patches when the complete set of source files is extracted (dpkg-source -x <xxxx.dsc> This also happens when the sources are pulled from a repo: "apt-get source packagename"

If you don't want the patches to get applied until after the build starts, extract the orig.tarball and the debian.tar tarball, then manually put the /debian folder into the extracted source folder. Now the system will check for and apply the patches when the build command is given. The quilt source format will also reverse the patches from the code automatically if the build finishes successfully. Ideally, the "clean" target of the build process, done usually by dh_auto_clean, restores the source folder to exactly the state it was before the build, but it often needs some additional commands via overrides to achieve this--or it's not possible at all.
MX Linux packager and developer
User avatar
stevepusser
 
Posts: 12192
Joined: 2009-10-06 05:53

Re: I tried... but...

Postby edbarx » 2014-10-10 18:19

Debianizing... and.... experimenting... like an adolescent!

However, I am no adolescent, and my logic, is warning me to inspect the control text file and the configure script. If anyone has a clue as to the failure of the script, please post.

Code: Select all
edbarx-pc:~/useless_d/uselessd-4$ ls .. -l
total 840
drwxr-xr-x 13 edbarx edbarx   4096 Oct  6 10:30 uselessd-4
-rw-r--r--  1 edbarx edbarx 853336 Oct 10 13:06 uselessd-4.tar.xz
edbarx@edbarx-pc:~/useless_d/uselessd-4$ dh_make

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
 [s/i/m/l/k/n] m

Maintainer name  : edbarx
Email-Address    : edbarx@unknown
Date             : Fri, 10 Oct 2014 20:06:08 +0100
Package Name     : uselessd
Version          : 4
License          : blank
Type of Package  : Multi-Binary
Hit <enter> to confirm:
Could not find uselessd_4.orig.tar.xz
Either specify an alternate file to use with -f,
or add --createorig to create one.
edbarx@edbarx-pc:~/useless_d/uselessd-4$ dh_make -f ../uselessd-4.tar.xz

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
 [s/i/m/l/k/n] m

Maintainer name  : edbarx
Email-Address    : edbarx@unknown
Date             : Fri, 10 Oct 2014 20:06:35 +0100
Package Name     : uselessd
Version          : 4
License          : blank
Type of Package  : Multi-Binary
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. uselessd
uses a configure script, so you probably don't have to edit the Makefiles.
edbarx@edbarx-pc:~/useless_d/uselessd-4$ ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
checking dependency style of gcc... gcc3
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether NLS is requested... yes
checking for intltool >= 0.40.0... 0.50.2 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.18.2
checking for XML::Parser... ok
checking whether ln -s works... yes
checking for a sed that does not truncate output... (cached) /bin/sed
checking for grep that handles long lines and -e... (cached) /bin/grep
checking for gawk... (cached) gawk
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking for gcc option to accept ISO C99... -std=gnu99
checking whether gcc -std=gnu99 needs -traditional... no
checking for m4... /usr/bin/m4
checking for xsltproc... no
checking for quotaon... /usr/sbin/quotaon
checking for quotacheck... /usr/sbin/quotacheck
checking for setcap... /usr/sbin/setcap
checking for kill... /bin/kill
checking for kmod... /bin/kmod
checking for kexec... /usr/sbin/kexec
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for gtk-doc... no
configure: WARNING:
  You will not be able to create source packages with 'make dist'
  because gtk-doc >= 1.18 is not found.
checking for gtkdoc-check... no
checking for gtkdoc-check... no
checking for gtkdoc-rebase... no
checking for gtkdoc-mkpdf... no
checking whether to build gtk-doc documentation... no
checking for GTKDOC_DEPS... yes
checking for objcopy... objcopy
checking for strings... strings
checking for gperf... gperf
checking if gcc -std=gnu99 supports flag -pipe in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wall in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wextra in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-inline in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wundef in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wformat=2 -Wformat-security -Wformat-nonliteral in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wlogical-op in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wsign-compare in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wmissing-include-dirs in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wold-style-definition in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wpointer-arith in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Winit-self in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wdeclaration-after-statement in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wfloat-equal in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wmissing-prototypes in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wstrict-prototypes in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wredundant-decls in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wmissing-declarations in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wmissing-noreturn in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wshadow in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wendif-labels in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wcast-align in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wstrict-aliasing=2 in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wwrite-strings in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-long-long in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-overlength-strings in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-unused-parameter in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-missing-field-initializers in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-unused-result in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wno-unused-but-set-variable in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Werror=overflow in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -ffast-math in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fno-common in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fdiagnostics-show-option in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fdiagnostics-color in envvar CFLAGS... no
checking if gcc -std=gnu99 supports flag -fno-strict-aliasing in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fvisibility=hidden in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -ffunction-sections in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fdata-sections in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fno-stack-protector in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -fPIE in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag --param=ssp-buffer-size=4 in envvar CFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wp,-D_FORTIFY_SOURCE=2 in envvar CPPFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wl,--as-needed in envvar LDFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wl,--no-undefined in envvar LDFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wl,--gc-sections in envvar LDFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wl,-z,relro in envvar LDFLAGS... yes
checking if gcc -std=gnu99 supports flag -pie in envvar LDFLAGS... yes
checking if gcc -std=gnu99 supports flag -Wl,-z,now in envvar LDFLAGS... yes
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
checking for PYTHON_DEVEL... no
checking for PYTHON_DEVEL... no
checking for sphinx-build-2.7... no
checking for sphinx-build... no
checking for library containing dlsym... -ldl
checking sys/capability.h usability... yes
checking sys/capability.h presence... yes
checking for sys/capability.h... yes
checking linux/btrfs.h usability... yes
checking linux/btrfs.h presence... yes
checking for linux/btrfs.h... yes
checking for library containing clock_gettime... none required
checking for library containing cap_init... -lcap
checking for library containing mq_open... -lrt
checking for fanotify_init... yes
checking for fanotify_mark... yes
checking whether gettid is declared... no
checking whether pivot_root is declared... no
checking whether name_to_handle_at is declared... yes
checking for DBUS... no
configure: error: Package requirements (dbus-1 >= 1.3.2) were not met:

No package 'dbus-1' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables DBUS_CFLAGS
and DBUS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.


Thanks to stevepusser for your instructions. I started afresh to get rid of errors.
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Re: I tried... but...

Postby edbarx » 2014-10-10 18:42

Patch committed as per stevepusser's instructions. The patch was the creation of debian/*. Now, dpkg-buildpackage stops with a different error:
Code: Select all
configure: exit 77
dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 77
debian/rules:22: recipe for target 'build' failed
make: *** [build] Error 255
dpkg-buildpackage: error: debian/rules build gave error exit status 2


It looks like my naivity is breaking Debian's packing rules, but which rules? I am inclined to point my finger at debian/control file.
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Re: I tried... but...

Postby stevepusser » 2014-10-10 18:51

Code: Select all
debian/rules:22: recipe for target 'build' failed


Something to do with line 22 in debian/rules. Is that file too long to paste here? The "tiny" rules file you get by default has debhelper handle everything automatically out of sight with heuristics (i.e., recognize a QT program, run qmake in the right way, then "make" and "make install". but often needs help with overrides. Like, say I notice that the clean process leaves behind a file called "crud". Then I can make sure it gets removed with

Code: Select all
override_dh_auto_clean
    rm -f crud         #removes crud, these lines are indented with <tabs>
    dh_auto_clean  #does the rest of the automagical cleaning

Seriously, I started off completely clueless when it came to packaging, just tried and learn from mistakes---many, many, many mistakes, so don't despair.
MX Linux packager and developer
User avatar
stevepusser
 
Posts: 12192
Joined: 2009-10-06 05:53

Re: I tried... but...

Postby edbarx » 2014-10-10 20:04

debian/rules:
Code: Select all
edbarx-pc:~/useless_d/uselessd-4$ cat debian/rules
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


# main packaging script based on dh7 syntax
%:
   dh $@  --with autotools-dev

# debmake generated override targets
# This is example for Cmake (See http://bugs.debian.org/641051 )
#override_dh_auto_configure:
#   dh_auto_configure -- \
#   -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Re: I tried... but...

Postby stevepusser » 2014-10-10 21:54

It looks like line 22 is the main debhelper line. I don't think I've seen one with --with-autotool-dev, that may be an illegal instruction.

I think you should try this instead if you don't already have a configure file

The dh-autoreconf package provides a sequence addon for debhelper 7 which can be used in the following way:



#!/usr/bin/make -f
Code: Select all
    %:
        dh $@ --with autoreconf



This will call dh_autoreconf prior to dh_auto_configure and will call dh_autoreconf_clean before dh_clean.



So just replace autotools-dev with autoreconf.

It also requires you install the dh-autoreconf package and add it to the Build-Depends in debian/control.
MX Linux packager and developer
User avatar
stevepusser
 
Posts: 12192
Joined: 2009-10-06 05:53

Re: I tried... but...

Postby edbarx » 2014-10-11 08:58

Struggling to bits with the debian/control file to be accepted by:
Code: Select all
dpkg-source --commit


My naive control file is this, that dpkg-source haughtily rejects:
Code: Select all
Package: uselessd-edb
Version: 1.00-0
Architecture: amd64
Maintainer: edbarx fdn <edbarx@unknown.org>
Source: uselessd-4
Depends: libc6 (>= 2.19-11)
Conflicts: systemd (>= 215-5)
Replaces: systemd
Section: admin
Priority: optional
Description: uselessd-edb, a lean systemd replacement without the fashionable bloat.


The error message is this:
Code: Select all
$ dpkg-source --commit
dpkg-source: warning: unknown information field 'Package' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Version' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Architecture' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Depends' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Conflicts' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Replaces' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Description' in input data in general section of control info file
dpkg-source: error: uselessd-4/debian/control doesn't list any binary package


These are standard control file fields, what is unknown about them, dpkg-source?

I am suspecting the error has nothing to do with the control file itself. I have been following other working control files together with man dev-control and wikis, to no avail. The source of the error must be somewhere else in the source hierarchy and I suspect it has to do with a setting telling dpkg-source that we are dealing with a non-binary package or at least that the end purpose of the package is not a binary package.
Debian == { > 30, 000 packages }; Debian != systemd
The worst infection of all, is a false sense of security!
It is hard to get away from CLI tools.
User avatar
edbarx
 
Posts: 5402
Joined: 2007-07-18 06:19
Location: 35° 50 N, 14 º 35 E

Next

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 12 guests

fashionable