Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?  (Przeczytany 1586 razy)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2765
  • 1709
    • Zobacz profil
Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?

Cos takiego
http://murga-linux.com/puppy/viewtopic.php?t=76431

Sit  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=76431

W 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
 
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?
« Odpowiedź #1 dnia: 2017-05-13, 23:54:58 »
Wystarczy poprawić Build tak (wtedy kompiluje się na właściwą platformę automatycznie):
gcc `pkg-config gtk+-x11-2.0 --cflags` -DGTK_NO_CHECK_CASTS -DG_DISABLE_CAST_CHECKS \
sit.c -o sit `pkg-config gtk+-x11-2.0 --libs` && strip --strip-all -R .note -R .comment sit


Ale - choć się kompiluje - to nie działa. W każdym razie u mnie, na Ubuntu Zesty nic się nie dzieje: żadne ikony się nie pojawiają - mimo podania ścieżki do istniejącego pliku ikony. Weź pod uwagę, że ten programik ma już 5 lat i mogło się coś pozmieniać (pomijając ofensywę GTK3)
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2765
  • 1709
    • Zobacz profil
Odp: Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?
« Odpowiedź #2 dnia: 2017-05-14, 08:38:48 »
Dzieki twojej pomocy u mnie działa, Debian 8.8    64bit  ( środowisko Mate 1.8.1 ) ( gcc version 4.9.2 (Debian 4.9.2-10)  )
 jak chcesz to sprawdz jeszcze raz, spakowane pliki w zalaczniku.  ( Jak Ci nie bedzie działać, to trudno )
Dziękuję!  ;D

1. Skompiluj skryptem build aby otrzymac binarke sit,
2. Potem uruchom z terminala skrypt "apka"
i klikajac w ikone w trayu lewym i prawym powinienes otrzymac cos takiego

$ ./apka
Nacisnales rightclick
Nacisnales leftclick
Nacisnales rightclick
Nacisnales leftclick
Nacisnales rightclick
Nacisnales leftclick
Nacisnales rightclick
To jest tylko przyklad i zamiast echo "Nacisnales rightclick" czy  echo "Nacisnales leftclick" mozna sobie tam ( w skrypcie  apka ) ustawić dowolną aplikacje czy skrypt.
Przydało by sie jeszcze tylko przy rightclick menu kontekstowe.

Wczoraj ( przy poszukiwaniach ) jeszcze zauwazylem że jest specjalna  aplikacja alltray ,  do tworzenia ikon tray
ale za pierwszym razem nie działało i ładuje się długo to mi sie nie podoba.

Edytowane:
Z tego poradnika http://zetcode.com/gui/gtk2/menusandtoolbars/
wyczytalem ze zeby zrobic menu kontekstowe wystarczy dodać nowe okno ( w gtk ), próbowałem ale coś robie źle,
za to jeszcze tego musze spróbować http://blog.puppylinux.com/?viewDetailed=00030
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2765
  • 1709
    • Zobacz profil
Odp: Czy za darmo ktos przekonwertuje sit z 32bit na 64bit ?
« Odpowiedź #3 dnia: 2017-05-15, 09:44:42 »
pliki.v3.tar.gz w zalączniku.

- dodałem menu kontekstowe do ikony w tray-u ( stworzone w  gtkdialog )
- okienko które pokaże się po kliknięciu lewym klawiszem myszy ( stworzone w  gtkdialog )

No ale nie działa to idealnie,
- Jezeli klikne prawym myszą i nie trafie lewym klawiszem w okno kontekstowe, to czasami otwiera sie okno jakbym kliknął lewym klawiszem w ikonke w tray-u.
- Menu kontekstowe ( po kliknieciu prawym w ikonke ) czasami pojawia sie w górnym rogu ekranu ( zamiast obok kursora myszy )

PS: Jesli ktoś potrafi takie menu kontekstowe, uniwersalne do skryptów napisać w gtk dla ikony w tray-u i bedzie działać lepiej,
to niech dopisze.
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.