LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 03-26-2010, 10:28 AM   #76
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723

Code:
PictureImageLoader.c:(.text+0x1595): undefined reference to `png_check_sig'
Appearently libpng14 changed a few other API function names...
 
Old 03-26-2010, 10:33 AM   #77
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
Well, if you encounter another problem I'll still be here just in case
And why did they go about such a massive change to libpng and why haven't the devs fixed it so it'd work?
Rhetorical question I suppose, lol.
(And I'm not supposed to say this but could you thank a few of my posts? I'm working on that Thanked number real hard )
Anyways, I'm glad that worked for you!
Good luck with Metisee!

Last edited by lupusarcanus; 03-26-2010 at 10:37 AM. Reason: .
 
Old 03-26-2010, 11:06 AM   #78
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
I followed that link you posted and there was a link to changes made in libpng 1.4. I think this part could help:

Code:
i. We removed the obsolete png_check_sig(), png_memcpy_check(), and
      png_memset_check() functions.  Instead use !png_sig_cmp(),
      png_memcpy(), and png_memset(), respectively, i.e.,

      replace
        png_check_sig(buf, 8)
      with
        png_sig_cmp(buf, 0, 8) == 0

      replace
        png_memcpy_check(png_ptr, dest, src, length)
      with
        png_memcpy(dest, src, length)

      and replace
        png_memset_check(png_ptr, dest, value, length)
      with
        png_memset(dest, value, length)
 
Old 03-26-2010, 11:26 AM   #79
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
I need to replace this:

Code:
fread(buf, 1, FPNG_BYTES_TO_CHECK, f);
if (!Fpng_check_sig(buf, FPNG_BYTES_TO_CHECK))
{
	fclose(f);
	return False;
}
with this:

Code:
fread(buf, 1, FPNG_BYTES_TO_CHECK, f);
if (!Fpng_sig_cmp(buf, 0, FPNG_BYTES_TO_CHECK))
{
	fclose(f);
	return False;
}
in the file PictureImageLoader.c.

How should I do that from the PKGBUILD?
 
Old 03-26-2010, 11:30 AM   #80
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
Quote:
Originally Posted by MTK358 View Post
I need to replace this:

Code:
fread(buf, 1, FPNG_BYTES_TO_CHECK, f);
if (!Fpng_check_sig(buf, FPNG_BYTES_TO_CHECK))
{
	fclose(f);
	return False;
}
with this:

Code:
fread(buf, 1, FPNG_BYTES_TO_CHECK, f);
if (!Fpng_sig_cmp(buf, 0, FPNG_BYTES_TO_CHECK))
{
	fclose(f);
	return False;
}
in the file PictureImageLoader.c.

How should I do that from the PKGBUILD?
From the PKGBUILD? Couldn't you just stick it in before it starts building it?

Or you could make a patch file and properly patch within the PKGBUILD.
 
Old 03-26-2010, 11:31 AM   #81
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Quote:
Originally Posted by leopard View Post
From the PKGBUILD? Couldn't you just stick it in before it starts building it?
No. One command downloads and biulds the files (in other words, I don't have direct access to the source).
 
Old 03-26-2010, 11:35 AM   #82
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
What about make a patch for it and stick it with the other patch?
The PKGBUILD;
Quote:
Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Contributor: Alexander Mieland <dma147@linux-stats.org>
pkgname=metisse
pkgver=0.4.1
pkgrel=3
pkgdesc="X-based window system alternate to looking glass or other 3D"
arch=('i686' 'x86_64')
license=('GPL')
url="http://insitu.lri.fr/metisse/"
depends=('nucleo' 'x-server' 'libglade' 'gconf' 'mesa')
optdepends=('avahi')
options=(!libtool)
source=(http://insitu.lri.fr/metisse/download/$pkgname/$pkgname-$pkgver.tar.bz2 \
metisse.desktop startmetisse gcc-4.4_fix.diff)
md5sums=('6bc947ea60612f6dbf0475a25327814b'
'a6be7ea3d95133b76a2aaec8f94ccf69'
'c75e0b205739f000574c485e7012db2e'
'174182ffcdd5b8628a42ddd0527399b7')

build() {
cd "$srcdir"/$pkgname-$pkgver

patch -Np1 < "$srcdir"/gcc-4.4_fix.diff
YOUR PATCH HERE?

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libexecdir=/usr/lib/ --enable-mmx --enable-glx-x86 --with-x
make || return 1
make DESTDIR="$pkgdir" install

# install startup scripts
install -D -m755 "$srcdir"/startmetisse "$pkgdir"/usr/bin/startmetisse
install -D -m644 "$srcdir"/metisse.desktop "$pkgdir"/etc/X11/sessions/metisse.desktop
}
 
Old 03-26-2010, 11:37 AM   #83
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
I added a line in the PKGBUILD that sticks this line:
Code:
#define png_check_sig(a, b) png_sig_cmp(a, 0, b)
into every .c file.

Basically all these #defines that I am inserting cause the C Preprocessor to transtate the deprecated (and removed in version 1.4) libpng commands to the new equivalents.

It went much, much farther this time, but got stuck on something else, appearently unrelated to libpng:

Code:
gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../xserver/include/config -I../../../xserver/include -I../../../xserver/GL/glx -I../../../xserver/GL/include -I../../../xserver/GL/mesa/include -I../../../xserver/GL/mesa/X -I../../../xserver/GL/mesa -I../../../mi -I../../../Xext -I../../../render -I../../../xserver/GL/mesa/ -I../../../xserver/GL/mesa/main -I../../../xserver/GL/mesa/glapi -I../../../xserver/GL/mesa/drivers/x11 -I../../../xserver/include -I../../../xlibs/Xfont/include/X11/fonts/ -I../../../xlibs/Xau -I../../../xserver/include/X11/Xtrans     -UHAVE_CONFIG_H -DXFree86Server -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -I../../../xserver/include -I../../../xserver/GL/glx -I../../../xserver/GL/include -I../../../xserver/GL/mesa/include -I../../../xserver/GL/mesa/X -I../../../xserver/GL/mesa -I../../../mi -I../../../Xext -I../../../render -I../../../xserver/GL/mesa/ -I../../../xserver/GL/mesa/main -I../../../xserver/GL/mesa/glapi -I../../../xserver/GL/mesa/drivers/x11 -I../../../xserver/include -I../../../xlibs/Xfont/include/X11/fonts/ -I../../../xlibs/Xau -I../../../xserver/include/X11/Xtrans   -march=x86-64 -mtune=generic -O2 -pipe -MT 3dnow_normal.o -MD -MP -MF .deps/3dnow_normal.Tpo -c -o 3dnow_normal.o `test -f 'X86/3dnow_normal.S' || echo './'`X86/3dnow_normal.S
X86/3dnow_normal.S: Assembler messages:
X86/3dnow_normal.S:46: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:47: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:48: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:66: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:67: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:68: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:133: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:134: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:135: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:210: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:211: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:212: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:224: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:225: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:226: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:346: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:347: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:348: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:363: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:364: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:365: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:418: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:419: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:420: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:434: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:435: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:514: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:515: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:531: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:532: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:579: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:580: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:597: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:598: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:665: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:666: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:681: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:682: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:683: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:775: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:776: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:777: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:791: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:792: Error: suffix or operands invalid for `push'
X86/3dnow_normal.S:834: Error: suffix or operands invalid for `pop'
X86/3dnow_normal.S:835: Error: suffix or operands invalid for `pop'
make[4]: *** [3dnow_normal.o] Error 1
make[4]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/xserver/GL/mesa'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/xserver/GL'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/xserver'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1'
make: *** [all] Error 2
==> ERROR: Build Failed.
    Aborting...

Last edited by MTK358; 03-26-2010 at 11:40 AM.
 
Old 03-26-2010, 11:41 AM   #84
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
To me that looks like a 64-bit deal.
http://www.google.com/search?q=Error...ient=firefox-a

You've still got a VM right?
Perhaps compile it on there and transfer the binary to your real install?

Just an idea.

Try this gcc option first though (from GNU mail archive);
Quote:
-m32
Might work.
 
Old 03-26-2010, 11:45 AM   #85
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
Quote:
Originally Posted by leopard View Post
You've still got a VM right?
Perhaps compile it on there and transfer the binary to your real install?
What will the VM change? It's 64-bit , too. (but I do have another 32-bit Arch VM I made for other reasons, I don't mind using it for compiling Metisse if it would help.)

Quote:
Originally Posted by leopard View Post
Try this gcc option first though (from GNU mail archive);
How do I do that via the PKGBUILD? And what does that option even do? Will I need loads of lib32 dependencies? Will Núcleo (which is compiled as 64-bit) still work?
 
Old 03-26-2010, 11:49 AM   #86
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
Quote:
Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Contributor: Alexander Mieland <dma147@linux-stats.org>
pkgname=metisse
pkgver=0.4.1
pkgrel=3
pkgdesc="X-based window system alternate to looking glass or other 3D"
arch=('i686' 'x86_64')
license=('GPL')
url="http://insitu.lri.fr/metisse/"
depends=('nucleo' 'x-server' 'libglade' 'gconf' 'mesa')
optdepends=('avahi')
options=(!libtool)
source=(http://insitu.lri.fr/metisse/download/$pkgname/$pkgname-$pkgver.tar.bz2 \
metisse.desktop startmetisse gcc-4.4_fix.diff)
md5sums=('6bc947ea60612f6dbf0475a25327814b'
'a6be7ea3d95133b76a2aaec8f94ccf69'
'c75e0b205739f000574c485e7012db2e'
'174182ffcdd5b8628a42ddd0527399b7')

build() {
cd "$srcdir"/$pkgname-$pkgver

patch -Np1 < "$srcdir"/gcc-4.4_fix.diff
YOUR PATCH HERE?

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libexecdir=/usr/lib/ --enable-mmx --enable-glx-x86 --with-x
make CC='gcc32' || return 1
make CC='gcc32' DESTDIR="$pkgdir" install

# install startup scripts
install -D -m755 "$srcdir"/startmetisse "$pkgdir"/usr/bin/startmetisse
install -D -m644 "$srcdir"/metisse.desktop "$pkgdir"/etc/X11/sessions/metisse.desktop
}
Notice the CC=gcc32 options alongside make near the bottom.
These, at least from what I've found, will compile it as 32-bit.

For the VM, you could take what you have there, and run 'make' on that machine then transfer the files back over and make install. It's a shot in the dark.

Good luck!
 
Old 03-26-2010, 11:53 AM   #87
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
In case you haven't noticed I am using 64-bit Arch on a 64-bit CPU.

Using this:

Code:
build() {
  cd "$srcdir"/$pkgname-$pkgver

  patch -Np1 < "$srcdir"/gcc-4.4_fix.diff
  
  find -name '*.cxx' -exec sed --in-place '1 s:^.*$:#define png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8\n&:' '{}' ';'
  find -name '*.H' -exec sed --in-place '1 s:^.*$:#define png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8\n&:' '{}' ';'
  find -name '*.c' -exec sed --in-place '1 s:^.*$:#define png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8\n&:' '{}' ';'
  find -name '*.h' -exec sed --in-place '1 s:^.*$:#define png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8\n&:' '{}' ';'
  
  find -name '*.c' -exec sed --in-place '1 s:^.*$:#define png_check_sig(a, b) png_sig_cmp(a, 0, b)\n&:' '{}' ';'

  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
   --libexecdir=/usr/lib/ --enable-mmx --enable-glx-x86 --with-x
  make CC='gcc -m32' || return 1
  make CC='gcc -m32' DESTDIR="$pkgdir" install

  # install startup scripts
  install -D -m755 "$srcdir"/startmetisse "$pkgdir"/usr/bin/startmetisse
  install -D -m644 "$srcdir"/metisse.desktop "$pkgdir"/etc/X11/sessions/metisse.desktop
}
Code:
make[2]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu'
make[2]: Entering directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu'
make  all-recursive
make[3]: Entering directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu'
Making all in libs
make[4]: Entering directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu/libs'
Making all in .
make[5]: Entering directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu/libs'
gcc -m32 -DHAVE_CONFIG_H -I. -I.. -I..  -I/usr/include -I/usr/include/freetype2        -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -Wall -Wno-implicit-int -march=x86-64 -mtune=generic -O2 -pipe -MT gravity.o -MD -MP -MF .deps/gravity.Tpo -c -o gravity.o gravity.c
In file included from /usr/include/features.h:371,
                 from /usr/include/alloca.h:22,
                 from ../config.h:553,
                 from gravity.c:21:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[5]: *** [gravity.o] Error 1
make[5]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu/libs'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu/libs'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1/fvwm-insitu'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/michael/aur/metisse/src/metisse-0.4.1'
make: *** [all] Error 2
==> ERROR: Build Failed.
    Aborting...
 
Old 03-26-2010, 12:00 PM   #88
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
Quote:
Originally Posted by MTK358 View Post
In case you haven't noticed I am using 64-bit Arch on a 64-bit CPU.
That was the point of that command. From the initial errors in the first post it looked like the compiler couldn't compile it because it was compiling 32-bit software using a 64-bit compiler.

The idea behind that command was to tell GCC to use a 32-bit compiler to compile the 32-bit software.

Anyway, that was the idea.

I realize you have a Core i7 920 processor and are using x86-64 Arch because I've looked at your profile...

Anyways I don't know what to say.

I'll continue looking for a solution.

Hopefully that cleared that up a bit, sorry.
 
Old 03-26-2010, 12:03 PM   #89
lupusarcanus
Senior Member
 
Registered: Mar 2009
Location: USA
Distribution: Arch
Posts: 1,022
Blog Entries: 19

Rep: Reputation: 146Reputation: 146
Maybe you could try;
CC='gcc64'
Although I don't see how it would work. I'd guess you'd get the same error as before;
Quote:
X86/3dnow_normal.S:365: Error: suffix or operands invalid for `push'
Worth a shot though!
Good luck!
 
Old 03-26-2010, 12:09 PM   #90
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443

Original Poster
Blog Entries: 3

Rep: Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723Reputation: 723
CC='gcc32' or 64 doesn't work because it complains about the command gcc32 and gcc64 not existing. CC='gcc -m<bits>' works, though.

I tried using CC='gcc -m64', push/pop errors again.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[Compile kernel] How to compile/install the modules ? frenchn00b Linux - General 1 09-06-2009 03:18 PM
CLFS 5.9 - Glibc compile: suffix of object files, cannot compile Noddegamra Linux From Scratch 3 04-27-2009 12:49 AM
How to get a self-compiled Metisse run automatically in runlevel 5? Vitalie Ciubotaru Linux - Desktop 4 05-22-2007 03:49 PM
Metisse compile Da_Panther Linux - Software 3 02-03-2007 01:56 PM
Nucleo not compiling in Ubuntu 6.06 Da_Panther Linux - Software 2 12-27-2006 07:09 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 12:54 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration