Off-Topic > SCM EXtensions
SCM buildin how-to
vinnie:
The source of your sc.inc-are simply recompressed in the xz format or you've made some changes?
P.s. You apply changes only as patches? (then I should become aware by reading -sc.inc)
Jason W:
I try to recompress using xz to save space on the server.
Patches that are used are patches that other distros use, mainly Arch, and I use them if I feel they are applicable to what the app needs for us. Some patches are for things like fixing man pages, so I don't use those, but others are needed for the app to build, like a fix to use with our version of gcc.
vinnie:
hey jason, I am close but I have several problems; meanwhile, I attaching my script (I used your libvorbis with libogg & sdl_mixer with sdl and libmikmod).
I used two patches with gargoyles, the first removes the dependence smpeg, this is because I can not compile it (you can try looking smpeg-sc.inc)
--- Code: ---Index: Jamrules
===================================================================
--- Jamrules (revision 590)
+++ Jamrules (working copy)
@@ -111,7 +111,7 @@
if $(USESDL) = yes
{
GARGLKCCFLAGS += -I/usr/include/SDL ;
- GARGLKLIBS += -lSDL_mixer -lSDL_sound -lSDL -lsmpeg -lvorbisfile ;
+ GARGLKLIBS += -lSDL_mixer -lSDL_sound -lSDL -lvorbisfile ;
}
if $(STATIC) { LINKLIBS += $(GARGLKLIBS) ; }
--- End code ---
And the second patch serves to replace the prefix (this forces the use of a specified directory: ./buildscm gargoyle-sc.inc /apps/gargoyle):
--- Code: ---Index: Jamfile
===================================================================
--- Jamfile (revision 590)
+++ Jamfile (working copy)
@@ -13,9 +13,9 @@
# If SYSTEM is set, use values for a system wide install
if $(SYSTEM)
{
- BINDIR = /usr/local/libexec/gargoyle ;
- APPDIR = /usr/local/libexec/gargoyle ;
- LIBDIR = /usr/local/lib/gargoyle ;
+ BINDIR = /apps/gargoyle/bin ;
+ APPDIR = /apps/gargoyle/bin ;
+ LIBDIR = /apps/gargoyle/lib ;
DESTDIR = / ;
EXEMODE = 755 ;
FILEMODE = 755 ;
--- End code ---
By compiling in the normal way it's all right (although the dependence smpg.tcz does his job), but when I use the method "scm" with the script (and thinks with relative export), compilation should not be.
Good normal compilation
Bad scm compilation
After a diff I think I've located the problem: gargoyle can not find the library LIBJPEG_6.2 of gtk, for example (just in the end of bad file):
--- Code: ---build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_std_error@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_finish_decompress@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_stdio_src@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_read_scanlines@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_CreateDecompress@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_start_decompress@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_destroy_decompress@LIBJPEG_6.2'
build/linux.release/garglk/libgarglk.so: undefined reference to `jpeg_read_header@LIBJPEG_6.2'
collect2: ld returned 1 exit status
--- End code ---
I assure you that I downloaded gtk2-dev.tar.xz and extracted in /apps/ .
In PKBUILD of aur they using another technique to move gargoyle's file instead of the using patch (and then edit the jamfile):
--- Code: ---jam ||return 1
jam install || return 1
...
install $srcdir/build/dist/* $pkgdir/usr/share/gargoyle/
ln -s /usr/share/gargoyle/gargoyle $pkgdir/usr/bin/gargoyle
install $srcdir/build/dist/libgarglk.so $pkgdir/usr/lib/
--- End code ---
if I did not use the export in gargoyle-sc.inc and then move the files by hand as in PKBUILD, the wrapper would suffice to solve the situation?
Jason W:
Thanks, I will give it a try tonight.
vinnie:
some good news, gargoyle.scm works (almost).
in gargoyle-sc.inc I commented all the lines of export and then build.
After building (gone well) i make wrapping and I used this script to replace gargoyle:
--- Code: ---#!/bin/sh
export LD_LIBRARY_PATH=/apps/gargoyle/lib:/apps/gtk2/lib
export PATH=/apps/gargoyle/localbin:/apps/gtk2/bin:$PATH
/apps/gargoyle/localbin/gargoyle "$@"
--- End code ---
After i try to install (in a core enviorment with only Xvesa, fltk and fluxbox) it work but only after I have installed libiconv and smpeg (I installed smpeg excluding its dep file, to make sure it was using the gtk2.scm library).
I do not know why it asks me smpeg again (I do not remember having commented the string of the patch that disables it), but I would ask you a hand to build this library (I also tried fo find the build-dep in the 3.x repository, but it is not there).
for libiconv I immediately start to work
Thanks to you, this is very instructive for me
P.s. ok libiconv seems to work, smpeg is the only malevolent creation :P
P.p.s i forget, if you try, the dependency ftjam.tcz of gargoyle is in email of tcsubmit!
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version