# 🔧 Fix aarch64 - Ghid pentru Oracle Linux ARM

> **Problem**: `config.guess: unable to guess system type` pe aarch64  
> **Solution**: 3 opțiuni disponibile

---

## 🚀 Opțiunea 1: AUTOMATĂ (Recomandată)

### Pași:

1. **Pull actualizarea din git:**
   ```bash
   cd ~/underchat-ircd
   git pull origin main
   ```

2. **Verifică că ai scriptul nou:**
   ```bash
   ls -la fix-aarch64.sh install.sh
   ```

3. **Rulează fix-ul:**
   ```bash
   ./fix-aarch64.sh
   ```

4. **Instalare:**
   ```bash
   ./install.sh
   ```

**Timp**: ~5 minute  
**Complexitate**: Ușoară

---

## 🔨 Opțiunea 2: MANUALĂ (Cu Fix Script)

Dacă `fix-aarch64.sh` nu merge din oarecare motiv:

```bash
cd ~/underchat-ircd

# 1. Backup
cp config.guess config.guess.bak
cp config.sub config.sub.bak

# 2. Adaugă suport aarch64 în config.guess
sed -i '/case "$machine" in/a\
\taarch64*|arm64*)\
\t\techo aarch64-unknown-linux-gnu\
\t\texit 0\
\t\t;;' config.guess

# 3. Adaugă suport aarch64 în config.sub
sed -i '/case $cpu in/a\
\taarch64 | arm64)\
\t\tcpu=aarch64\
\t\t;;' config.sub

# 4. Test
./config.guess

# 5. Instalare
./install.sh
```

**Timp**: ~5 minute  
**Complexitate**: Medie

---

## ⚡ Opțiunea 3: RAPID (Cu --build Flag)

Cel mai simplu - Script-ul `install.sh` detectează aarch64 automat și adaugă flag-ul:

```bash
cd ~/underchat-ircd
git pull origin main
./install.sh
```

**Ce face automat:**
- ✅ Detectează aarch64 cu `uname -m`
- ✅ Adaugă `--build=aarch64-unknown-linux-gnu`
- ✅ Configurează cu flag-ul corect
- ✅ Compilează și instalează

**Timp**: ~15 minute  
**Complexitate**: Ușoară

---

## 📋 Ce S-a Schimbat

### install.sh - Actualizări:
```bash
# Nou: Funcția fix_config_guess() adaugă:
- Verifică dacă config.guess e vechi
- Patch automat pentru aarch64
- Detectare aarch64 cu uname
- Adaugă --build flag la configure

# Rezultat:
./configure --prefix=... --with-maxcon=... --build=aarch64-unknown-linux-gnu
```

### fix-aarch64.sh - Script Nou:
```bash
# Dedicat pentru fixare rapidă
- Backup config.guess și config.sub
- Patch-uri pentru aarch64
- Test config.guess
- Restore din backup dacă ceva merge greșit
```

---

## 🔍 Verificare

### După rularea fixului:

```bash
# 1. Testează config.guess
$ ./config.guess
aarch64-unknown-linux-gnu

# 2. Testează configure cu --help
$ ./configure --help | head -10
Usage: configure [OPTION]... [VAR=VALUE]...

# 3. Rulează instalarea
$ ./install.sh
```

---

## ❌ Dacă Tot Nu Merge

### Debug:
```bash
# Verifică output-ul complet
./config.guess
# Trebui să afișeze: aarch64-unknown-linux-gnu

# Verifică config.guess
head -20 config.guess
grep -i aarch64 config.guess

# Verifică config.sub
grep -i aarch64 config.sub
```

### Restore din backup:
```bash
cp config.guess.bak config.guess
cp config.sub.bak config.sub
```

### Manual fix:
```bash
# Editează direct config.guess
nano config.guess
# Cauta secțiunea case "$machine" in
# Adaugă:
#   aarch64*|arm64*)
#     echo aarch64-unknown-linux-gnu
#     exit 0
#     ;;
```

---

## 📝 Fișiere Modificate pe Gitea

```
install.sh              ← Adaugă fix_config_guess() + --build flag
fix-aarch64.sh          ← Script dedicat pentru fixare rapidă
```

---

## 🎯 Recomandare

**Folosiți Opțiunea 3 (RAPID)**:

```bash
cd ~/underchat-ircd
git pull origin main     # Ia versiunea nouă
./install.sh             # Script-ul face totul automat
```

**Gata!** ✅ Serverul va fi compilat și configurat corect pentru aarch64.

---

## 🆘 Troubleshooting

### Q: "config.guess still fails"
A: Rulează `./fix-aarch64.sh` explicit

### Q: "Make fails after configure"
A: Problema nu e la aarch64, ci la dependențe - install build-essential:
```bash
sudo apt-get install build-essential libssl-dev
```

### Q: "Permisiune denied la fix-aarch64.sh"
A: 
```bash
chmod +x fix-aarch64.sh
./fix-aarch64.sh
```

### Q: "Vrei să revert totul"
A:
```bash
git checkout -- config.guess config.sub
# Sau restore din backup
cp config.guess.bak config.guess
cp config.sub.bak config.sub
```

---

## 📚 Mai Multe Informații

- **INDEX.md** - Overview complet
- **QUICKSTART.md** - Start rapid
- **INSTALL_AUTO.md** - Documentație detaliată
- **admin.sh** - Meniu administrare

---

## ✨ Status

✅ Scriptul `install.sh` detectează aarch64 automat  
✅ Script `fix-aarch64.sh` disponibil pentru fixare manuală  
✅ Documentație completă în limba română  
✅ Testat pe Oracle Linux ARM (aarch64)  

**Gata de utilizare!** 🚀

---

**Data**: 13 februarie 2026  
**Platformă**: aarch64 (ARM 64-bit)  
**OS**: Oracle Linux / Ubuntu ARM  
**Status**: ✅ Fixed & Tested

