Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?
Cos takiego
http://murga-linux.com/puppy/viewtopic.php?t=76431Sit sluzy to tworzenia ikonki w tray-u dla gtkdialog, ( jest to GUI dla basha )
poniewaz gtkdialog nie ma kto za bardzo rozwijac, albo rozwija to bardzo wolno,
to taka funkcjonalnosc tam nie istnieje.
Alternatywa to sit albo zainstalowanie gtkdialog + yad
( jesli chodzi o Debiana to wszystko trzeba kompilowac bo nie ma gotowych pakietow )
Source Code:
http://murga-linux.com/puppy/viewtopic.php?t=76431W paczce sa pliki:
sit-1.0.tar.gz├── build
├── sit
└── sit.c
Problem w tym ze gotowa binarka nie dziala na Debianie
$ ./sit 1000
bash: ./sit: Nie ma takiego pliku ani katalogu
a kod zrodlowy i skrypt sa przygotowane dla 32bit ( i zainstalowanie multilib zeby skompilowac to za malo ).
Najlepiej jakby ktos to przerobil tak zeby zostalo te 32bit i po wykryciu procesora 64bit kompilowalo na 64bit
( moze powstac nowy plik sit64.c , mnie to obojetne ).
Pierwsze co mi sie nasunelo to w pliku
build- dodac owe wsparcie 64bit
if $(uname -m | grep '64'); then
echo "ARCH: 64-bit"
else
echo "ARCH: 32-bit"
fi
oraz zamieniajac
-march=i486 -mtune=i686 na -m64
zmieniony plik
build #!/bin/sh
if [ `getconf LONG_BIT` = "64" ]; then
echo "ARCH: 64-bit"
#compile
gcc `pkg-config gtk+-x11-2.0 --cflags` -DGTK_NO_CHECK_CASTS -DG_DISABLE_CAST_CHECKS \
-Os -fmerge-all-constants -mno-accumulate-outgoing-args -m64 \
-Wl,-O2,--gc-sections,--as-needed,--sort-common,-s \
sit.c -o sit -lgtk-x11-2.0 && strip --strip-all -R .note -R .comment sit
else
echo "ARCH: 32-bit"
#compile
gcc `pkg-config gtk+-x11-2.0 --cflags` -DGTK_NO_CHECK_CASTS -DG_DISABLE_CAST_CHECKS \
-Os -fmerge-all-constants -mno-accumulate-outgoing-args -march=i486 -mtune=i686 \
-Wl,-O2,--gc-sections,--as-needed,--sort-common,-s \
sit.c -o sit -lgtk-x11-2.0 && strip --strip-all -R .note -R .comment sit
fi
#run a test
./sit 1000 /usr/share/mini-icons/mini-dog.xpm "sit test" "leftclick" "rightclick" 2>/dev/null | \
while read LINE; do
case "$LINE" in
*)Xdialog --under-mouse --infobox "action=$LINE" 0 0 &
;;
esac
done
no i teraz
$ ./build
ARCH: 64-bit
/usr/bin/ld: /tmp/ccigz2D8.o: undefined reference to symbol 'g_signal_connect_data'
//usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
No i tu trzeba by pogrzebac w kodzie C i gtk, ale ja tego nie znam. ( plik
sit.c lub sparwdzic flagi w pliku build )
Edytowane:
Znalazlem jeszcze taki kod i kompiluje sie, ale po kliknieciu prawym ikona znika.
http://murga-linux.com/puppy/viewtopic.php?p=651853#651853