Solved Error messages from portmaster when installing dar with mods.

I'm getting the following error messages when I try to build and install the dar program from ports using portmaster and make:

Code:
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        dar-2.5.5_1

Number of packages to be removed: 1

The operation will free 11 MiB.
[1/1] Deinstalling dar-2.5.5_1...
[1/1] Deleting files for dar-2.5.5_1: 100%

===>  Installing for dar-2.5.5_1
===>  Checking if dar already installed
===>   Registering installation for dar-2.5.5_1
pkg-static: Unable to access file /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar.a: No such file or directory
pkg-static: Unable to access file /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar.so: No such file or directory
pkg-static: Unable to access file /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar.so.5000: No such file or directory
pkg-static: Unable to access file /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar.so.5000.8.1: No such file or directory
pkg-static: Unable to access file /usr/ports/sysutils/dar/work/stage/usr/local/libdata/pkgconfig/libdar.pc: No such file or directory
*** Error code 74

Stop.
make: stopped in /usr/ports/sysutils/dar

===>>> Installation of dar-2.5.5_1 (sysutils/dar) failed
===>>> Aborting update

The library pkg-static should be searching for is libdar64.a (and the rest):
Code:
[root@freebsd_pc /usr/ports]# ls /usr/ports/sysutils/dar/work/stage/usr/local/lib/
X11                  debug                libdar64.a           libdar64.so          libdar64.so.5000     libdar64.so.5000.8.1

Here's the configuration change that I made to dar's Makefile:
Code:
[root@freebsd_pc ~]# diff /usr/ports/sysutils/dar/Makefile.{mod,og}
29c29
< OPTIONS_DEFINE=               GCRYPT GPGME LZO ZLIB BZIP2 LZMA DOCS NLS INT
---
> OPTIONS_DEFINE=               GCRYPT GPGME LZO ZLIB BZIP2 LZMA DOCS NLS
47,48d46
< INT_DESC=             Use 64-bit integer instead of infinint
< INT_CONFIGURE_ENABLE= mode=64

Which seems to have gone well:
Code:
[root@freebsd_pc /usr/ports/sysutils/dar]# make showconfig
===> The following configuration options are available for dar-2.5.5_1:
     BZIP2=on: bzip2 compression support
     DOCS=on: Build and/or install documentation
     GCRYPT=on: Use GNU crypt library instead of OpenSSL
     GPGME=off: gpgme for asymetric crypto algorithms
     INT=on: Use 64-bit integer instead of infinint
     LZMA=on: LZMA compression support
     LZO=on: Support lzo compression via liblzo2
     NLS=on: Native Language Support
     ZLIB=on: zlib compression support
===> Use 'make config' to modify these settings
Code:
dar and libdar have been successfully configured with the following parameters:

  LIBDAR parameters:
   Zlib compression (gzip)    : YES
   Libbz2 compression (bzip2) : YES
   Liblzo2 compression (lzo)  : YES
   Liblxz compression (xz)    : YES
   Strong encryption support  : YES
   Public key cipher support  : NO
   Extended Attributes support: NO
   Large files support (> 2GB): YES
   extX FSA / nodump support  : NO
   HFS+ FSA support           : YES
   Special allocation scheme  : NO
   Integer size used          : 64
   Thread safe support        : YES
   Furtive read mode          : NO
   Large directory optim.     : YES
   posix fadvise support      : YES
   microsecond read accuracy  : YES
   microsecond write accuracy : YES
   can restore symlink dates  : YES

  DAR SUITE command line programs:
   Long options available : YES
   Building examples      : NO
   Building dar_static    : NO
   using upx at install   : NO
   building documentation : NO

===>  Building for dar-2.5.5_1

But the library names aren't being updated during installation.

Searching through tmux's buffer shows promising commands being executed:
Code:
libtool: install: (cd /usr/ports/sysutils/dar/work/stage/usr/local/lib && { ln -s -f libdar64.so.5000.8.1 libdar64.so || { rm -f libdar64.so && ln -s libdar64.so.5000.8.1 libdar64.so; }; })
libtool: install: /usr/bin/install -c .libs/libdar64.lai /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar64.la
libtool: install: /usr/bin/install -c .libs/libdar64.a /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar64.a
libtool: install: strip --strip-debug /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar64.a
libtool: install: chmod 644 /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar64.a
libtool: install: ranlib /usr/ports/sysutils/dar/work/stage/usr/local/lib/libdar64.a

But somehow it's still failing.

Any idea how to fix this?
 
Code:
[root@freebsd_pc /usr/ports/sysutils/dar]# make check-plist
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/libdar64.a
Error: Orphaned: lib/libdar64.so
Error: Orphaned: lib/libdar64.so.5000
Error: Orphaned: lib/libdar64.so.5000.8.1
Error: Orphaned: libdata/pkgconfig/libdar64.pc
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: lib/libdar.a
Error: Missing: lib/libdar.so
Error: Missing: lib/libdar.so.5000
Error: Missing: lib/libdar.so.5000.8.1
Error: Missing: libdata/pkgconfig/libdar.pc
===> Error: Plist issues found.
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/dar
Code:
[root@freebsd_pc /usr/ports/sysutils/dar]# make stage-qa
====> Running Q/A tests (stage-qa)
Error: /usr/local/bin/dar is linked to /usr/local/lib/libgpg-error.so.0 from security/libgpg-error but it is not declared as a dependency
Warning: you need LIB_DEPENDS+=libgpg-error.so:security/libgpg-error
/!\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\
 
I tried modifying /usr/ports/sysutils/dar/pkg-plist to replace the non 64-bit objects with the 64-bit name:
Code:
...
lib/libdar64.a
lib/libdar64.so
lib/libdar64.so.5000
lib/libdar64.so.5000.8.1
libdata/pkgconfig/libdar64.pc
...

Which allowed me to install the port using portmaster, but then dar error-ed out, complaining that
Code:
Archive freebsd_pc.Feb.08.2017 requires a password:
Please confirm your password:
Writing down the archive header...
Adding a new layer on top: Strong encryption object...
Writing down the initial elastic buffer through the encryption layer...
Adding a new layer on top: Escape layer to allow sequential reading...
Adding a new layer on top: compression...
All layers have been created successfully
Building the catalog object...
Processing files for backup...
Inspecting directory /.snap
Final memory cleanup...
Aborting program. Cannot handle such a too large integer. Use a full version of libdar (compiled to rely on the "infinint" integer type) to solve this problem

Lol.
 
Well, it did work (portmaster successfully installed a functioning program with the 64-bit int type set):

Code:
[root@freebsd_pc ~]# dar --version

 dar version 2.5.5, Copyright (C) 2002-2052 Denis Corbin
   Long options support       : YES

 Using libdar 5.8.1 built with compilation time options:
   Libz compression (gzip)      : YES
   Libbz2 compression (bzip2)   : YES
   Liblzo2 compression (lzo)    : YES
   Liblzma compression (xz)     : YES
   Strong encryption (libgcrypt): YES
   Public key ciphers (gpgme)   : NO
   Extended Attributes support  : NO
   Large files support (> 2GB)  : YES
   ext2fs NODUMP flag support   : NO
   Special allocation scheme    : NO
   Integer size used            : 64 bits
   Thread safe support          : YES
   Furtive read mode support    : NO
   Linux ext2/3/4 FSA support   : NO
   Mac OS X HFS+ FSA support    : YES
   Detected system/CPU endian   : little
   Posix fadvise support        : YES
   Large dir. speed optimi.     : YES
   Timestamp read accuracy      : 1 microsecond
   Timestamp write accuracy     : 1 microsecond
   Restores dates of symlinks   : YES

 compiled the Feb  8 2017 with GNUC version 4.2.1 Compatible FreeBSD Clang 3.4.1 (tags/RELEASE_34/dot1-final 208032)
 dar is part of the Disk ARchive suite (Release 2.5.5)
 dar comes with ABSOLUTELY NO WARRANTY; for details
 type `dar -W'. This is free software, and you are welcome
 to redistribute it under certain conditions; type `dar -L | more'
 for details.

Proof:
Code:
[root@freebsd_pc ~]# dar --create /tmp/wutwut.dar --fs-root /root/ -P testdir
 --------------------------------------------
 169 inode(s) saved
   including 0 hard link(s) treated
 0 inode(s) changed at the moment of the backup and could not be saved properly
 0 byte(s) have been wasted in the archive to resave changing files
 0 inode(s) not saved (no inode/file change)
 0 inode(s) failed to be saved (filesystem error)
 1 inode(s) ignored (excluded by filters)
 0 inode(s) recorded as deleted from reference backup
 --------------------------------------------
 Total number of inode(s) considered: 170
 FSA saved for 169 inode(s)
 --------------------------------------------

Now I've got to wrestle with the beast again to get it to perform the backups I installed it to perform ... :rolleyes:
 
Back
Top