Merge branch 'seventeen' of ssh://git.ipfire.org/pub/git/ipfire-2.x into seventeen

This commit is contained in:
Arne Fitzenreiter
2014-11-02 09:38:23 +01:00
27 changed files with 3251 additions and 220 deletions

View File

@@ -80,6 +80,7 @@ var/ipfire/langs
#var/ipfire/langs/en.pl
#var/ipfire/langs/es.pl
#var/ipfire/langs/fr.pl
#var/ipfire/langs/it.pl
#var/ipfire/langs/list
#var/ipfire/langs/nl.pl
#var/ipfire/langs/pl.pl

View File

@@ -1,4 +1,5 @@
#usr/bin/downloadsource.sh
#usr/bin/execute-postinstall.sh
#usr/bin/start-networking.sh
#usr/bin/installer
#usr/lib/dracut/modules.d/99installer

View File

@@ -0,0 +1,2 @@
usr/bin/tmux
#usr/share/man/man1/tmux.1

View File

@@ -663,12 +663,6 @@ WARNING: translation string unused: year-graph
WARNING: translation string unused: yearly firewallhits
WARNING: untranslated string: Scan for Songs
WARNING: untranslated string: bytes
WARNING: untranslated string: fwdfw err concon
WARNING: untranslated string: fwdfw err ratecon
WARNING: untranslated string: fwdfw limitconcon
WARNING: untranslated string: fwdfw maxconcon
WARNING: untranslated string: fwdfw numcon
WARNING: untranslated string: fwdfw ratelimit
WARNING: untranslated string: fwhost err hostip
WARNING: untranslated string: route config changed
WARNING: untranslated string: routing config added

2680
langs/it/cgi-bin/it.pl Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -6,3 +6,4 @@ pl:Polski:Polish
ru:Русский:Russian
nl:Nederlands:Dutch
tr:Türkçe:Turkish
it:Italiano:Italian

View File

@@ -99,9 +99,9 @@
'addons' => 'Eklentiler',
'admin user password has been changed' => 'Yönetici kullanıcı şifresi değiştirildi.',
'admin users' => 'Yetkili kullanıcı hakları ile kullanıcı',
'administrator password' => 'Admin parolası',
'administrator password' => 'Yönetici parolası',
'administrator user password' => 'Admin kullanıcı parolası:',
'administrator username' => 'Admin kullanıcısı',
'administrator username' => 'Yönetici kullanıcı adı',
'adsl settings' => 'ADSL ayarları',
'advanced' => 'Gelişmiş',
'advanced server' => 'Gelişmiş Sunucu Seçenekleri',
@@ -114,7 +114,7 @@
'advproxy AUTH method ldap' => 'LDAP',
'advproxy AUTH method ncsa' => 'Yerel',
'advproxy AUTH method none' => 'Yok',
'advproxy AUTH method ntlm' => 'Windows',
'advproxy AUTH method ntlm' => 'Windows NT4 Alan Adı',
'advproxy AUTH method ntlm auth' => 'Windows Aktif Dizini',
'advproxy AUTH method radius' => 'RADIUS',
'advproxy AUTH no auth' => 'Kimlik doğrulaması olmayan hedefler (her satırda bir tane)',
@@ -196,7 +196,7 @@
'advproxy back to main page' => 'Ana Sayfaya Geri Dön',
'advproxy banned ip clients' => 'Yasaklanan IP adresleri (her satırda bir tane)',
'advproxy banned mac clients' => 'Yasaklanan MAC adresleri (her satırda bir tane)',
'advproxy basic authentication' => 'Temel HTTP kimlik doğrulama izni',
'advproxy basic authentication' => 'Temel HTTP kimlik doğrulamasına izin ver',
'advproxy cache management' => 'Önbellek yönetimi',
'advproxy cache replacement policy' => 'Önbellek değiştirme kuralı',
'advproxy cache-digest' => 'Önbellek-özeti üretimini aktifleştir',
@@ -692,12 +692,12 @@
'details' => 'Detaylar',
'device' => 'Aygıt',
'devices on blue' => 'Mavi üzerindeki aygıtlar',
'dh' => 'Anahtar değişim parametreleri',
'dh key move failed' => 'Anahtar değişim parametreleri taşınması başarısız.',
'dh key warn' => '1024 veya 2048 bit uzunluğunda anahtar değişim paremetrelerini oluşturma birkaç dakika sürer. 3072 veya 4096 bit uzunluğundaki anahtar oluşturma ise birkaç saat sürebilir. Lütfen sabırlı olun.',
'dh key warn1' => 'Küçük entropi veya zayıf sistemler için yükleme fonksiyonu kullanımı ile uzun anahtar değişim parametreleri yüklemesi tavsiye edilir.',
'dh name is invalid' => 'Geçersiz ad. Lütfen "dh1024.pem" biçiminde ad kullanın.',
'dh parameter' => 'Anahtar değişim parametreleri',
'dh' => 'Diffie-Hellman parametreleri',
'dh key move failed' => 'Diffie-Hellman parametreleri taşınamadı.',
'dh key warn' => '1024 veya 2048 bit uzunluğundaki Diffie-Hellman parametrelerini oluşturma birkaç dakika sürebilir. 3072 veya 4096 bit uzunluğundaki parametreleri oluşturmak ise birkaç saate ihtiyaç olabilir. Lütfen sabırlı olun.',
'dh key warn1' => 'Zayıf veya entropileri küçük olan sistemler için bu yükleme fonksiyonun kullanımı ile uzun Diffie-Hellman parametrelerini yükleme tavsiye edilir.',
'dh name is invalid' => 'Geçersiz ad, lütfen "dh1024.pem" şeklinde kullanın.',
'dh parameter' => 'Diffie-Hellman parametreleri',
'dhcp advopt add' => 'DHCP seçeneği ekle',
'dhcp advopt added' => 'DHCP seçeneği eklendi',
'dhcp advopt blank value' => 'DHCP seçeneği değeri boş olamaz.',
@@ -782,10 +782,10 @@
'dnsforward entries' => 'Güncel kayıtlar:',
'dnsforward forward_server' => 'Ad sunucusu',
'dnsforward zone' => 'Bölge',
'dnssec aware' => 'DNSSEC Duyarlılığı',
'dnssec aware' => 'DNSSEC Farkındalığı',
'dnssec information' => 'DNSSEC Bilgisi',
'dnssec not supported' => 'DNSSEC desteklenmiyor',
'dnssec validating' => 'DNSSEC Doğrulama',
'dnssec validating' => 'DNSSEC doğrulanıyor',
'do not log this port list' => 'Otorumdan hemen önce bu bağlantı noktaları listesini bırak (günlük boyutunu küçültür)',
'dod' => 'Çevirmeli bağlantı üzerinden talep et',
'dod for dns' => 'DNS için çevirmeli bağlantı üzerinden talep et:',
@@ -808,7 +808,7 @@
'download' => 'İndir',
'download ca certificate' => 'CA sertifikası indir',
'download certificate' => 'Sertifika indir',
'download dh parameter' => 'Anahtar değişimi parametrelerini indir',
'download dh parameter' => 'Diffie-Hellman parametrelerini indir',
'download host certificate' => 'Ana bilgisayar belgesi indir',
'download new ruleset' => 'Yeni Kural Kümesi İndir',
'download pkcs12 file' => 'PKCS12 dosyasını indir',
@@ -951,7 +951,7 @@
'firewall log' => 'Güvenlik duvarı günlüğü',
'firewall log viewer' => 'Güvenlik Duvarı Günlük Görüntüleyicisi',
'firewall logs' => 'Güvenlik Duvarı Günlükleri',
'firewall logs country' => 'Fw günlük grafikleri (Ülke)',
'firewall logs country' => 'Fw-Günlük Grafikleri (Ülke)',
'firewall logs ip' => 'Gd-Günlük Grafikleri (IP)',
'firewall logs port' => 'Gd-Günlük Grafikleri (Port)',
'firewall rules' => 'Güvenlik Duvarı Kuralları',
@@ -1009,12 +1009,14 @@
'fwdfw dnat porterr' => 'NAT için tek bir bağlantı noktası veya bağlantı noktası aralığı (tcp/udp) seçmek zorundasınız.',
'fwdfw dnat porterr2' => 'Hiçbir hedef bağlantı noktası tanımlamdan harici bir bağlantı noktası (NAT) kullanamazsınız.',
'fwdfw edit' => 'Düzenle',
'fwdfw err concon' => 'Eş zamanlı bağlantı için geçersiz sayı',
'fwdfw err nosrc' => 'Bir kaynak seçilmedi.',
'fwdfw err nosrcip' => 'Lütfen bir kaynak IP adresi belirtin.',
'fwdfw err notgt' => 'Bir hedef seçilmedi.',
'fwdfw err notgtip' => 'Lütfen bir hedef IP adresi belirtin.',
'fwdfw err prot_port' => 'Seçilen kuuralla kaynak veya hedef bağlantı noktasına izin verilmez',
'fwdfw err prot_port1' => 'TCP veya UDP kuralı için kaynak veya hedef bağlantı noktası kullanırken seçmek zorunda',
'fwdfw err ratecon' => 'Limit hızı bağlantıları için geçersiz değer',
'fwdfw err remark' => 'Açıklama içinde geçersiz karakterler.',
'fwdfw err ruleexists' => 'Bu kural zaten var.',
'fwdfw err same' => 'Kaynak ve hedef aynı.',
@@ -1033,15 +1035,18 @@
'fwdfw hint mac' => 'Kod oluşturma sırasında görmezden gelinecek MAC adresleri.',
'fwdfw iface' => 'Arayüz',
'fwdfw ipsec network' => 'IPsec ağları:',
'fwdfw limitconcon' => 'IP adresi başına eş zamanlı bağlantıyı sınırla',
'fwdfw log' => 'Günlük',
'fwdfw log rule' => 'Günlük kuralı',
'fwdfw man port' => 'Bağlantı noktası:',
'fwdfw many' => 'Çok',
'fwdfw maxconcon' => 'Maksimum eş zamanlı bağlantı',
'fwdfw menu' => 'Güvenlik Duvarı Kuralları',
'fwdfw movedown' => 'Aşağı taşı',
'fwdfw moveup' => 'Yukarı taşı',
'fwdfw natport used' => 'NAPT için verilen bağlantı noktası başka bir DNAT kural tarafından zaten kullanılıyor.',
'fwdfw newrule' => 'Yeni Kural',
'fwdfw numcon' => 'Bağlantı sayısı',
'fwdfw p2p txt' => 'P2P ağlarına erişim izni Ver/Verme.',
'fwdfw pol allow' => 'İzin Verildi',
'fwdfw pol block' => 'Engellendi',
@@ -1050,6 +1055,7 @@
'fwdfw pol title' => 'Varsayılan güvenlik duvarı davranışı',
'fwdfw prot41' => 'IPv6 Kuşatması (Kural 41)',
'fwdfw prot41 short' => 'IPv6 Kuşatması',
'fwdfw ratelimit' => 'Yeni bağlantı hız sınırı',
'fwdfw red' => 'KIRMIZI',
'fwdfw reread' => 'Değişiklikleri Uygula',
'fwdfw rule action' => 'Eylem kuralı:',
@@ -1171,11 +1177,11 @@
'g.lite' => 'KALDIRILACAK',
'gateway' => 'Ağ geçidi',
'gateway ip' => 'Ağ Geçidi IP Adresi',
'gen dh' => 'Yeni anahtar değişimi parametrelerini oluştur',
'gen dh' => 'Yeni Diffie-Hellman parametrelerini oluşturun',
'gen static key' => 'Statik bir anahtar oluştur',
'generate' => 'Yönetici/Sunucu Sertifikası Oluştur',
'generate a certificate' => 'Sertifika oluştur:',
'generate dh key' => 'Anahtar değişimi parametrelerini oluştur',
'generate dh key' => 'Diffie-Hellman parametrelerini oluşturun',
'generate iso' => 'ISO oluştur',
'generate root/host certificates' => 'Yönetici/Sunucu Sertifikası Oluştur',
'generate tripwire keys and init' => 'tripwire anahtarları ve init oluştur',
@@ -1471,7 +1477,7 @@
'marked' => 'İşaretli',
'masquerade blue' => 'MAVİ gizli',
'masquerade green' => 'YEŞİL gizli',
'masquerade orange' => 'TURUNCU gizil',
'masquerade orange' => 'TURUNCU gizli',
'masquerading' => 'Gizle',
'masquerading disabled' => 'Gizlemeyi kapat',
'masquerading enabled' => 'Gizlemeyi aç',
@@ -1523,28 +1529,28 @@
'modem' => 'Modem',
'modem configuration' => 'Modem yapılandırması',
'modem hardware details' => 'Modem Donanımı',
'modem information' => 'Modem Bilgisi',
'modem information' => 'Modem bilgisi',
'modem network bit error rate' => 'Bit hata oranı',
'modem network information' => 'Ağ bilgisi',
'modem network mode' => 'Ağ Yöntemi',
'modem network operator' => 'Ağ Oparatörü',
'modem network registration' => 'Ağ Kaydı',
'modem network signal quality' => 'Sinyal Kalitesi',
'modem no connection' => 'Bağlantı Yok',
'modem no connection message' => 'Modemle bağlantı kurulamadı.',
'modem network mode' => 'Ağ yöntemi',
'modem network operator' => 'Ağ oparatörü',
'modem network registration' => 'Ağ kaydı',
'modem network signal quality' => 'Sinyal kalitesi',
'modem no connection' => 'Bağlantı yok',
'modem no connection message' => 'Modemle herhangi bir bağlantı kurulamadı.',
'modem on com1' => 'COM1 üzerindeki modem',
'modem on com2' => 'COM2 üzerindeki modem',
'modem on com3' => 'COM3 üzerindeki modem',
'modem on com4' => 'COM4 üzerindeki modem',
'modem on com5' => 'COM5 üzerindeki modem',
'modem settings have errors' => 'Modem ayarları hatalı',
'modem sim information' => 'SIM Bilgisi',
'modem sim information' => 'SIM bilgisi',
'modem speaker on' => 'Modem üzerindeki hoparlör:',
'modem status' => 'Modem Durumu',
'modem status' => 'Modem durumu',
'modify' => 'Düzenle',
'modulation' => 'Geçiş',
'monday' => 'Pazartesi',
'monitor interface' => 'Ekran Arabirimi',
'monitor interface' => 'Ekran ara birimi',
'month' => 'Ay',
'month-graph' => 'ay',
'monthly firewallhits' => 'aylık güvenlik duvarı kaydı',
@@ -1571,7 +1577,7 @@
'name is invalid' => 'Geçersiz ad',
'name must only contain characters' => 'Ad sadece karakter içermelidir.',
'name too long' => 'Kullanıcının tam adı veya sistem ana bilgisayar adı çok uzun',
'nameserver' => 'Sunucu adı',
'nameserver' => 'Alan adı sunucusu',
'nat-traversal' => 'Nat Geçişi:',
'needreboot' => 'Bu güncelleştirmeden sonra yeniden başlatmak gerekir',
'net' => 'Ağ',
@@ -1623,7 +1629,7 @@
'nonetworkname' => 'Ağ adı girilmedi',
'noservicename' => 'Hizmet adı girilmedi',
'not a valid ca certificate' => 'Geçerli bir CA sertifikası değil.',
'not a valid dh key' => 'Geçerli bir anahtar değişim parametre dosyası yok. 1024, 2048, 3072 veya 4096 bit uzunluğunda ve PKCS#3 biçimini kullanın.',
'not a valid dh key' => 'Geçerli bir Diffie-Hellman parametre dosyası yok. 1024, 2048, 3072 veya 4096 bit uzunluğunda ve PKCS#3 biçimini kullanın.',
'not enough disk space' => 'Yeterli disk alanı yok',
'not present' => 'Mevcut <b>değil</b>',
'not running' => 'çalışmıyor',
@@ -1718,16 +1724,16 @@
'ovpn config' => 'OVPN-Yapılandırması',
'ovpn crypt options' => 'Şifreleme seçenekleri',
'ovpn device' => 'OpenVPN aygıtı:',
'ovpn dh' => 'Anahtar değişim uzunluğu parametreleri',
'ovpn dh new key' => 'Yeni anahtar değişimi parametreleri oluşturun',
'ovpn dh parameters' => 'Anahtar değişimi parametre seçenekleri',
'ovpn dh upload' => 'Yeni anahtar değişimi parametrelerini yükle',
'ovpn dh' => 'Diffie-Hellman parametre uzunluğu',
'ovpn dh new key' => 'Yeni Diffie-Hellman parametrelerini oluşturun',
'ovpn dh parameters' => 'Diffie-Hellman parametre seçenekleri',
'ovpn dh upload' => 'Yeni Diffie-Hellman parametreleri yükle',
'ovpn dl' => 'OVPN-Yapılandırması İndir',
'ovpn engines' => 'kripto motoru',
'ovpn engines' => 'Şifreleme motoru',
'ovpn errmsg green already pushed' => 'Yeşil ağ için her zaman bir yol ayarla',
'ovpn errmsg invalid ip or mask' => 'Geçersiz ağ adresi veya alt ağ maskesi',
'ovpn generating the root and host certificates' => 'Root ve ana bilgisayar belge üretimi uzun zaman alabilir.',
'ovpn ha' => 'Hash algoritması',
'ovpn generating the root and host certificates' => 'Root ve ana bilgisayar sertifika üretimi uzun zaman alabilir.',
'ovpn ha' => 'Hash algorithması',
'ovpn hmac' => 'HMAC seçenekleri',
'ovpn log' => 'OVPN-Günlük',
'ovpn mgmt in root range' => 'Bağlantı noktası numarası 1024 ya da daha yüksek bir numara olmalıdır.',
@@ -1743,7 +1749,7 @@
'ovpn on orange' => 'TURUNCU üzerindeki OpenVPN',
'ovpn on red' => 'KIRMIZI üzerindeki OpenVPN',
'ovpn port in root range' => '1024 ya da daha yüksek bir bağlantı noktası numarası gereklidir..',
'ovpn reneg sec' => 'Oturum anahtarının kullanım süresi:',
'ovpn reneg sec' => 'Oturum anahtarı kullanım süresi:',
'ovpn routes push' => 'Yollar (her satırda bir tane) örneğin 192.168.10.0/255.255.255.0 192.168.20.0/24',
'ovpn routes push options' => 'Yol baskı seçenekleri',
'ovpn server status' => 'Güncel OpenVPN sunucu durumu:',
@@ -1943,8 +1949,8 @@
'running' => 'ÇALIŞIYOR',
'safe removal of umounted device' => 'Bağlantısı kesilen aygıtı güvenli bir şekilde kaldırabilirsiniz',
'samba' => 'Samba',
'samba join a domain' => 'Bir etki alanına katılın',
'samba join domain' => 'Etki alanına üyelik',
'samba join a domain' => 'Bir etki alanına katıl',
'samba join domain' => 'Etki alanına katıl',
'samba status' => 'Samba durumu',
'saturday' => 'Cumartesi',
'save' => 'Kaydet',
@@ -1996,7 +2002,7 @@
'show ca certificate' => 'CA sertifikalarını göster',
'show certificate' => 'Sertifika göster',
'show crl' => 'Sertifika İptal Listesini Göster',
'show dh' => 'Anahtar değişimi parametrelerini göster',
'show dh' => 'Diffie-Hellman parametrelerini göster',
'show host certificate' => 'Ana bilgisayar sertifikalarını göster',
'show last x lines' => 'Son x satırlarını göster',
'show lines' => 'Satırları göster',
@@ -2036,7 +2042,7 @@
'source ip' => 'Kaynak IP',
'source ip and port' => 'Kaynak IP: Bağlantı noktası numarası',
'source ip bad' => 'Geçersiz bir IP adresi ya da ağ adresi.',
'source ip country' => 'Kaynak Ip ülke',
'source ip country' => 'Ülke IP kaynağı',
'source ip in use' => 'Kullanılan kaynak IP:',
'source ip or net' => 'Kaynak IP veya Ağ',
'source net' => 'Kaynak Ağ',
@@ -2114,11 +2120,11 @@
'system log viewer' => 'Sistem Günlük Görüntüleyicisi',
'system logs' => 'Sistem Günlükleri',
'system status information' => 'Sistem Durum Bilgisi',
'ta key' => 'Tls kimlik doğrulama anahtarı',
'ta key' => 'TLS Kimlik Doğrulama Anahtarı',
'telephone not set' => 'Telefon ayarlanmamış.',
'template' => 'Ön Ayar',
'template warning' => 'QoS kurmak için iki seçeneğiniz vardır. İlk olarak kaydet düğmesine basıp kendi sınıf ve kurallarınızı oluşturabilirsiniz. İkinci olarak ise ön ayar düğmesine basıp sınıf ve kurallar için bir şablonun kurulmasını sağlayın. ',
'teovpn_fragment' => 'Fragment boyutu',
'teovpn_fragment' => 'Bölümleme boyutu',
'test' => 'test',
'test email could not be sent' => 'Test e-posta gönderilemedi',
'test email was sent' => 'Test e-posta başarıyla gönderildi.',
@@ -2340,7 +2346,7 @@
'upload a certificate' => 'Sertifika yükle:',
'upload a certificate request' => 'Sertifika isteği yükle:',
'upload ca certificate' => 'CA Sertifikası Yükle',
'upload dh key' => 'Anahtar değişimi parametrelerini yükle',
'upload dh key' => 'Diffie-Hellman parametreleri yükle',
'upload fcdsl.o' => 'KALDIRILACAK',
'upload file' => 'Dosya yükle',
'upload new ruleset' => 'Yeni kurallar yükle',

View File

@@ -284,8 +284,10 @@ endif
# Makefile:235: *** mixed implicit and normal rules. Stop.
cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile
ifeq "$(MACHINE_TYPE)" "arm"
# http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
cd $(DIR_APP) && sed -e "s/PIC/SHARED/g" -i ports/sysdeps/arm/{,eabi/}{set,__long}jmp.S
endif
ifeq "$(ROOT)" ""
ifeq "$(MACHINE_TYPE)" "arm"

View File

@@ -31,6 +31,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
SLOGAN = An Open Source Firewall Solution
DOWNLOAD_URL = http://downloads.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
###############################################################################
# Top-level Rules
@@ -58,12 +59,11 @@ $(TARGET) :
--with-distro-name="$(NAME)" \
--with-distro-sname="$(SNAME)" \
--with-distro-slogan="$(SLOGAN)" \
--with-config-root="$(CONFIG_ROOT)"
--with-config-root="$(CONFIG_ROOT)" \
--with-download-url="$(DOWNLOAD_URL)"
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
#Patch ISO Name for download ...
#sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \
# /usr/bin/downloadsource.sh
@rm -rf $(DIR_APP)
@$(POSTBUILD)

View File

@@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = squidclamav
PAK_VER = 19
PAK_VER = 20
DEPS = "clamav"
@@ -79,6 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/squidclamav-5.11-dont_use_ipv6.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/squidclamav-5.11-squid-helper-protocol.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/squidclamav-5.11-source-address-parsing-issue.patch
cd $(DIR_APP) && ./configure --prefix=/usr
cd $(DIR_APP) && make install
install -v -m 664 $(DIR_CONF)/squidclamav/squidclamav.conf /etc/squidclamav.conf

View File

@@ -24,7 +24,7 @@
include Config
VER = 5.2.0
VER = 5.2.1
THISAPP = strongswan-$(VER)
DL_FILE = $(THISAPP).tar.bz2
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_MD5 = 5cee4ee1a6ccb74400758b3ace54d46e
$(DL_FILE)_MD5 = dd3717c0aa59ab4591ca1812941ebb82
install : $(TARGET)

87
lfs/tmux Normal file
View File

@@ -0,0 +1,87 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
# Copyright (C) 2014 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
###############################################################################
# Definitions
###############################################################################
include Config
VER = 1.9a
THISAPP = tmux-$(VER)
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = tmux
PAK_VER = 1
DEPS = ""
###############################################################################
# Top-level Rules
###############################################################################
objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_MD5 = b07601711f96f1d260b390513b509a2d
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
dist:
@$(PAK)
###############################################################################
# Downloading, checking, md5sum
###############################################################################
$(patsubst %,$(DIR_CHK)/%,$(objects)) :
@$(CHECK)
$(patsubst %,$(DIR_DL)/%,$(objects)) :
@$(LOAD)
$(subst %,%_MD5,$(objects)) :
@$(MD5)
###############################################################################
# Installation Details
###############################################################################
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && ./configure \
--prefix=/usr
cd $(DIR_APP) && make $(MAKETUNING)
cd $(DIR_APP) && make install
@rm -rf $(DIR_APP)
@$(POSTBUILD)

View File

@@ -822,6 +822,7 @@ buildipfire() {
ipfiremake perl-PDF-API2
ipfiremake squid-accounting
ipfiremake pigz
ipfiremake tmux
}
buildinstaller() {

View File

@@ -17,26 +17,8 @@
. ${rc_functions}
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
# English is default
FONT="lat0-16"
FONT="LatArCyrHeb-16"
KEYMAP_CORRECTIONS="euro2"
case "${LANGUAGE}" in
# German
de)
LEGACY_CHARSET="iso-8859-15"
FONT="lat0-16 -m 8859-15"
;;
# Polish
pl)
FONT="lat2-16"
;;
# Russish/Turkish
ru|tr)
FONT="LatArCyrHeb-16"
;;
esac
UNICODE="1"
BROKEN_COMPOSE="0"

View File

@@ -34,6 +34,7 @@ bin_PROGRAMS = \
bin_SCRIPTS = \
downloadsource.sh \
execute-postinstall.sh \
start-networking.sh
#- installer -------------------------------------------------------------------
@@ -44,6 +45,7 @@ installer_SOURCES = \
main.c
installer_CFLAGS = \
$(AM_CFLAGS) \
$(BLKID_CFLAGS) \
$(LIBSMOOTH_CFLAGS) \
$(PCI_CFLAGS) \

View File

@@ -39,6 +39,16 @@ AC_PROG_CC
AC_PROG_CC_C99
AC_PROG_CC_C_O
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
"-Wformat=2 -Wformat-security -Wformat-nonliteral" \
-Werror=overflow \
-fno-strict-aliasing \
-fstack-protector \
-fstack-protector-strong \
-fPIE \
--param=ssp-buffer-size=4])
AC_SUBST([OUR_CFLAGS], "$with_cflags")
AC_PATH_PROG([M4], [m4])
# Gettext
@@ -84,6 +94,11 @@ AC_ARG_WITH([config-root],
AC_DEFINE_UNQUOTED([CONFIG_ROOT], "$withval", [The config-root]),
AC_MSG_ERROR([*** you need to set CONFIG_ROOT with --with-config-root=]))
AC_ARG_WITH([download-url],
AS_HELP_STRING([--with-download-url] [The default download URL]),
AC_DEFINE_UNQUOTED([DOWNLOAD_URL], "$withval", [The default download URL]),
AC_MSG_ERROR([*** you need to set DOWNLOAD_URL with --with-download-url=]))
AC_CONFIG_FILES([
Makefile
po/Makefile.in

View File

@@ -19,29 +19,39 @@
# #
###############################################################################
#lfs change the url while build!
IPFireISO=ipfire.iso
#
function download() {
wget -U "IPFire-NetInstall/2.x" "$@"
}
#Get user defined download from boot cmdline
grep "netinstall=" /proc/cmdline > /dev/null && CMDLINE=1
if ( [ "$CMDLINE" == "1" ]); then
read CMDLINE < /proc/cmdline
POS=${CMDLINE%%netinstall*}
POS=${#POS}
IPFireISO=`echo ${CMDLINE:POS} | cut -d"=" -f2 | cut -d" " -f1`
if [ $# -lt 2 ]; then
echo "$0: Insufficient number of arguments" >&2
exit 2
fi
echo "Download with wget..."
wget $IPFireISO -O /tmp/download.iso -t3 -U IPFire_NetInstall/2.x
wget $IPFireISO.md5 -O /tmp/download.iso.md5 -t3 -U IPFire_NetInstall/2.x
echo
echo "Checking download..."
md5_file=`md5sum /tmp/download.iso | cut -d" " -f1`
md5_down=`cat /tmp/download.iso.md5 | cut -d" " -f1`
if [ "$md5_file" == "$md5_down" ]; then
echo -n "/tmp/download.iso" > /tmp/source_device
exit 0
OUTPUT="${1}"
URL="${2}"
echo "Downloading ${URL}..."
if ! download -O "${OUTPUT}" "${URL}"; then
echo "Download failed" >&2
rm -f "${OUTPUT}"
exit 1
fi
echo "Error - SKIP"
exit 10
# Download went well. Checking for MD5 sum
if download -O "${OUTPUT}.md5" "${URL}.md5" &>/dev/null; then
# Read downloaded checksum
read -r md5sum rest < "${OUTPUT}.md5"
rm -f "${OUTPUT}.md5"
# Compute checkum of downloaded image file
read -r md5sum_image rest <<< "$(md5sum "${OUTPUT}")"
if [ "${md5sum}" != "${md5sum_image}" ]; then
echo "MD5 sum mismatch: ${md5sum} != ${md5sum_image}" >&2
exit 2
fi
fi
exit 0

View File

@@ -12,21 +12,45 @@
#
########################################################################
dhcpcd_up()
{
LEASE_FILE="/var/ipfire/dhcpc/dhcpcd-${interface}.info"
export_lease() {
set | grep "^new_" | sed "s|^new_||g" | \
sed "s|'||g" | \
sort > /var/ipfire/dhcpc/dhcpcd-$interface.info
DNS=`grep "domain_name_servers" /var/ipfire/dhcpc/dhcpcd-$interface.info | cut -d"=" -f2`
DNS1=`echo $DNS | cut -d" " -f1`
DNS2=`echo $DNS | cut -d" " -f2`
echo "nameserver $DNS1" > /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf
sed "s|'||g" | sort > ${LEASE_FILE}
}
case "$reason" in
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC) dhcpcd_up;;
make_resolvconf() {
local DNS="$(grep 'domain_name_servers' ${LEASE_FILE} | cut -d'=' -f2)"
local DNS1="$(echo ${DNS} | cut -d' ' -f1)"
local DNS2="$(echo ${DNS} | cut -d' ' -f2)"
(
echo "nameserver ${DNS1}"
echo "nameserver ${DNS2}"
) > /etc/resolv.conf
}
case "${reason}" in
PREINIT)
# Configure MTU
if [ -n "${new_interface_mtu}" ] && [ ${new_interface_mtu} -gt 576 ]; then
echo "Setting MTU to ${new_interface_mtu}"
ip link set "${interface}" mtu "${new_interface_mtu}"
fi
;;
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC)
# Export all information about the newly received lease
# to file
export_lease
# Create system configuration files
make_resolvconf
;;
EXPIRE|FAIL|IPV4LL|NAK|NOCARRIER|RELEASE|STOP)
rm -f "${LEASE_FILE}"
;;
esac
exit 0

View File

@@ -18,6 +18,7 @@ install() {
inst /etc/system-release
inst /usr/bin/installer
inst /usr/bin/downloadsource.sh
inst /usr/bin/execute-postinstall.sh
inst /usr/local/bin/iowrap
# Kernel drivers
@@ -35,28 +36,28 @@ install() {
inst_multiple tar gzip lzma xz
# Networking
inst_multiple dhcpcd ethtool hostname ip ping wget
inst_multiple dhcpcd ethtool hostname ip ping sort wget
inst /usr/bin/start-networking.sh
inst /var/ipfire/dhcpc/dhcpcd-run-hooks
inst /var/ipfire/dhcpc/dhcpcd.conf
for file in /var/ipfire/dhcpc/dhcpcd-hooks/*; do
inst "${file}"
done
inst /var/ipfire/dhcpc/dhcpcd-run-hooks
inst "$moddir/70-dhcpcd.exe" "/var/ipfire/dhcpc/dhcpcd-hooks/70-dhcpcd.exe"
inst /etc/host.conf /etc/hosts /etc/protocols
inst /etc/nsswitch.conf /etc/resolv.conf
inst_libdir_file "libnss_dns.so.*"
# Misc. tools
inst_multiple cut grep eject killall md5sum touch
inst_multiple chmod cut grep eject id killall md5sum touch
inst_multiple -o fdisk cfdisk df ps top
# Hardware IDs
inst /usr/share/hwdata/pci.ids /usr/share/hwdata/usb.ids
# Locales
for locale in de en es fr nl pl ru tr; do
for file in $(find /usr/lib/locale/${locale}*); do
inst "${file}"
done
done
mkdir -p "${initdir}/usr/lib/locale"
localedef --quiet --prefix="${initdir}" --add-to-archive /usr/lib/locale/en_US
localedef --quiet --prefix="${initdir}" --add-to-archive /usr/lib/locale/en_US.utf8
for file in /usr/share/locale/*/LC_MESSAGES/installer.mo; do
inst "${file}"
done

View File

@@ -3,6 +3,12 @@
# IPFire Installer RC
#
# Enable Unicode
echo -en '\033%G' && kbd_mode -u
# Load default console font
setfont LatArCyrHeb-16
# Silence the kernel
echo >/proc/sys/kernel/printk "1 4 1 7"
echo -n -e "\033[9;0]"

View File

@@ -0,0 +1,65 @@
#!/bin/sh
###############################################################################
# #
# IPFire.org - A linux based firewall #
# Copyright (C) 2014 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
###############################################################################
function download() {
wget -U "IPFire-NetInstall/2.x" "$@"
}
if [ $# -lt 2 ]; then
echo "$0: Insufficient number of arguments" >&2
exit 2
fi
DESTINATION="${1}"
DOWNLOAD_URL="${2}"
DOWNLOAD_TARGET="/tmp/post-install.exe"
if download -O "${DESTINATION}${DOWNLOAD_TARGET}" "${DOWNLOAD_URL}"; then
echo "Downloading post-install script from ${DOWNLOAD_URL}..."
# Make it executable
chmod a+x "${DESTINATION}${DOWNLOAD_TARGET}"
# Replace /etc/resolv.conf so that we will have
cp -fb /etc/resolv.conf ${DESTINATION}/etc/resolv.conf
for i in /dev /proc /sys; do
mount --bind "${i}" "${DESTINATION}${i}"
done
# Execute the downloaded script
chroot "${DESTINATION}" sh --login -c "${DOWNLOAD_TARGET}"
retval=$?
# Cleanup the environment
mv -f ${DESTINATION}/etc/resolv.conf{~,}
for i in /dev /proc /sys; do
umount "${DESTINATION}${i}"
done
rm -f "${DESTINATION}${DOWNLOAD_TARGET}"
exit ${retval}
# In case the download failed
else
echo "Could not download the post-install script" >&2
exit 1
fi

View File

@@ -26,12 +26,14 @@
#include <blkid/blkid.h>
#include <fcntl.h>
#include <libudev.h>
#include <linux/loop.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/swap.h>
#include <sys/sysinfo.h>
#include <unistd.h>
@@ -82,11 +84,56 @@ static int strstartswith(const char* a, const char* b) {
return (strncmp(a, b, strlen(b)) == 0);
}
static char loop_device[STRING_SIZE];
static int setup_loop_device(const char* source, const char* device) {
int file_fd = open(source, O_RDWR);
if (file_fd < 0)
goto ERROR;
int device_fd = -1;
if ((device_fd = open(device, O_RDWR)) < 0)
goto ERROR;
if (ioctl(device_fd, LOOP_SET_FD, file_fd) < 0)
goto ERROR;
close(file_fd);
close(device_fd);
return 0;
ERROR:
if (file_fd >= 0)
close(file_fd);
if (device_fd >= 0) {
ioctl(device_fd, LOOP_CLR_FD, 0);
close(device_fd);
}
return -1;
}
int hw_mount(const char* source, const char* target, const char* fs, int flags) {
const char* loop_device = "/dev/loop0";
// Create target if it does not exist
if (access(target, X_OK) != 0)
mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
struct stat st;
stat(source, &st);
if (S_ISREG(st.st_mode)) {
int r = setup_loop_device(source, loop_device);
if (r == 0) {
source = loop_device;
} else {
return -1;
}
}
return mount(source, target, fs, flags, NULL);
}
@@ -293,7 +340,7 @@ void hw_free_disks(struct hw_disk** disks) {
free(disks);
}
unsigned int hw_count_disks(struct hw_disk** disks) {
unsigned int hw_count_disks(const struct hw_disk** disks) {
unsigned int ret = 0;
while (*disks++)
@@ -306,7 +353,7 @@ struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection) {
struct hw_disk** ret = hw_create_disks();
struct hw_disk** selected_disks = ret;
unsigned int num_disks = hw_count_disks(disks);
unsigned int num_disks = hw_count_disks((const struct hw_disk**)disks);
for (unsigned int i = 0; i < num_disks; i++) {
if (!selection || selection[i]) {
@@ -393,7 +440,7 @@ static int hw_device_has_p_suffix(const struct hw_destination* dest) {
return 0;
}
static int hw_calculate_partition_table(struct hw_destination* dest) {
static int hw_calculate_partition_table(struct hw_destination* dest, int disable_swap) {
char path[DEV_SIZE];
int part_idx = 1;
@@ -446,9 +493,14 @@ static int hw_calculate_partition_table(struct hw_destination* dest) {
}
dest->size_boot = hw_boot_size(dest);
dest->size_swap = hw_swap_size(dest);
dest->size_root = hw_root_size(dest);
// Should we use swap?
if (disable_swap)
dest->size_swap = 0;
else
dest->size_swap = hw_swap_size(dest);
// Determine the size of the data partition.
unsigned long long used_space = dest->size_bootldr + dest->size_boot
+ dest->size_swap + dest->size_root;
@@ -493,7 +545,7 @@ static int hw_calculate_partition_table(struct hw_destination* dest) {
return 0;
}
struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks) {
struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks, int disable_swap) {
struct hw_destination* dest = malloc(sizeof(*dest));
if (part_type == HW_PART_TYPE_NORMAL) {
@@ -513,7 +565,7 @@ struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks
// Is this a RAID device?
dest->is_raid = (part_type > HW_PART_TYPE_NORMAL);
int r = hw_calculate_partition_table(dest);
int r = hw_calculate_partition_table(dest, disable_swap);
if (r)
return NULL;
@@ -982,12 +1034,13 @@ static char* hw_get_uuid(const char* dev) {
return uuid;
}
#define FSTAB_FMT "UUID=%s %-8s %-4s %-10s %d %d\n"
int hw_write_fstab(struct hw_destination* dest) {
FILE* f = fopen(DESTINATION_MOUNT_PATH "/etc/fstab", "w");
if (!f)
return -1;
const char* fmt = "UUID=%s %-8s %-4s %-10s %d %d\n";
char* uuid = NULL;
// boot
@@ -995,7 +1048,7 @@ int hw_write_fstab(struct hw_destination* dest) {
uuid = hw_get_uuid(dest->part_boot);
if (uuid) {
fprintf(f, fmt, uuid, "/boot", "auto", "defaults", 1, 2);
fprintf(f, FSTAB_FMT, uuid, "/boot", "auto", "defaults", 1, 2);
free(uuid);
}
}
@@ -1005,7 +1058,7 @@ int hw_write_fstab(struct hw_destination* dest) {
uuid = hw_get_uuid(dest->part_swap);
if (uuid) {
fprintf(f, fmt, uuid, "swap", "swap", "defaults,pri=1", 0, 0);
fprintf(f, FSTAB_FMT, uuid, "swap", "swap", "defaults,pri=1", 0, 0);
free(uuid);
}
}
@@ -1013,7 +1066,7 @@ int hw_write_fstab(struct hw_destination* dest) {
// root
uuid = hw_get_uuid(dest->part_root);
if (uuid) {
fprintf(f, fmt, uuid, "/", "auto", "defaults", 1, 1);
fprintf(f, FSTAB_FMT, uuid, "/", "auto", "defaults", 1, 1);
free(uuid);
}
@@ -1022,7 +1075,7 @@ int hw_write_fstab(struct hw_destination* dest) {
uuid = hw_get_uuid(dest->part_data);
if (uuid) {
fprintf(f, fmt, uuid, "/var", "auto", "defaults", 1, 1);
fprintf(f, FSTAB_FMT, uuid, "/var", "auto", "defaults", 1, 1);
free(uuid);
}
}

View File

@@ -107,11 +107,12 @@ char* hw_find_source_medium(struct hw* hw);
struct hw_disk** hw_find_disks(struct hw* hw, const char* sourcedrive);
void hw_free_disks(struct hw_disk** disks);
unsigned int hw_count_disks(struct hw_disk** disks);
unsigned int hw_count_disks(const struct hw_disk** disks);
struct hw_disk** hw_select_disks(struct hw_disk** disks, int* selection);
struct hw_disk** hw_select_first_disk(const struct hw_disk** disks);
struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks);
struct hw_destination* hw_make_destination(int part_type, struct hw_disk** disks,
int disable_swap);
unsigned long long hw_memory();
@@ -131,6 +132,8 @@ int hw_write_fstab(struct hw_destination* dest);
char* hw_find_backup_file(const char* output, const char* search_path);
int hw_restore_backup(const char* output, const char* backup_path, const char* destination);
int hw_start_networking(const char* output);
void hw_sync();
#endif /* HEADER_HW_H */

View File

@@ -7,6 +7,7 @@
* Contains main entry point, and misc functions.6
*
*/
#define _GNU_SOURCE
#include <assert.h>
#include <errno.h>
@@ -23,7 +24,6 @@
#define _(x) dgettext("installer", x)
#define INST_FILECOUNT 21000
#define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
#define LICENSE_FILE "/cdrom/COPYING"
#define SOURCE_TEMPFILE "/tmp/downloaded-image.iso"
@@ -163,7 +163,7 @@ static int newtLicenseBox(const char* title, const char* text, int width, int he
return ret;
}
int write_lang_configs(const char *lang) {
int write_lang_configs(char* lang) {
struct keyvalue *kv = initkeyvalues();
/* default stuff for main/settings. */
@@ -207,7 +207,7 @@ static char* center_string(const char* str, int width) {
}
#define DEFAULT_LANG "English"
#define NUM_LANGS 8
#define NUM_LANGS 10
static struct lang {
const char* code;
@@ -226,6 +226,80 @@ static struct lang {
{ NULL, NULL },
};
static struct config {
int unattended;
int serial_console;
int require_networking;
int perform_download;
int disable_swap;
char download_url[STRING_SIZE];
char postinstall[STRING_SIZE];
} config = {
.unattended = 0,
.serial_console = 0,
.require_networking = 0,
.perform_download = 0,
.disable_swap = 0,
.download_url = DOWNLOAD_URL,
.postinstall = "\0",
};
static void parse_command_line(struct config* c) {
char buffer[STRING_SIZE];
char cmdline[STRING_SIZE];
FILE* f = fopen("/proc/cmdline", "r");
if (!f)
return;
int r = fread(&cmdline, 1, sizeof(cmdline) - 1, f);
if (r > 0) {
char* token = strtok(cmdline, " ");
while (token) {
strncpy(buffer, token, sizeof(buffer));
char* val = buffer;
char* key = strsep(&val, "=");
// serial console
if (strcmp(token, "console=ttyS0") == 0)
c->serial_console = 1;
// enable networking?
else if (strcmp(token, "installer.net") == 0)
c->require_networking = 1;
// unattended mode
else if (strcmp(token, "installer.unattended") == 0)
c->unattended = 1;
// disable swap
else if (strcmp(token, "installer.disable-swap") == 0)
c->disable_swap = 1;
// download url
else if (strcmp(key, "installer.download-url") == 0) {
strncpy(c->download_url, val, sizeof(c->download_url));
c->perform_download = 1;
// Require networking for the download
c->require_networking = 1;
// postinstall script
} else if (strcmp(key, "installer.postinstall") == 0) {
strncpy(c->postinstall, val, sizeof(c->postinstall));
// Require networking for the download
c->require_networking = 1;
}
token = strtok(NULL, " ");
}
}
fclose(f);
}
int main(int argc, char *argv[]) {
struct hw* hw = hw_init();
const char* logfile = NULL;
@@ -243,17 +317,10 @@ int main(int argc, char *argv[]) {
char message[STRING_SIZE];
char title[STRING_SIZE];
int allok = 0;
FILE *handle, *cmdfile, *copying;
char line[STRING_SIZE];
int unattended = 0;
int serialconsole = 0;
int require_networking = 0;
struct keyvalue *unattendedkv = initkeyvalues();
char restore_file[STRING_SIZE] = "";
FILE *copying;
setlocale (LC_ALL, "");
sethostname( SNAME , 10);
setlocale(LC_ALL, "");
sethostname(SNAME, 10);
/* Log file/terminal stuff. */
FILE* flog = NULL;
@@ -283,33 +350,18 @@ int main(int argc, char *argv[]) {
snprintf(title, sizeof(title), "%s - %s", NAME, SLOGAN);
if (! (cmdfile = fopen("/proc/cmdline", "r"))) {
fprintf(flog, "Couldn't open commandline: /proc/cmdline\n");
} else {
fgets(line, STRING_SIZE, cmdfile);
// Parse parameters from the kernel command line
parse_command_line(&config);
// check if we have to make an unattended install
if (strstr(line, "installer.unattended") != NULL) {
splashWindow(title, _("Warning: Unattended installation will start in 10 seconds..."), 10);
unattended = 1;
}
// check if the installer should start networking
if (strstr(line, "installer.net") != NULL) {
require_networking = 1;
}
// check if we have to patch for serial console
if (strstr (line, "console=ttyS0") != NULL) {
serialconsole = 1;
}
if (config.unattended) {
splashWindow(title, _("Warning: Unattended installation will start in 10 seconds..."), 10);
}
// Load common modules
mysystem(logfile, "/sbin/modprobe vfat"); // USB key
hw_stop_all_raid_arrays(logfile);
if (!unattended) {
if (!config.unattended) {
// Language selection
char* langnames[NUM_LANGS + 1];
@@ -327,7 +379,7 @@ int main(int argc, char *argv[]) {
assert(choice <= NUM_LANGS);
fprintf(flog, "Selected language: %s (%s)\n", languages[choice].name, languages[choice].code);
snprintf(language, sizeof(language), languages[choice].code);
snprintf(language, sizeof(language), "%s", languages[choice].code);
setenv("LANGUAGE", language, 1);
setlocale(LC_ALL, language);
@@ -336,7 +388,7 @@ int main(int argc, char *argv[]) {
char* helpline = center_string(_("<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"), screen_cols);
newtPushHelpLine(helpline);
if (!unattended) {
if (!config.unattended) {
snprintf(message, sizeof(message),
_("Welcome to the %s installation program.\n\n"
"Selecting Cancel on any of the following screens will reboot the computer."), NAME);
@@ -345,16 +397,21 @@ int main(int argc, char *argv[]) {
/* Search for a source drive that holds the right
* version of the image we are going to install. */
sourcedrive = hw_find_source_medium(hw);
fprintf(flog, "Source drive: %s\n", sourcedrive);
if (!config.perform_download) {
sourcedrive = hw_find_source_medium(hw);
fprintf(flog, "Source drive: %s\n", sourcedrive);
}
/* If we could not find a source drive, we will try
* downloading the install image */
if (!sourcedrive) {
if (!unattended) {
if (!sourcedrive)
config.perform_download = 1;
if (config.perform_download) {
if (!config.unattended) {
// Show the right message to the user
char reason[STRING_SIZE];
if (require_networking) {
if (config.perform_download) {
snprintf(reason, sizeof(reason),
_("The installer will now try downloading the installation image."));
} else {
@@ -373,11 +430,12 @@ int main(int argc, char *argv[]) {
goto EXIT;
}
require_networking = 1;
// Make sure that we enable networking before download
config.require_networking = 1;
}
// Try starting the networking if we require it
if (require_networking) {
if (config.require_networking) {
while (1) {
statuswindow(60, 4, title, _("Trying to start networking (DHCP)..."));
@@ -401,20 +459,31 @@ int main(int argc, char *argv[]) {
}
// Download the image if required
while (!sourcedrive) {
snprintf(commandstring, sizeof(commandstring), "/usr/bin/downloadsource.sh %s", SOURCE_TEMPFILE);
runcommandwithstatus(commandstring, title, _("Downloading installation image..."), logfile);
if (config.perform_download) {
fprintf(flog, "Download URL: %s\n", config.download_url);
snprintf(commandstring, sizeof(commandstring), "/usr/bin/downloadsource.sh %s %s",
SOURCE_TEMPFILE, config.download_url);
FILE* f = fopen(SOURCE_TEMPFILE, "r");
if (f) {
sourcedrive = SOURCE_TEMPFILE;
fclose(f);
} else {
rc = newtWinOkCancel(title, _("The installation image could not be downloaded."),
60, 8, _("Retry"), _("Cancel"));
while (!sourcedrive) {
rc = runcommandwithstatus(commandstring, title, _("Downloading installation image..."), logfile);
if (rc)
goto EXIT;
FILE* f = fopen(SOURCE_TEMPFILE, "r");
if (f) {
sourcedrive = SOURCE_TEMPFILE;
fclose(f);
} else {
char reason[STRING_SIZE] = "-";
if (rc == 2)
snprintf(reason, sizeof(STRING_SIZE), _("MD5 checksum mismatch"));
snprintf(message, sizeof(message),
_("The installation image could not be downloaded.\n Reason: %s\n\n%s"),
reason, config.download_url);
rc = newtWinOkCancel(title, message, 75, 12, _("Retry"), _("Cancel"));
if (rc)
goto EXIT;
}
}
}
}
@@ -423,24 +492,17 @@ int main(int argc, char *argv[]) {
int r = hw_mount(sourcedrive, SOURCE_MOUNT_PATH, "iso9660", MS_RDONLY);
if (r) {
fprintf(flog, "Could not mount %s to %s\n", sourcedrive, SOURCE_MOUNT_PATH);
fprintf(flog, strerror(errno));
exit(1);
snprintf(message, sizeof(message), _("Could not mount %s to %s:\n %s\n"),
sourcedrive, SOURCE_MOUNT_PATH, strerror(errno));
errorbox(message);
goto EXIT;
}
/* load unattended configuration */
if (unattended) {
fprintf(flog, "unattended: Reading unattended.conf\n");
(void) readkeyvalues(unattendedkv, UNATTENDED_CONF);
findkey(unattendedkv, "RESTORE_FILE", restore_file);
}
if (!unattended) {
if (!config.unattended) {
// Read the license file.
if (!(copying = fopen(LICENSE_FILE, "r"))) {
sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
fprintf(flog, discl_msg);
fprintf(flog, "%s", discl_msg);
} else {
fread(discl_msg, 1, 40000, copying);
fclose(copying);
@@ -463,7 +525,7 @@ int main(int argc, char *argv[]) {
// Check how many disks have been found and what
// we can do with them.
unsigned int num_disks = hw_count_disks(disks);
unsigned int num_disks = hw_count_disks((const struct hw_disk**)disks);
while (1) {
// no harddisks found
@@ -474,8 +536,8 @@ int main(int argc, char *argv[]) {
// exactly one disk has been found
// or if we are running in unattended mode, we will select
// the first disk and go with that one
} else if ((num_disks == 1) || (unattended && num_disks >= 1)) {
selected_disks = hw_select_first_disk(disks);
} else if ((num_disks == 1) || (config.unattended && num_disks >= 1)) {
selected_disks = hw_select_first_disk((const struct hw_disk**)disks);
// more than one usable disk has been found and
// the user needs to choose what to do with them
@@ -484,7 +546,7 @@ int main(int argc, char *argv[]) {
int disk_selection[num_disks];
for (unsigned int i = 0; i < num_disks; i++) {
disk_names[i] = &disks[i]->description;
disk_names[i] = disks[i]->description;
disk_selection[i] = 0;
}
@@ -512,10 +574,10 @@ int main(int argc, char *argv[]) {
// Don't print the auto-selected harddisk setup in
// unattended mode.
if (unattended)
if (config.unattended)
break;
num_selected_disks = hw_count_disks(selected_disks);
num_selected_disks = hw_count_disks((const struct hw_disk**)selected_disks);
if (num_selected_disks == 1) {
snprintf(message, sizeof(message),
@@ -554,7 +616,7 @@ int main(int argc, char *argv[]) {
hw_free_disks(disks);
struct hw_destination* destination = hw_make_destination(part_type, selected_disks);
struct hw_destination* destination = hw_make_destination(part_type, selected_disks, config.disable_swap);
if (!destination) {
errorbox(_("Your harddisk is too small."));
@@ -570,19 +632,21 @@ int main(int argc, char *argv[]) {
fprintf(flog, "Memory : %lluMB\n", BYTES2MB(hw_memory()));
// Warn the user if there is not enough space to create a swap partition
if (!unattended && !*destination->part_swap) {
rc = newtWinChoice(title, _("OK"), _("Cancel"),
_("Your harddisk is very small, but you can continue without a swap partition."));
if (!config.unattended) {
if (!config.disable_swap && !*destination->part_swap) {
rc = newtWinChoice(title, _("OK"), _("Cancel"),
_("Your harddisk is very small, but you can continue without a swap partition."));
if (rc != 1)
goto EXIT;
if (rc != 1)
goto EXIT;
}
}
// Filesystem selection
if (!unattended) {
if (!config.unattended) {
struct filesystems {
int fstype;
const char* description;
char* description;
} filesystems[] = {
{ HW_FS_EXT4, _("ext4 Filesystem") },
{ HW_FS_EXT4_WO_JOURNAL, _("ext4 Filesystem without journal") },
@@ -686,7 +750,7 @@ int main(int argc, char *argv[]) {
statuswindow(60, 4, title, _("Installing the bootloader..."));
/* Serial console ? */
if (serialconsole) {
if (config.serial_console) {
/* grub */
FILE* f = fopen(DESTINATION_MOUNT_PATH "/etc/default/grub", "a");
if (!f) {
@@ -725,7 +789,7 @@ int main(int argc, char *argv[]) {
char* backup_file = hw_find_backup_file(logfile, SOURCE_MOUNT_PATH);
if (backup_file) {
rc = 0;
if (!unattended) {
if (!config.unattended) {
rc = newtWinOkCancel(title, _("A backup file has been found on the installation image.\n\n"
"Do you want to restore the backup?"), 50, 10, _("Yes"), _("No"));
}
@@ -752,10 +816,21 @@ int main(int argc, char *argv[]) {
// Umount source drive and eject
hw_umount(SOURCE_MOUNT_PATH);
// Download and execute the postinstall script
if (*config.postinstall) {
snprintf(commandstring, sizeof(commandstring),
"/usr/bin/execute-postinstall.sh %s %s", DESTINATION_MOUNT_PATH, config.postinstall);
if (runcommandwithstatus(commandstring, title, _("Running post-install script..."), logfile)) {
errorbox(_("Post-install script failed."));
goto EXIT;
}
}
snprintf(commandstring, STRING_SIZE, "/usr/bin/eject %s", sourcedrive);
mysystem(logfile, commandstring);
if (!unattended) {
if (!config.unattended) {
snprintf(message, sizeof(message), _(
"%s was successfully installed!\n\n"
"Please remove any installation mediums from this system and hit the reboot button. "

View File

@@ -56,6 +56,10 @@ function main() {
fi
echo "Successfully started on ${interface}"
# Wait until everything is settled
sleep 15
return 0
done

View File

@@ -0,0 +1,13 @@
--- squidclamav-5.11/src/pattern.c~ 2014-10-29 13:08:05.658143495 +0000
+++ squidclamav-5.11/src/pattern.c 2014-10-29 13:08:20.964642365 +0000
@@ -151,10 +151,6 @@
return 1;
}
- /* extract source ipaddress and source fqdn */
- if (parseSourceAddress(in_buff.src_address, "/") != 0) {
- }
-
if (debug != 0)
logit(log_file, "DEBUG Parsed request: %s %s/%s %s %s\n", in_buff.url, in_buff.ipaddress, in_buff.fqdn, in_buff.ident, in_buff.method);

View File

@@ -726,6 +726,7 @@ update_langs() {
$BASEDIR/tools/sort_strings.pl ru
$BASEDIR/tools/sort_strings.pl nl
$BASEDIR/tools/sort_strings.pl tr
$BASEDIR/tools/sort_strings.pl it
$BASEDIR/tools/check_strings.pl en > $BASEDIR/doc/language_issues.en
$BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de
$BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr
@@ -734,6 +735,7 @@ update_langs() {
$BASEDIR/tools/check_strings.pl ru > $BASEDIR/doc/language_issues.ru
$BASEDIR/tools/check_strings.pl nl > $BASEDIR/doc/language_issues.nl
$BASEDIR/tools/check_strings.pl tr > $BASEDIR/doc/language_issues.tr
$BASEDIR/tools/check_strings.pl it > $BASEDIR/doc/language_issues.it
$BASEDIR/tools/check_langs.sh > $BASEDIR/doc/language_missings
beautify message DONE
}