Zaktualizowana odpowiedź:
Od 2019 roku mam nadzieję, że skorzystam z repozytorium AUR Archa (ale nadal na moim systemie Debian ). Zrobiłem to również na FreeBSD, teraz z małą (nieco banalną) łatką. To NIE jest odpowiedź „przejdź do Arch”.
Początkowo było to trochę trudne, ale jego sedno polega na tym, że w rzeczywistości można skompilować makepkg
program Archa i użyć go do skompilowania repozytoriów AUR na Debianie. Zrobiłem to tak (chociaż mogłem zapomnieć o pewnych zależnościach):
Moja stara odpowiedź jest nadal obecna po separatorze w pobliżu dna.
1) Budynek makepkg
:
sudo apt-get install bsdtar # pacman depends on bsdtar (libarchive) these days
git clone git://projects.archlinux.org/pacman.git
cd pacman
./configure --sysconfdir=/etc --localstatedir=/var --prefix=/opt/arch # Put built program outside of the usual '/usr/local' when installed to avoid conflicts
make
sudo make install # Install pacman/makepkg
# Make a directory pacman expects to exist to dodge makepkg errors
sudo mkdir -p /var/cache/pacman/pkg
2) Przygotowanie do kompilacji źródeł GTK3:
Teraz, aby zbudować i zainstalować gtk3-typeahead
. Aby uzyskać wszystkie zależności kompilacji (debian), które są mniej więcej takie same jak Arch, musisz najpierw mieć deb-src
linię w pliku sources.list, aby apt-get build-dep
pomyślnie pobrać niezbędne -dev
pakiety.
Mój sources.list
zawiera następujący wiersz, aby to zrobić. Zmień linię w zależności od wydania i najbliższego serwera.
deb-src http://ftp.us.debian.org/debian/ sid main contrib
3) Budynek gtk3-typeahead
:
Następnie możesz uruchomić następujące polecenie, aby skompilować gtk3-typeahead
:
sudo apt-get update
sudo apt-get build-dep 'gtk+3.0' # install gtk3 build dependencies
mkdir /path/to/put/arch/git/repo/into
cd /path/to/put/arch/git/repo/into
git clone https://aur.archlinux.org/gtk3-typeahead.git gtk3-typeahead
cd gtk3-typeahead
# Tack onto configure script arguments so that libraries overwrite the official
# Debian ones in /usr/lib/x86_64-linux-gnu, instead of installing to /usr/lib.
# CHANGE THIS APPROPRIATELY IF RUNNING 32-BIT (or some other architecture like POWER/MIPS)
sed '/\-\-sysconfdir=/a\
--libdir=/usr/lib/x86_64-linux-gnu \\' PKGBUILD > PKGBUILD2
mv PKGBUILD2 PKGBUILD
# temporarily add archlinux programs to PATH so we can use 'makepkg'
PATH="/opt/arch/bin:""$PATH"
# Don't check pacman dependencies, since our dependency libraries weren't
# installed via pacman like makepkg expects!
makepkg --nodeps
Po wykonaniu tej czynności pliki binarne zostaną spakowane do .tar.gz
archiwum jeden poziom powyżej drzewa git. W moim przykładzie byłby to into
katalog.
Aby zainstalować:
TARBALLPATH="$(readlink -f gtk3-typeahead-*.tar.gz | sort | tail -n 1)" # get full path to tarball of most recent build, if multiple are available
cd /
bsdtar xf "$TARBALLPATH"
Jest to wysoce skryptowalne i nieco mniej skomplikowane niż radzenie sobie z moimi starymi skryptami w mojej skromnej opinii. To także nie zależy już od debiana.
Oryginalna odpowiedź:
Minął rok i nadal mnie to denerwuje, ponieważ ludzie z GTK3 zdecydowali się na stałe zakodować to zachowanie, bez możliwości jego przywrócenia bez ponownej kompilacji.
Jednak typeahead został załatany z powrotem do gtk3 w postaci dystrybuowanej w Ubuntu.
Ubuntu sprawiło również, że wybranie pliku wymaga dwukrotnego kliknięcia, aby wybrać plik, zamiast wymagać tylko jednego kliknięcia, jeśli plik został już wybrany. Jeśli nie masz nic przeciwko łataniu kodu źródłowego gtk3, stworzyłem łatkę, która działa od gtk + 3.22.7, łącząc łatki ubuntu i aktualizując je do bardziej aktualnej wersji GTK.
Dodatkowo stworzyłem skrypt dla mojego systemu Debian, który automatycznie pobiera źródło najnowszej wersji w menedżerze pakietów, łata je i kompiluje. Działa poprawnie na Debian Sid i powinien działać również w przypadku innych dystrybucji Debiana.