Adaugă suport aarch64 - fix pentru config.guess și install.sh cu --build flag
This commit is contained in:
parent
e06b27f138
commit
9c906a9da2
|
|
@ -0,0 +1,129 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script pentru fixare config.guess & config.sub pentru aarch64
|
||||||
|
# Limba: Română
|
||||||
|
#
|
||||||
|
|
||||||
|
# Culori
|
||||||
|
VERDE='\033[0;32m'
|
||||||
|
GALBEN='\033[1;33m'
|
||||||
|
ALBASTRU='\033[0;34m'
|
||||||
|
ROSU='\033[0;31m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
log_info() {
|
||||||
|
echo -e "${ALBASTRU}[INFO]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_success() {
|
||||||
|
echo -e "${VERDE}[SUCCES]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_error() {
|
||||||
|
echo -e "${ROSU}[EROARE]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_warn() {
|
||||||
|
echo -e "${GALBEN}[AVERTIZARE]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -e "${ALBASTRU}"
|
||||||
|
echo "═══════════════════════════════════════"
|
||||||
|
echo " Fix config.guess pentru aarch64"
|
||||||
|
echo "═══════════════════════════════════════"
|
||||||
|
echo -e "${NC}"
|
||||||
|
|
||||||
|
# Detectează platformă
|
||||||
|
MACHINE=$(uname -m)
|
||||||
|
SYSTEM=$(uname -s)
|
||||||
|
|
||||||
|
log_info "Sistem detectat: $SYSTEM $MACHINE"
|
||||||
|
|
||||||
|
# Verifică dacă config.guess există
|
||||||
|
if [ ! -f "config.guess" ]; then
|
||||||
|
log_error "config.guess nu găsit în directorul curent!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backup original
|
||||||
|
cp config.guess config.guess.bak
|
||||||
|
cp config.sub config.sub.bak
|
||||||
|
log_success "Backup creat: config.guess.bak, config.sub.bak"
|
||||||
|
|
||||||
|
# Fixare pentru aarch64
|
||||||
|
if [ "$MACHINE" = "aarch64" ] || [ "$MACHINE" = "arm64" ]; then
|
||||||
|
log_info "Detectat aarch64/arm64, aplicare fix..."
|
||||||
|
|
||||||
|
# Metoda 1: Patch direct în config.guess pentru case aarch64
|
||||||
|
if grep -q "case \"\$machine\" in" config.guess; then
|
||||||
|
# Găsește linia și adaugă case pentru aarch64
|
||||||
|
line_num=$(grep -n 'case "$machine" in' config.guess | head -1 | cut -d: -f1)
|
||||||
|
if [ -n "$line_num" ]; then
|
||||||
|
# Creează temp file cu patch
|
||||||
|
head -n "$line_num" config.guess > config.guess.tmp
|
||||||
|
|
||||||
|
# Adaugă case pentru aarch64
|
||||||
|
cat >> config.guess.tmp << 'EOF'
|
||||||
|
aarch64*|arm64*)
|
||||||
|
echo aarch64-unknown-linux-gnu
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Adaugă restul fișierului
|
||||||
|
tail -n +$((line_num + 1)) config.guess >> config.guess.tmp
|
||||||
|
|
||||||
|
mv config.guess.tmp config.guess
|
||||||
|
chmod +x config.guess
|
||||||
|
log_success "config.guess patched pentru aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Verifică config.sub pentru aarch64
|
||||||
|
if [ "$MACHINE" = "aarch64" ] || [ "$MACHINE" = "arm64" ]; then
|
||||||
|
log_info "Verificare config.sub..."
|
||||||
|
|
||||||
|
if ! grep -q "aarch64" config.sub; then
|
||||||
|
log_warn "config.sub nu are suport aarch64, aplicare patch..."
|
||||||
|
|
||||||
|
# Adaugă suport aarch64 în config.sub
|
||||||
|
if grep -q "case \$cpu in" config.sub; then
|
||||||
|
# Găsește linia și adaugă case pentru aarch64
|
||||||
|
sed -i '/case $cpu in/a\
|
||||||
|
\t\taarch64 | arm64)\
|
||||||
|
\t\t\tcpu=aarch64\
|
||||||
|
\t\t\t;;' config.sub
|
||||||
|
|
||||||
|
log_success "config.sub patched pentru aarch64"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log_success "config.sub are deja suport aarch64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test
|
||||||
|
log_info "Test config.guess..."
|
||||||
|
RESULT=$(./config.guess 2>&1)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
log_success "config.guess funcționează!"
|
||||||
|
echo -e "${VERDE}Output: $RESULT${NC}"
|
||||||
|
else
|
||||||
|
log_error "config.guess tot nu merge!"
|
||||||
|
echo -e "${ROSU}Output: $RESULT${NC}"
|
||||||
|
log_warn "Revert la backup..."
|
||||||
|
cp config.guess.bak config.guess
|
||||||
|
cp config.sub.bak config.sub
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f config.guess.bak config.sub.bak
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${VERDE}═══════════════════════════════════════${NC}"
|
||||||
|
echo -e "${VERDE}Fix aplicat cu succes!${NC}"
|
||||||
|
echo -e "${VERDE}═══════════════════════════════════════${NC}"
|
||||||
|
echo ""
|
||||||
|
echo "Acum poți rula: ./configure"
|
||||||
|
|
||||||
33
install.sh
33
install.sh
|
|
@ -104,10 +104,37 @@ check_dependencies() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Funcția pentru fixare config.guess pentru aarch64
|
||||||
|
fix_config_guess() {
|
||||||
|
log_info "Verificare support aarch64 în config.guess..."
|
||||||
|
|
||||||
|
# Verifică dacă config.guess e vechi și nu suportă aarch64
|
||||||
|
if [ -f "./config.guess" ] && ! grep -q "aarch64" ./config.guess; then
|
||||||
|
log_warn "config.guess e vechi, adaugă suport aarch64..."
|
||||||
|
|
||||||
|
# Patch pentru aarch64
|
||||||
|
if grep -q "case \"\$machine\" in" ./config.guess; then
|
||||||
|
# Adaugă case pentru aarch64 înainte de default
|
||||||
|
sed -i '/case "$machine" in/a\
|
||||||
|
\t\taarch64*|arm64*)\
|
||||||
|
\t\t\techo aarch64-unknown-linux-gnu\
|
||||||
|
\t\t\texit 0\
|
||||||
|
\t\t\t;;' ./config.guess
|
||||||
|
log_success "Support aarch64 adăugat la config.guess"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dacă config.guess tot nu merge, folosește --build flag
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# Funcția de configurare
|
# Funcția de configurare
|
||||||
configure_ircd() {
|
configure_ircd() {
|
||||||
log_info "Configurare Nefarious IRCd..."
|
log_info "Configurare Nefarious IRCd..."
|
||||||
|
|
||||||
|
# Fixează config.guess pentru aarch64
|
||||||
|
fix_config_guess
|
||||||
|
|
||||||
local config_args="--prefix=$PREFIX"
|
local config_args="--prefix=$PREFIX"
|
||||||
config_args="$config_args --with-maxcon=$MAXCON"
|
config_args="$config_args --with-maxcon=$MAXCON"
|
||||||
|
|
||||||
|
|
@ -119,6 +146,12 @@ configure_ircd() {
|
||||||
config_args="$config_args --disable-ssl"
|
config_args="$config_args --disable-ssl"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Adaugă --build flag pentru sisteme care nu pot detecta
|
||||||
|
if [ "$(uname -m)" = "aarch64" ]; then
|
||||||
|
config_args="$config_args --build=aarch64-unknown-linux-gnu"
|
||||||
|
log_info "Detectat aarch64, adaugă --build=aarch64-unknown-linux-gnu"
|
||||||
|
fi
|
||||||
|
|
||||||
log_info "Parametri configure: $config_args"
|
log_info "Parametri configure: $config_args"
|
||||||
|
|
||||||
if [ ! -f "./configure" ]; then
|
if [ ! -f "./configure" ]; then
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue