pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/49525: fuse-encfs is old and does not build
>Number: 49525
>Category: pkg
>Synopsis: fuse-encfs is old and does not build
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: change-request
>Submitter-Id: net
>Arrival-Date: Fri Jan 02 11:05:00 +0000 2015
>Originator: Alan Barrett
>Release: NetBSD 7.99.1
>Organization:
not much
>Environment:
System: NetBSD 7.99.1 i386
Architecture: i386
Machine: i386
>Description:
The fuse-encfs-1.2.0.2nb4 package (from pkgsrc filesystems/fuse-encfs)
does not build on NetBSD-7.99.1.
Upstream version 1.2.0-2 was released in Feb 2005. The latest
upstream release is version 1.7.5 (released in Dec 2011), and
upstream version 1.8 is likely to be released soon (1.8-rc1 was
released in Dec 2014).
There have been so many changes over the past 10 years that it
seems sensible to update to a newer version, rather than to
figure out how to make the old version build.
>How-To-Repeat:
Try to build fuse-enfcs-1.2.0.2nb4 on NetBSD-7.99.1. See the
following errors:
Error messages from "make build":
[[[
In file included from Cipher.h:27:0,
from Cipher.cpp:19:
Ptr.h: In instantiation of 'class rel::Ptr<Cipher>':
Cipher.cpp:101:55: required from here
Ptr.h:155:2: error: cannot allocate an object of abstract type 'Cipher'
Ptr(Type value, void *noDestructor)
^
In file included from Cipher.cpp:19:0:
Cipher.h:43:7: note: because the following virtual functions are pure within 'Cipher':
class Cipher
^
Cipher.h:85:28: note: virtual rel::Interface Cipher::interface() const
virtual rel::Interface interface() const =0;
^
Cipher.h:88:23: note: virtual CipherKey Cipher::newKey(const char*, int)
virtual CipherKey newKey(const char *password, int passwdLength) =0;
^
Cipher.h:90:23: note: virtual CipherKey Cipher::newRandomKey()
virtual CipherKey newRandomKey() =0;
^
Cipher.h:93:23: note: virtual CipherKey Cipher::readKey(const unsigned char*, const CipherKey&, bool)
virtual CipherKey readKey(const unsigned char *data,
^
Cipher.h:96:18: note: virtual void Cipher::writeKey(const CipherKey&, unsigned char*, const CipherKey&)
virtual void writeKey(const CipherKey &key, unsigned char *data,
^
Cipher.h:99:18: note: virtual bool Cipher::compareKey(const CipherKey&, const CipherKey&) const
virtual bool compareKey( const CipherKey &A, const CipherKey &B ) const =0;
^
Cipher.h:102:17: note: virtual int Cipher::keySize() const
virtual int keySize() const=0;
^
Cipher.h:103:17: note: virtual int Cipher::encodedKeySize() const
virtual int encodedKeySize() const=0; // size
^
Cipher.h:104:17: note: virtual int Cipher::cipherBlockSize() const
virtual int cipherBlockSize() const=0; // size of a cipher block
^
Cipher.h:109:18: note: virtual void Cipher::randomize(unsigned char*, int) const
virtual void randomize( unsigned char *buf, int len ) const =0;
^
Cipher.h:112:22: note: virtual __uint64_t Cipher::MAC_64(const unsigned char*, int, const CipherKey&, __uint64_t*) const
virtual uint64_t MAC_64( const unsigned char *src, int len,
^
Cipher.h:124:18: note: virtual bool Cipher::streamEncode(unsigned char*, int, __uint64_t, const CipherKey&) const
virtual bool streamEncode( unsigned char *data, int len,
^
Cipher.h:126:18: note: virtual bool Cipher::streamDecode(unsigned char*, int, __uint64_t, const CipherKey&) const
virtual bool streamDecode( unsigned char *data, int len,
^
Cipher.h:144:18: note: virtual bool Cipher::blockEncode(unsigned char*, int, __uint64_t, const CipherKey&) const
virtual bool blockEncode(unsigned char *buf, int size,
^
Cipher.h:146:18: note: virtual bool Cipher::blockDecode(unsigned char*, int, __uint64_t, const CipherKey&) const
virtual bool blockDecode(unsigned char *buf, int size,
^
In file included from Cipher.h:27:0,
from Cipher.cpp:19:
Ptr.h:176:6: error: cannot allocate an object of abstract type 'Cipher'
Ptr(Type value, void(*destructor)(Type))
^
In file included from Cipher.cpp:19:0:
Cipher.h:43:7: note: since type 'Cipher' has pure virtual functions
class Cipher
^
In file included from Cipher.h:27:0,
from Cipher.cpp:19:
Ptr.h:245:7: error: cannot allocate an object of abstract type 'Cipher'
void reset(Type value, void(*destructor)(Type))
^
In file included from Cipher.cpp:19:0:
Cipher.h:43:7: note: since type 'Cipher' has pure virtual functions
class Cipher
^
Makefile:512: recipe for target 'Cipher.o' failed
gmake[2]: *** [Cipher.o] Error 1
]]]
>Fix:
Please update fuse-encfs to version 1.7.5, or 1.8rc1, or
wait for version 1.8 and update to that.
Here's my failed attempt. I deleted all the patch files,
and edited the Makefile as follows (updating the version
number, MASTER_SITE, and a few related variables, and adding a
dependency on boost), but it complains about a failure to find
some unidentified library.
Makefile patch:
[[[
--- pkgsrc/filesystems/fuse-encfs/Makefile 12 Feb 2014 23:17:53 -0000 1.10
+++ pkgsrc/filesystems/fuse-encfs/Makefile 2 Jan 2015 10:36:19 -0000
@@ -1,20 +1,19 @@
# $NetBSD: Makefile,v 1.10 2014/02/12 23:17:53 tron Exp $
#
-DISTNAME= encfs-1.2.0-2
-PKGNAME= fuse-${DISTNAME:S/-2/.2/}
-PKGREVISION= 4
+DISTNAME= v1.8-rc1
+PKGNAME= fuse-encfs-${DISTNAME:S/^v//:S/-rc/rc/}
CATEGORIES= filesystems
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=encfs/}
-EXTRACT_SUFX= .tgz
+MASTER_SITES= https://github.com/vgough/encfs/archive/
MAINTAINER= pkgsrc-users%NetBSD.org@localhost
HOMEPAGE= http://www.arg0.net/encfs
COMMENT= FUSE Encrypted Filesystem
+LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3
-WRKSRC= ${WRKDIR}/${DISTNAME:S/-2//}
+WRKSRC= ${WRKDIR}/encfs-${DISTNAME:S/^v//}
GNU_CONFIGURE= yes
-USE_TOOLS+= autoconf gmake pkg-config
+USE_TOOLS+= gmake pkg-config
USE_LANGUAGES= c c++
.include "../../mk/bsd.prefs.mk"
@@ -23,6 +22,14 @@ USE_LANGUAGES= c c++
CPPFLAGS+= -D_NETBSD_SOURCE
.endif
+.if "${DISTNAME:M*rc[0-9]*}" != ""
+# "rc" releases don't have pre-generated configure scripts
+USE_TOOLS+= autoconf automake
+pre-configure:
+ cd ${WRKSRC} && autoreconf -if
+.endif
+
+.include "../../devel/boost-headers/buildlink3.mk"
.include "../../devel/librlog/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/fuse.buildlink3.mk"
]]]
Error messages from "make configure":
[[[
checking for boostlib >= 1.34... yes
configure: WARNING: BOOST_CPPFLAGS
checking whether the Boost::Serialization library is available... yes
configure: error: Could not find a version of the library!
*** Error code 1
]]]
Home |
Main Index |
Thread Index |
Old Index