Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-09-16 Thread Tim
> Honestly, I don't care about SVN or GIT. What I do care about is that you
> provide me a usable tarball and you don't do that currently. At least
> GitHub can build tarball on the fly for me... but only when I want
> everything in the repository.

Ok, I'm sorry for the trouble.  The ground has shifted under my feet
with Google locking down my main project site, so it will take me a
while to figure out the best solution.

I realize now that GitHub's SVN support sucks.  Don't bother with it.
I will send you a tarball privately that you can try out.


> gcc -o lib/libregfi.so.0.0.0 -shared -fPIC -Wl,-z,relro -shared 
> -Wl,-Bsymbolic -Wl,-soname=libregfi.so.0 lib/regfi.os lib/winsec.os 
> lib/range_list.os lib/lru_cache.os lib/void_stack.os -Llib -L/usr/local/lib 
> -lm -lpthread -ltalloc
> Install file: "lib/libregfi.so.0.0.0" as "/usr/local/lib/libregfi.so.0.0.0"
> scons: *** [/usr/local/lib/libregfi.so.0.0.0] 
> /usr/local/lib/libregfi.so.0.0.0: Permission denied
> scons: building terminated because of errors.

I'm honestly not sure how you get this error.  I didn't have this
problem with either my SVN tree check out or the tarball I just built
(and will send you shortly).  

> Do you agree that "scons bin doc doc-devel" should not fail when without
> root rights?

Yes, these should complete without root privileges, though you
shouldn't need to run 'doc'.  That's because I run it when I build the
tarball and distribute man pages as static files.  FYI 'doc-devel'
requires dependencies doxygen and graphviz.  Not sure if I documented
that previously.

Stay tuned,
tim



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-09-15 Thread Raphael Hertzog
Hi,

On Mon, 14 Sep 2015, Tim wrote:
> Could you actually just try using subversion?  I may be mirroring it
> on GitHub, but that doesn't mean I use git.  I'm not convinced I even
> like git.  Far too complex for simple projects.
> 
> Anyway, I'm just pushing a mirror of my SVN repo to GitHub right now.
> Can you try using a subversion client to access the repo?  e.g.:
> 
> $ svn co https://github.com/ecbftw/reglookup

Honestly, I don't care about SVN or GIT. What I do care about is that you
provide me a usable tarball and you don't do that currently. At least
GitHub can build tarball on the fly for me... but only when I want
everything in the repository.

I was not aware that you could use SVN with GitHub... but in any case
it doesn't seem to let me export a sub-tree:

$ svn export https://github.com/ecbftw/reglookup/trunk reglookup
Areglookup
Areglookup/README.md
Areglookup/SConstruct
Areglookup/releases
Areglookup/releases/0.10.0

It doesn't export the content of the "trunk" sub-directory. I can work
it out manually, but those extra steps are annoying...

> As for building with scons 3.6... I'm on Debian sid right now and the
> latest version is 2.3.6, so I suspect that is what you mean.  I'll
> take a look at my build and make sure it behaves as I expect.

Yes, I meant 2.3.6.

On Mon, 14 Sep 2015, Tim wrote:
> Ok, so I'm not sure what you're running into here.  I cleaned out all
> build artifacts my build tree and those installed on my system ("scons -c" 
> and "sudo scons -c install", respectively) and then did a fresh install
> into a temporary directory using PREFIX.  It seems to work fine as
> shown in the transcript below.  Let me know if I can provide more
> info or run things differently.

Actually the error I have is during build and not during install.
The build step runs "scons bin doc doc-devel" and should not install
anything yet. Yet it tries to install something and since I have not
set DESTDIR/PREFIX at this step, it fails to install the file due to lack of
permissions.

Here's how it fails on my side (not the latest svn version but the regression
in scons affects former packages too):

   debian/rules override_dh_auto_build
make[1]: Entering directory '/«BUILDDIR»/reglookup-1.0.1+svn282'
scons bin doc doc-devel
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o src/reglookup-recover.o -c -std=gnu99 -pedantic -Wall 
-D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DREGFI_VERSION='"99.99.99.277"' -g 
-O2 -fstack-protector-strong -Wformat -Werror=format-security -Iinclude 
-I/usr/local/include src/reglookup-recover.c
[...]
gcc -o lib/libregfi.so.0.0.0 -shared -fPIC -Wl,-z,relro -shared -Wl,-Bsymbolic 
-Wl,-soname=libregfi.so.0 lib/regfi.os lib/winsec.os lib/range_list.os 
lib/lru_cache.os lib/void_stack.os -Llib -L/usr/local/lib -lm -lpthread -ltalloc
Install file: "lib/libregfi.so.0.0.0" as "/usr/local/lib/libregfi.so.0.0.0"
scons: *** [/usr/local/lib/libregfi.so.0.0.0] /usr/local/lib/libregfi.so.0.0.0: 
Permission denied
scons: building terminated because of errors.


Do you agree that "scons bin doc doc-devel" should not fail when without
root rights?

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-09-14 Thread Tim
> - then the package fails to build for us with "scons" 3.6 that is present
>   in unstable... somehow it tries to install the library in the target
>   where we are trying to build it. I did not understand why...

Ok, so I'm not sure what you're running into here.  I cleaned out all
build artifacts my build tree and those installed on my system ("scons -c" 
and "sudo scons -c install", respectively) and then did a fresh install
into a temporary directory using PREFIX.  It seems to work fine as
shown in the transcript below.  Let me know if I can provide more
info or run things differently.

thanks,
tim

===
tim@pauling:~/reglookup/trunk$ mkdir /tmp/reglookup
tim@pauling:~/reglookup/trunk$ sudo PREFIX=/tmp/reglookup scons install
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o src/reglookup.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include src/reglookup.c
gcc -o lib/regfi.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include lib/regfi.c
lib/regfi.c:672:13: warning: regfi_offset_in_hbin defined but not used 
[-Wunused-function]
 static bool regfi_offset_in_hbin(const REGFI_HBIN* hbin, uint32_t voffset)
 ^
gcc -o lib/winsec.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include lib/winsec.c
gcc -o lib/range_list.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include lib/range_list.c
gcc -o lib/lru_cache.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include lib/lru_cache.c
gcc -o lib/void_stack.o -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include lib/void_stack.c
ar rc lib/libregfi.a lib/regfi.o lib/winsec.o lib/range_list.o lib/lru_cache.o 
lib/void_stack.o
ranlib lib/libregfi.a
gcc -o lib/regfi.os -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -fPIC -Iinclude -I/usr/local/include lib/regfi.c
lib/regfi.c:672:13: warning: regfi_offset_in_hbin defined but not used 
[-Wunused-function]
 static bool regfi_offset_in_hbin(const REGFI_HBIN* hbin, uint32_t voffset)
 ^
gcc -o lib/winsec.os -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -fPIC -Iinclude -I/usr/local/include lib/winsec.c
gcc -o lib/range_list.os -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -fPIC -Iinclude -I/usr/local/include lib/range_list.c
gcc -o lib/lru_cache.os -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -fPIC -Iinclude -I/usr/local/include lib/lru_cache.c
gcc -o lib/void_stack.os -c -std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 
-fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2 -fPIC -Iinclude -I/usr/local/include lib/void_stack.c
gcc -o lib/libregfi.so.1.0.1 -fPIC -Wl,-z,relro,-z,now -shared -Wl,-Bsymbolic 
-Wl,-soname=libregfi.so.1 lib/regfi.os lib/winsec.os lib/range_list.os 
lib/lru_cache.os lib/void_stack.os -Llib -L/usr/local/lib -lm -lpthread -ltalloc
gcc -o src/reglookup -fPIC -Wl,-z,relro,-z,now src/reglookup.o -Llib 
-L/usr/local/lib -lm -lpthread -lregfi -ltalloc
Install file: "src/reglookup" as "/tmp/reglookup/bin/reglookup"
gcc -o src/reglookup-recover.o -c -std=gnu99 -pedantic -Wall 
-D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DREGFI_VERSION='"1.0.1.283"' -fPIE 
-pie -fstack-protector -D_FORTIFY_SOURCE=2 -Iinclude -I/usr/local/include 
src/reglookup-recover.c
gcc -o src/reglookup-recover -fPIC -Wl,-z,relro,-z,now src/reglookup-recover.o 
-Llib -L/usr/local/lib -lm -lpthread -lregfi -ltalloc
Install file: "src/reglookup-recover" as "/tmp/reglookup/bin/reglookup-recover"
Install file: "bin/reglookup-timeline" as 
"/tmp/reglookup/bin/reglookup-timeline"
docbook2x-man --to-stdout doc/reglookup-recover.1.docbook|sed 's/.SH 
DESCRIPTION/\n.SH DESCRIPTION/'| gzip -9 > doc/reglookup-recover.1.gz
Install file: "doc/reglookup-recover.1.gz" as 
"/tmp/reglookup/man/man1/reglookup-recover.1.gz"

Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-09-14 Thread Tim

Hi guys,

Just got back from vacation myself.

> So we tried to update the package but failed rather miserably:
> - first your version number generator is broken since it tries to embed a
>   SVN revision number that no longer exists now that you migrated on
>   GitHub (we worked around that by dropping that part of the version)
> - then the package fails to build for us with "scons" 3.6 that is present
>   in unstable... somehow it tries to install the library in the target
>   where we are trying to build it. I did not understand why...
> 
> I stopped at that point and could not review how the result would
> have looked.
> 
> We also noticed that the GitHub is a not very useful import of the SVN
> repository... it's not possible to use git archive to export a copy of
> reglookup because the repository contains more than this and the reglookup
> source code is one level deeper (in trunk).

Could you actually just try using subversion?  I may be mirroring it
on GitHub, but that doesn't mean I use git.  I'm not convinced I even
like git.  Far too complex for simple projects.

Anyway, I'm just pushing a mirror of my SVN repo to GitHub right now.
Can you try using a subversion client to access the repo?  e.g.:

$ svn co https://github.com/ecbftw/reglookup


This should address the SVN version generator and bypass any git
archive issue. 

As for building with scons 3.6... I'm on Debian sid right now and the
latest version is 2.3.6, so I suspect that is what you mean.  I'll
take a look at my build and make sure it behaves as I expect.

thanks,
tim



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-09-06 Thread Raphael Hertzog
Hello Tim,

sorry for the delay of my answer but August was DebConf and vacation...

On Fri, 07 Aug 2015, Tim wrote:
> I finally had a chance to take another crack at this.  I've attempted
> to address all of the items listed above.  I integrated your guys' soname

So we tried to update the package but failed rather miserably:
- first your version number generator is broken since it tries to embed a
  SVN revision number that no longer exists now that you migrated on
  GitHub (we worked around that by dropping that part of the version)
- then the package fails to build for us with "scons" 3.6 that is present
  in unstable... somehow it tries to install the library in the target
  where we are trying to build it. I did not understand why...

I stopped at that point and could not review how the result would
have looked.

We also noticed that the GitHub is a not very useful import of the SVN
repository... it's not possible to use git archive to export a copy of
reglookup because the repository contains more than this and the reglookup
source code is one level deeper (in trunk).

> I did not integrate the other patch that strips python installs, since
> users need that if they compile from source.  Can you simply run these
> two targest to achieve the same result?
>  scons install_bin
>  scons install_lib

Sure, that's possible.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-08-07 Thread Tim
 On Mon, 08 Jun 2015, Raphael Hertzog wrote:
  we just tried the trunk. It's better but there are still multiple
  problems:
  - LDFLAGS is not used when you link the executables (it's only used when
you link libregfi)
  - the default value for LDFLAGS is wrong, -z relro is an option for ld 
  but
when you pass it through gcc you need -Wl,-z,relro 
  - I saw you tried to hack up some code to setup the SONAME... it does set
the SONAME on the library but the library is still installed under the
wrong name (libregfi.so instead of the name set in the SONAME)
  - the SONAME must not encode the full version... it's only a simple
counter of API/ABI compatibility. Please use libregfi.so.0 as
the first SONAME (and then bump to libregfi.so.1 when you break
the ABI/API, etc.) (and 99.99.99.X looks really wrong as a version number 
  :))
 
 Tim, I hope you can fix those issues quickly now that we have identified
 how to properly handle versioned libraries and that you can make a new
 release.


Hi Raphael,

I finally had a chance to take another crack at this.  I've attempted
to address all of the items listed above.  I integrated your guys' soname
patch and tweaked it a bit to use a partial reglookup version number
as the ABI version.  The way it behaves right now is to assign 1.0.1
as the version when working from trunk.  When working from a release
version, it will use just the first two portions of the version 
(e.g. 1.0).  The reason for this is that I don't change my API in
minor point releases, but I typically do when the upper version
numbers change.

I did not integrate the other patch that strips python installs, since
users need that if they compile from source.  Can you simply run these
two targest to achieve the same result?
 scons install_bin
 scons install_lib

I fixed the two LDFLAGS issues you pointed out as well.  Let me know
if you think it is up to snuff now.

Best,
tim


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-15 Thread Raphael Hertzog
Control: tag -1 + patch

Hi,

On Fri, 05 Jun 2015, Eriberto Mota wrote:
 I can update reglookup. However, I need 10 days, because I am
 traveling now and I can't use my GPG key.

You can now base your work on this updated package:
http://http.kali.org/pool/main/r/reglookup/reglookup_1.0.1+svn282-0kali2.dsc

On Mon, 08 Jun 2015, Raphael Hertzog wrote:
 we just tried the trunk. It's better but there are still multiple
 problems:
 - LDFLAGS is not used when you link the executables (it's only used when
   you link libregfi)
 - the default value for LDFLAGS is wrong, -z relro is an option for ld but
   when you pass it through gcc you need -Wl,-z,relro 
 - I saw you tried to hack up some code to setup the SONAME... it does set
   the SONAME on the library but the library is still installed under the
   wrong name (libregfi.so instead of the name set in the SONAME)
 - the SONAME must not encode the full version... it's only a simple
   counter of API/ABI compatibility. Please use libregfi.so.0 as
   the first SONAME (and then bump to libregfi.so.1 when you break
   the ABI/API, etc.) (and 99.99.99.X looks really wrong as a version number 
 :))

Tim, I hope you can fix those issues quickly now that we have identified
how to properly handle versioned libraries and that you can make a new
release.

For reference, we only have the attached two patches in use in Kali.
One to disable the build of the python module (we do it ourselves
in debian/rules) and one to use a proper versioned library.

 While lookinto in Scons support for versioned shared library I found this:
 http://stackoverflow.com/questions/2997001/how-to-get-shared-library-names-like-libhello-so-0-0-1-with-scons
 
 http://www.scons.org/doc/production/HTML/scons-user/apb.html#b-SharedLibrary

The attached patches make use of that.

 but does not seem
 to make any difference between the version used in the filename (ideally
 libfoo.so.X.Y.Z) and the SONAME which is usually simpler (libfoo.so.X and
 which is the reason why the symlinks libfoo.so.X are needed when you
 install the library as libfoo.so.X.Y.Z). I would thus suggest to pass a
 single integer to SHLIBVERSION and not care about having a filename
 encoding the full version.
 
 full version filename and the SONAME

That part of my last message was not supposed to be there. It's some
random text left from an initial draft that assumed that upstream support
was not working like I expected it.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/
Description: add version to shared library liregfi
 Update SConstruct file to manage the version for the shared library
 libregfi.
Author: Sophie Brun sop...@freexian.com
Origin: vendor
Last-Update: 2015-06-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/SConstruct
+++ b/SConstruct
@@ -9,10 +9,9 @@ cflags = '-std=gnu99 -pedantic -Wall -D_
 cflags += ' -DREGFI_VERSION=\'%s\' ' % REGFI_VERSION
 cflags += os.environ.get('CFLAGS','-fPIE -pie -fstack-protector -D_FORTIFY_SOURCE=2')
 
-linkflags = -shared -fPIC -Wl,-soname,libregfi.so.%s  % REGFI_VERSION
+linkflags = -shared -fPIC 
 linkflags += os.environ.get('LDFLAGS','-z relro -z now')
 
-
 lib_src = ['lib/regfi.c',
'lib/winsec.c',
'lib/range_list.c',
@@ -31,7 +30,7 @@ env = Environment(ENV=os.environ,
 # Libraries
 libregfi_static = env.Library(lib_src)
 libregfi = env.SharedLibrary(lib_src, LIBS=['m','pthread', 'talloc'], 
- LINKFLAGS=linkflags)
+ SHLIBVERSION = '0.0.0', LINKFLAGS=linkflags)
 
 
 # Executables
@@ -64,7 +63,7 @@ install_bin = [destdir + bindir, destdir
 install_lib = [destdir + libdir, destdir + includedir + '/regfi']
 
 env.Install(destdir+bindir, [reglookup, reglookup_recover, 'bin/reglookup-timeline'])
-libinstall = env.Install(destdir+libdir, [libregfi, libregfi_static])
+libinstall = env.InstallVersionedLib(destdir+libdir, [libregfi, libregfi_static], SHLIBVERSION='0.0.0')
 env.Install(destdir+includedir+'/regfi', Glob('include/*.h'))
 env.Install(destdir+mandir+'/man1', [man_reglookup, man_reglookup_recover,
  man_reglookup_timeline])
Description: drop python packages build and install by scons 
 Do not use scons for the python packages build and install. Use dh-python
 (pybuild) and the setup.py provided by upstream to build automatically the
 packages python and python3
Author: Sophie Brun sop...@freexian.com
Origin: vendor
Last-Update: 2015-06-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/SConstruct
+++ b/SConstruct
@@ -72,22 +72,6 @@ env.Install(destdir+mandir+'/man1', [man
 if os.getuid() == 0 and destdir == '':
env.AddPostAction(libinstall, 'ldconfig')
 
-install_pyregfi = []
-if sys.version_info[0] == 2:
-   install_pyregfi.append('pyregfi2-install.log')
-   

Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-15 Thread Tim
Hi Raphael,

 You can now base your work on this updated package:
 http://http.kali.org/pool/main/r/reglookup/reglookup_1.0.1+svn282-0kali2.dsc

Thanks much for putting this together.


 On Mon, 08 Jun 2015, Raphael Hertzog wrote:
  we just tried the trunk. It's better but there are still multiple
  problems:
  - LDFLAGS is not used when you link the executables (it's only used when
you link libregfi)
  - the default value for LDFLAGS is wrong, -z relro is an option for ld 
  but
when you pass it through gcc you need -Wl,-z,relro 
  - I saw you tried to hack up some code to setup the SONAME... it does set
the SONAME on the library but the library is still installed under the
wrong name (libregfi.so instead of the name set in the SONAME)
  - the SONAME must not encode the full version... it's only a simple
counter of API/ABI compatibility. Please use libregfi.so.0 as
the first SONAME (and then bump to libregfi.so.1 when you break
the ABI/API, etc.) (and 99.99.99.X looks really wrong as a version number 
  :))
 
 Tim, I hope you can fix those issues quickly now that we have identified
 how to properly handle versioned libraries and that you can make a new
 release.

I'll try.  I'm super busy this summer, as I was accepted as a Blackhat
speaker and have a lot of prep to do.  It is definitely on my list.


 For reference, we only have the attached two patches in use in Kali.
 One to disable the build of the python module (we do it ourselves
 in debian/rules) and one to use a proper versioned library.


  While lookinto in Scons support for versioned shared library I found this:
  http://stackoverflow.com/questions/2997001/how-to-get-shared-library-names-like-libhello-so-0-0-1-with-scons
  
  http://www.scons.org/doc/production/HTML/scons-user/apb.html#b-SharedLibrary
 
 The attached patches make use of that.

Great, thanks for the info.

tim


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-08 Thread Raphael Hertzog
Hello Tim,

we just tried the trunk. It's better but there are still multiple
problems:
- LDFLAGS is not used when you link the executables (it's only used when
  you link libregfi)
- the default value for LDFLAGS is wrong, -z relro is an option for ld but
  when you pass it through gcc you need -Wl,-z,relro 
- I saw you tried to hack up some code to setup the SONAME... it does set
  the SONAME on the library but the library is still installed under the
  wrong name (libregfi.so instead of the name set in the SONAME)
- the SONAME must not encode the full version... it's only a simple
  counter of API/ABI compatibility. Please use libregfi.so.0 as
  the first SONAME (and then bump to libregfi.so.1 when you break
  the ABI/API, etc.) (and 99.99.99.X looks really wrong as a version number :))

While lookinto in Scons support for versioned shared library I found this:
http://stackoverflow.com/questions/2997001/how-to-get-shared-library-names-like-libhello-so-0-0-1-with-scons

http://www.scons.org/doc/production/HTML/scons-user/apb.html#b-SharedLibrary

So it looks like it's supported since version 2.3.0... I just tried this
and got good results:

--- a/SConstruct
+++ b/SConstruct
@@ -9,10 +9,9 @@ cflags = '-std=gnu99 -pedantic -Wall -D_
 cflags += ' -DREGFI_VERSION=\'%s\' ' % REGFI_VERSION
 cflags += os.environ.get('CFLAGS','-fPIE -pie -fstack-protector 
-D_FORTIFY_SOURCE=2')
 
-linkflags = -shared -fPIC -Wl,-soname,libregfi.so.%s  % REGFI_VERSION
+linkflags = -shared -fPIC 
 linkflags += os.environ.get('LDFLAGS','-z relro -z now')
 
 lib_src = ['lib/regfi.c',
@@ -31,7 +30,7 @@ env = Environment(ENV=os.environ,
 # Libraries
 libregfi_static = env.Library(lib_src)
 libregfi = env.SharedLibrary(lib_src, LIBS=['m','pthread', 'talloc'], 
- LINKFLAGS=linkflags)
+ SHLIBVERSION='0.0.0', LINKFLAGS=linkflags)
 
 
 # Executables
@@ -64,7 +63,7 @@ install_bin = [destdir + bindir, destdir
 install_lib = [destdir + libdir, destdir + includedir + '/regfi']
 
 env.Install(destdir+bindir, [reglookup, reglookup_recover, 
'bin/reglookup-timeline'])
-libinstall = env.Install(destdir+libdir, [libregfi, libregfi_static])
+libinstall = env.InstallVersionedLib(destdir+libdir, [libregfi, 
libregfi_static], SHLIBVERSION='0.0.0')
 env.Install(destdir+includedir+'/regfi', Glob('include/*.h'))
 env.Install(destdir+mandir+'/man1', [man_reglookup, man_reglookup_recover,
  man_reglookup_timeline])




but does not seem
to make any difference between the version used in the filename (ideally
libfoo.so.X.Y.Z) and the SONAME which is usually simpler (libfoo.so.X and
which is the reason why the symlinks libfoo.so.X are needed when you
install the library as libfoo.so.X.Y.Z). I would thus suggest to pass a
single integer to SHLIBVERSION and not care about having a filename
encoding the full version.

full version filename and the SONAME

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-06 Thread Raphael Hertzog
Hi,

On Fri, 05 Jun 2015, Tim wrote:
 Ok, that makes sense.  Right now the python library installation is
 all lumped in with the install target.  You could build binaries
 without interference, but once you tried to install just certain
 pieces, the python wrappers will always install, which is probably not
 what you want.
 
 Would it make sense to create sub-targets, say install_python,
 install_lib, etc so that you can call the appropriate one depending
 on which sub-package you're building?  Or would you suggest another
 approach?

That should work, yes.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Raphael Hertzog
Hi,

On Wed, 03 Jun 2015, Tim wrote:
 Yeah, it's sad.  I need some one to *help* me package it and take
 ownership of the packaging.  There's very little maintenance at this
 point, since there's not really any active feature development and
 infrequent releases.  It's just a matter of getting over the major
 build changes betwween 0.12 and later versions.
 
 At one point one of the DFF guys said they created debian packages for
 it, but in a brief search I haven't been able to find them.

My intervention here is directly related DFF. In Kali we got this request:
https://bugs.kali.org/view.php?id=2290

We will update reglookup in Kali and contribute the changes back to
Debian.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Raphael Hertzog
Hi Tim,

On Fri, 05 Jun 2015, Raphael Hertzog wrote:
 On Wed, 03 Jun 2015, Tim wrote:
  Yeah, it's sad.  I need some one to *help* me package it and take
  ownership of the packaging.  There's very little maintenance at this
  point, since there's not really any active feature development and
  infrequent releases.  It's just a matter of getting over the major
  build changes betwween 0.12 and later versions.
  
  At one point one of the DFF guys said they created debian packages for
  it, but in a brief search I haven't been able to find them.
 
 My intervention here is directly related DFF. In Kali we got this request:
 https://bugs.kali.org/view.php?id=2290
 
 We will update reglookup in Kali and contribute the changes back to
 Debian.

We started working on this update but there are multiple problems:

* The library is not versioned, you need to have proper SONAME management
  for libraries packaged in Debian.
  https://wiki.debian.org/UpstreamGuide#Libraries
  (this is really important for us, only versioned libraries can be
  represented in the automatic library dependency mechanism)

* SCons does not allow us to inject hardened build flags in CFLAGS,
  LDFLAGS, CPPFLAGS:
  https://wiki.debian.org/UpstreamGuide#SCons

* SCons does not allow us to install files in a destination directory
  different from / (we use the DESTDIR variable for this)

* SCons is not standardized at all and thus debhelper has no support for
  it... which means that we can't benefit freely from stuff like multiarch
  support which requires us to install the libraries in an
  architecture-specific path.

And also some things which could be improved:

* please rename pyregfi-distutils.py to setup.py so that it can be
  automatically detected by our build tools

* don't call ldconfig (we do not run build process as root, the install
  step is run under fakeroot and any operation requiring real root rights
  will fail)

In general, it would be nice if you could use something else than SCons...

You can also have a look at other sections of the upstream guide that I
linked to as you might find some useful data that would make our lives
easier.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Eriberto Mota
Hi,

I am trying update all 'abandoned' packages in Forensics Team. I
started this work in December 2014.

I can update reglookup. However, I need 10 days, because I am
traveling now and I can't use my GPG key.

Cheers,

Eriberto


2015-06-05 7:25 GMT-03:00 Raphael Hertzog hert...@debian.org:
 Hi,

 On Wed, 03 Jun 2015, Tim wrote:
 Yeah, it's sad.  I need some one to *help* me package it and take
 ownership of the packaging.  There's very little maintenance at this
 point, since there's not really any active feature development and
 infrequent releases.  It's just a matter of getting over the major
 build changes betwween 0.12 and later versions.

 At one point one of the DFF guys said they created debian packages for
 it, but in a brief search I haven't been able to find them.

 My intervention here is directly related DFF. In Kali we got this request:
 https://bugs.kali.org/view.php?id=2290

 We will update reglookup in Kali and contribute the changes back to
 Debian.

 Cheers,
 --
 Raphaël Hertzog ◈ Debian Developer

 Support Debian LTS: http://www.freexian.com/services/debian-lts.html
 Learn to master Debian: http://debian-handbook.info/get/

 ___
 forensics-devel mailing list
 forensics-de...@lists.alioth.debian.org
 http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/forensics-devel


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Raphael Hertzog
On Fri, 05 Jun 2015, Tim wrote:
  * The library is not versioned, you need to have proper SONAME management
for libraries packaged in Debian.
https://wiki.debian.org/UpstreamGuide#Libraries
(this is really important for us, only versioned libraries can be
represented in the automatic library dependency mechanism)
 
 I'll have to read up on this.  I'm somewhat fuzzy on how this stuff is
 normally handled.

I don't have a good reference either, but I just found this:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN95

At least it gives you the command line to use to define the SONAME
of the library.

You want your library to have a SONAME of libregfi.so.1 installed in a
file of the same name (or with more digits: libregfi.so.1.0.0).
libregfi.so is a development symlink pointing to the current version of
the library (the one to use when you link with gcc -lregfi).

You can also read the Debian policy about libraries:
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html

  * SCons does not allow us to install files in a destination directory
different from / (we use the DESTDIR variable for this)
 
 I actually do have DESTDIR support.  Let me know if it isn't using the
 path appropriately.  Be sure to check the trunk version.  I'm not sure
 if the latest release has this.  In general, let's work off of the
 trunk until you're satisfied with my build script.

Hum, this was not in the 1.0.1 release. We tend to work with what's
officially released.

We'll take a look at the trunk...

  * SCons is not standardized at all and thus debhelper has no support for
it... which means that we can't benefit freely from stuff like multiarch
support which requires us to install the libraries in an
architecture-specific path.
 
 What environment variables are used to specify architecture-specific
 paths?  If CC, CFLAGS, LDFLAGS and the like are all accepted properly,
 what else would you need for cross-compiling?

For multiarch support we install libraries in different path, for autoconf
packages, debhelper automatically feeds appropriate parameters. debhelper
doesn't support SCons because there's no standard parameters or target to
use...

Anyway, LIBDIR should be enough for our cases, we then have to setup
this variable to point to an architecture specific path.

/usr/lib/x86_64-linux-gnu for amd64, /usr/lib/i386-linux-gnu for i386 and
so on.

  And also some things which could be improved:
  
  * please rename pyregfi-distutils.py to setup.py so that it can be
automatically detected by our build tools
 
 Ok, I'll look into this.

That way we can rely on python packaging tools directly, but in that case,
it would be nice if we could disable the python part done by scons itself
too...

  * don't call ldconfig (we do not run build process as root, the install
step is run under fakeroot and any operation requiring real root rights
will fail)
 
 Does my uid check not work for you?

No, fakeroot lets you believe that you are root. But a good work-around is
to not call ldconfig at all when DESTDIR is non-empty.

$ fakeroot python
Python 2.7.10 (default, May 26 2015, 13:10:44) 
[GCC 4.9.2] on linux2
Type help, copyright, credits or license for more information.
 import os
 os.getuid()
0

 Besides what you mentioned above, I see the guide mentions in passing
 a variety of other environment variables that should be accepted:
 
  If you choose to use SCons anyway, please ensure that the usual
 environment compiler variables (CC, CFLAGS, ...) and path variables
 (DESTDIR, BINDIR, LIBDIR, ...) are honoured. There is a recipe, that
 addresses some of these.
 
 It would be *great* of *all* environment variables were listed
 somewhere, instead of just a few and a hand wave... =P  Let me know if
 you have a more complete reference somewhere.

Possibly this:
https://www.gnu.org/software/autoconf/manual/autoconf.html#Environment-Variable-Index

There's no standard environment variable for installation directories
AFAIK. Only DESTDIR is sort of standardized...

BTW, the sample recipe linked from the guide can be found here:
https://web.archive.org/web/20141126004350/http://www.scons.org/wiki/Installer
(since the URL is currently down).

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Tim

Hi Raphael,


 We started working on this update but there are multiple problems:

Ok, so this is the kind of feedback I've been hoping to hear for some
time.


 * The library is not versioned, you need to have proper SONAME management
   for libraries packaged in Debian.
   https://wiki.debian.org/UpstreamGuide#Libraries
   (this is really important for us, only versioned libraries can be
   represented in the automatic library dependency mechanism)

I'll have to read up on this.  I'm somewhat fuzzy on how this stuff is
normally handled.


 * SCons does not allow us to inject hardened build flags in CFLAGS,
   LDFLAGS, CPPFLAGS:
   https://wiki.debian.org/UpstreamGuide#SCons

This is easy to add.


 * SCons does not allow us to install files in a destination directory
   different from / (we use the DESTDIR variable for this)

I actually do have DESTDIR support.  Let me know if it isn't using the
path appropriately.  Be sure to check the trunk version.  I'm not sure
if the latest release has this.  In general, let's work off of the
trunk until you're satisfied with my build script.


 * SCons is not standardized at all and thus debhelper has no support for
   it... which means that we can't benefit freely from stuff like multiarch
   support which requires us to install the libraries in an
   architecture-specific path.

What environment variables are used to specify architecture-specific
paths?  If CC, CFLAGS, LDFLAGS and the like are all accepted properly,
what else would you need for cross-compiling?


 And also some things which could be improved:
 
 * please rename pyregfi-distutils.py to setup.py so that it can be
   automatically detected by our build tools

Ok, I'll look into this.


 * don't call ldconfig (we do not run build process as root, the install
   step is run under fakeroot and any operation requiring real root rights
   will fail)

Does my uid check not work for you?


 In general, it would be nice if you could use something else than SCons...

 You can also have a look at other sections of the upstream guide that I
 linked to as you might find some useful data that would make our lives
 easier.

I find make to be awful.  I've been using it off and on for years, but
I've decided it is antiquated.  SCons has nice advantages (you know it
is actually portable), though it can certainly use more work.  I find
that guide you linked to is just a tad rigid and closed-minded about
using alternative tools.  Let's just get SCons working like Debian's
build scripts expect.  SCons just runs python scripts afterall, so it
can't be that hard to make it accept whatever inputs you need it to.


Besides what you mentioned above, I see the guide mentions in passing
a variety of other environment variables that should be accepted:

 If you choose to use SCons anyway, please ensure that the usual
environment compiler variables (CC, CFLAGS, ...) and path variables
(DESTDIR, BINDIR, LIBDIR, ...) are honoured. There is a recipe, that
addresses some of these.

It would be *great* of *all* environment variables were listed
somewhere, instead of just a few and a hand wave... =P  Let me know if
you have a more complete reference somewhere.


thank you!
tim


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-05 Thread Tim
 I don't have a good reference either, but I just found this:
 http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN95
 
 At least it gives you the command line to use to define the SONAME
 of the library.
 
 You want your library to have a SONAME of libregfi.so.1 installed in a
 file of the same name (or with more digits: libregfi.so.1.0.0).
 libregfi.so is a development symlink pointing to the current version of
 the library (the one to use when you link with gcc -lregfi).
 
 You can also read the Debian policy about libraries:
 https://www.debian.org/doc/debian-policy/ch-sharedlibs.html

Ok, still on my TODO list.  


 Hum, this was not in the 1.0.1 release. We tend to work with what's
 officially released.
 
 We'll take a look at the trunk...

I agree it is best to stick with releases when you can.  In this case,
right after my last release I had a maintainer from another distro ask
for the DESTDIR support and after adding it they were satisfied with
trunk.  I didn't bother making another release just for that.  Before
I knew it, 4 years had passed and yeah, it's still only in trunk.

Once we get the pieces in place you need for a debian package, I'll
make another release and then you can track releases again.


Another wrinkle:  Google is shutting down Google Code, which is a
bummer.  I need to migrate my SVN mirror to someplace else.  Probably
github, along with the rest of the uncouth masses.  I'll let you know
when I do, so you can start working from that.


 For multiarch support we install libraries in different path, for autoconf
 packages, debhelper automatically feeds appropriate parameters. debhelper
 doesn't support SCons because there's no standard parameters or target to
 use...
 
 Anyway, LIBDIR should be enough for our cases, we then have to setup
 this variable to point to an architecture specific path.
 
 /usr/lib/x86_64-linux-gnu for amd64, /usr/lib/i386-linux-gnu for i386 and
 so on.

Ok, so I think I already have LIBDIR support as well.  Just added
CFLAGS and LDFLAGS to a local version.  It is possible that some of
the flags I have in each of these by default could cause you problems
on other architectures, but I suppose we'll just have to deal with
those as they pop up.


   And also some things which could be improved:
   
   * please rename pyregfi-distutils.py to setup.py so that it can be
 automatically detected by our build tools
  
  Ok, I'll look into this.
 
 That way we can rely on python packaging tools directly, but in that case,
 it would be nice if we could disable the python part done by scons itself
 too...

Ok, that makes sense.  Right now the python library installation is
all lumped in with the install target.  You could build binaries
without interference, but once you tried to install just certain
pieces, the python wrappers will always install, which is probably not
what you want.

Would it make sense to create sub-targets, say install_python,
install_lib, etc so that you can call the appropriate one depending
on which sub-package you're building?  Or would you suggest another
approach?


 No, fakeroot lets you believe that you are root. But a good work-around is
 to not call ldconfig at all when DESTDIR is non-empty.
 
 $ fakeroot python
 Python 2.7.10 (default, May 26 2015, 13:10:44) 
 [GCC 4.9.2] on linux2
 Type help, copyright, credits or license for more information.
  import os
  os.getuid()
 0

I was aware of fakeroot, but I must have assumed a while back that
fakeroot wouldn't be that tricky.  I've added a DESTDIR check as well
as you suggest.


 Possibly this:
 https://www.gnu.org/software/autoconf/manual/autoconf.html#Environment-Variable-Index
 
 There's no standard environment variable for installation directories
 AFAIK. Only DESTDIR is sort of standardized...
 
 BTW, the sample recipe linked from the guide can be found here:
 https://web.archive.org/web/20141126004350/http://www.scons.org/wiki/Installer
 (since the URL is currently down).

Thank you for the links.  I'll look into more of this later to ensure
I haven't missed anything.  As it stands, LIBDIR, BINDIR, MANDIR,
INCLUDEDIR, and PREFIX are all already accepted from the environment.
Am I using them correctly?  Who knows! ;-)

Best,
tim


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-04 Thread Henri Salo
On Wed, Jun 03, 2015 at 07:54:31AM -0700, Tim wrote:
 Yeah, it's sad.  I need some one to *help* me package it and take

I have this same problem currently. I would be very happy to upload other new
versions too in forensics-area and also fix bugs. Mika can probably sponsor our
uploads. Not sure if this is up-to-date:

https://people.debian.org/~mika/forensics/maintainer.html

-- 
Henri Salo


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-03 Thread Raphael Hertzog
Hello,

On Sat, 01 Oct 2011, Tim wrote:
 I released 1.0.1 today.  Since 0.99.0, RegLookup has included Python wrappers
 that are now used by third-party projects, including Registry Decoder and DFF.
 It would help those projects' packaging efforts a lot if a recent version of
 RegLookup were in Debian.  Some of the suggested guidelines for packaging the
 upstream source are here:
   http://projects.sentinelchicken.org/reglookup/dependencies
 
 Please let me know if resources are not available to update the package so I 
 can put it on my TODO list.  

4 years later Debian still has 0.12 :-(

If you can prepare an updated package, I might look at sponsoring it.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2015-06-03 Thread Tim

 4 years later Debian still has 0.12 :-(
 
 If you can prepare an updated package, I might look at sponsoring it.

Yeah, it's sad.  I need some one to *help* me package it and take
ownership of the packaging.  There's very little maintenance at this
point, since there's not really any active feature development and
infrequent releases.  It's just a matter of getting over the major
build changes betwween 0.12 and later versions.

At one point one of the DFF guys said they created debian packages for
it, but in a brief search I haven't been able to find them.

tim


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644019: reglookup: Please package latest upstream (1.0.1)

2011-10-01 Thread Tim
Package: reglookup
Version: 0.12.0-1
Severity: wishlist
Tags: upstream


I released 1.0.1 today.  Since 0.99.0, RegLookup has included Python wrappers
that are now used by third-party projects, including Registry Decoder and DFF.
It would help those projects' packaging efforts a lot if a recent version of
RegLookup were in Debian.  Some of the suggested guidelines for packaging the
upstream source are here:
  http://projects.sentinelchicken.org/reglookup/dependencies

Please let me know if resources are not available to update the package so I 
can put it on my TODO list.  

Thanks much,
tim

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.37 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages reglookup depends on:
ii  libc6 2.13-11Embedded GNU C Library: Shared lib

reglookup recommends no packages.

reglookup suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org