]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Merge branch 'master' into next
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 4 Feb 2015 12:24:05 +0000 (13:24 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 4 Feb 2015 12:24:05 +0000 (13:24 +0100)
Conflicts:
make.sh

69 files changed:
config/etc/modprobe.d/btmrvl_sdio.conf [new file with mode: 0644]
config/firewall/rules.pl
config/kernel/kernel.config.armv5tel-ipfire-kirkwood
config/kernel/kernel.config.armv5tel-ipfire-multi
config/kernel/kernel.config.armv5tel-ipfire-rpi
config/kernel/kernel.config.i586-ipfire
config/kernel/kernel.config.i586-ipfire-pae
config/lib/firmware/brcm/brcmfmac4329-sdio.txt [new file with mode: 0644]
config/lib/firmware/brcm/brcmfmac4330-sdio.txt [new file with mode: 0644]
config/lib/firmware/brcm/brcmfmac43362-sdio.txt [new file with mode: 0644]
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/linux-kirkwood
config/rootfiles/common/armv5tel/linux-multi
config/rootfiles/common/armv5tel/linux-rpi
config/rootfiles/common/armv5tel/swconfig [new file with mode: 0644]
config/rootfiles/common/armv5tel/util-linux
config/rootfiles/common/crda
config/rootfiles/common/i586/util-linux
config/rootfiles/common/stage2
config/rootfiles/core/86/exclude
config/rootfiles/core/86/filelists/armv5tel/swconfig [new symlink]
config/rootfiles/core/86/filelists/files
config/rootfiles/core/86/filelists/updated-firmwares
config/rootfiles/core/86/update.sh
html/cgi-bin/wlanap.cgi
lfs/backports
lfs/fping
lfs/glibc
lfs/hostapd
lfs/initscripts
lfs/linux
lfs/mtr
lfs/pound
lfs/stage2
lfs/strongswan
lfs/swconfig [new file with mode: 0644]
make.sh
src/initscripts/init.d/collectd
src/initscripts/init.d/hostapd
src/initscripts/init.d/leds
src/initscripts/init.d/swconfig [new file with mode: 0644]
src/installer/main.c
src/installer/po/es.po
src/installer/po/fa.po
src/installer/po/hr.po
src/installer/po/jv.po [new file with mode: 0644]
src/installer/po/nl.po
src/installer/po/pl.po
src/installer/po/ru_RU.po [new file with mode: 0644]
src/installer/po/su.po [new file with mode: 0644]
src/patches/glibc/glibc-rh1019916.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1027101.patch [moved from src/patches/glibc/glibc-rh1091162.patch with 100% similarity]
src/patches/glibc/glibc-rh1027261.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1032628.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1044628.patch [moved from src/patches/glibc/glibc-rh1098050.patch with 100% similarity]
src/patches/glibc/glibc-rh1111460.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1139571.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1154563.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1170121.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh1183533.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh995972.patch [new file with mode: 0644]
src/patches/linux-3.14.x-update_banana_dts.patch [new file with mode: 0644]
src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch [new file with mode: 0644]
src/setup/po/es.po
src/setup/po/fa.po
src/setup/po/nl.po
src/setup/po/pt_BR.po
src/setup/po/ro_RO.po
src/setup/po/zh.po

diff --git a/config/etc/modprobe.d/btmrvl_sdio.conf b/config/etc/modprobe.d/btmrvl_sdio.conf
new file mode 100644 (file)
index 0000000..66cd021
--- /dev/null
@@ -0,0 +1,2 @@
+# seems to crash often
+blacklist btmrvl_sdio
index a475e2d60ea7cb880746471ea8623e10cb64ffbd..97b8897af87bba6f84ec2e961e3bbb62849a17ef 100755 (executable)
@@ -368,20 +368,12 @@ sub buildrules {
                                                push(@source_options, ("-s", $source));
                                        }
 
-                                       if ($source_intf) {
-                                               push(@source_options, ("-i", $source_intf));
-                                       }
-
                                        # Prepare destination options.
                                        my @destination_options = ();
                                        if ($destination) {
                                                push(@destination_options, ("-d", $destination));
                                        }
 
-                                       if ($destination_intf) {
-                                               push(@destination_options, ("-o", $destination_intf));
-                                       }
-
                                        # Add time constraint options.
                                        push(@options, @time_options);
 
@@ -476,6 +468,17 @@ sub buildrules {
                                                }
                                        }
 
+                                       # Add source and destination interface to the filter rules.
+                                       # These are supposed to help filtering forged packets that originate
+                                       # from BLUE with an IP address from GREEN for instance.
+                                       if ($source_intf) {
+                                               push(@source_options, ("-i", $source_intf));
+                                       }
+
+                                       if ($destination_intf) {
+                                               push(@destination_options, ("-o", $destination_intf));
+                                       }
+
                                        push(@options, @source_options);
                                        push(@options, @destination_options);
 
index fbfc05c75688ced5d120a60f40351c6d4f8b96d3..18ffcd77c739074dd887661fde4a3f31e4d47811 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.14.22 Kernel Configuration
+# Linux/arm 3.14.30 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -3393,7 +3393,7 @@ CONFIG_SMS_SIANO_RC=y
 #
 CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=y
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -3480,24 +3480,24 @@ CONFIG_SOC_CAMERA_OV9640=m
 CONFIG_SOC_CAMERA_OV9740=m
 CONFIG_SOC_CAMERA_RJ54N1=m
 CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_MEDIA_TUNER=y
-CONFIG_MEDIA_TUNER_SIMPLE=y
-CONFIG_MEDIA_TUNER_TDA8290=y
-CONFIG_MEDIA_TUNER_TDA827X=y
-CONFIG_MEDIA_TUNER_TDA18271=y
-CONFIG_MEDIA_TUNER_TDA9887=y
-CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_MT2060=m
 CONFIG_MEDIA_TUNER_MT2063=m
 CONFIG_MEDIA_TUNER_MT2266=m
 CONFIG_MEDIA_TUNER_MT2131=m
 CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=y
-CONFIG_MEDIA_TUNER_XC5000=y
-CONFIG_MEDIA_TUNER_XC4000=y
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MXL5005S=m
 CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_MEDIA_TUNER_MAX2165=m
 CONFIG_MEDIA_TUNER_TDA18218=m
 CONFIG_MEDIA_TUNER_FC0011=m
index 8249d2c8dec08f5a3eb684afa4ed96bf908d0695..e3fa93e9d69f37be80c2a646bd150a813a536046 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.14.25 Kernel Configuration
+# Linux/arm 3.14.30 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_MIGHT_HAVE_PCI=y
@@ -2053,8 +2053,8 @@ CONFIG_IP1000=m
 CONFIG_JME=m
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MV643XX_ETH=m
-CONFIG_MVMDIO=m
-CONFIG_MVNETA=m
+CONFIG_MVMDIO=y
+CONFIG_MVNETA=y
 CONFIG_SKGE=m
 # CONFIG_SKGE_DEBUG is not set
 CONFIG_SKGE_GENESIS=y
@@ -2155,6 +2155,8 @@ CONFIG_XILINX_EMACLITE=m
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 CONFIG_PHYLIB=y
+CONFIG_SWCONFIG=m
+# CONFIG_SWCONFIG_LEDS is not set
 
 #
 # MII PHY device drivers
@@ -2178,12 +2180,17 @@ CONFIG_LSI_ET1011C_PHY=m
 CONFIG_MICREL_PHY=m
 CONFIG_FIXED_PHY=y
 CONFIG_MDIO_BITBANG=m
-# CONFIG_MDIO_GPIO is not set
+CONFIG_MDIO_GPIO=m
 CONFIG_MDIO_SUN4I=m
 CONFIG_MDIO_BUS_MUX=m
 CONFIG_MDIO_BUS_MUX_GPIO=m
 CONFIG_MDIO_BUS_MUX_MMIOREG=m
 CONFIG_GATEWORKS_GW16083=m
+CONFIG_B53=m
+CONFIG_B53_PHY_DRIVER=m
+# CONFIG_B53_MMAP_DRIVER is not set
+# CONFIG_B53_SRAB_DRIVER is not set
+CONFIG_B53_PHY_FIXUP=y
 # CONFIG_PLIP is not set
 CONFIG_PPP=m
 CONFIG_PPP_BSDCOMP=m
@@ -3348,10 +3355,10 @@ CONFIG_VIDEO_V4L2=m
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 CONFIG_VIDEO_TUNER=m
 CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF_GEN=y
+CONFIG_VIDEOBUF_GEN=m
 CONFIG_VIDEOBUF_DMA_SG=m
 CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=y
+CONFIG_VIDEOBUF_DMA_CONTIG=m
 CONFIG_VIDEOBUF_DVB=m
 CONFIG_VIDEOBUF2_CORE=m
 CONFIG_VIDEOBUF2_MEMOPS=m
@@ -3603,9 +3610,11 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
 # CONFIG_VIDEO_CAFE_CCIC is not set
 # CONFIG_VIDEO_DM6446_CCDC is not set
 CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
-CONFIG_VIDEO_OMAP2_VOUT=y
+CONFIG_VIDEO_OMAP2_VOUT=m
 CONFIG_VIDEO_TIMBERDALE=m
 CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_SCALE_CROP=m
+CONFIG_SOC_CAMERA_PLATFORM=m
 CONFIG_VIDEO_MX3=m
 CONFIG_VIDEO_RCAR_VIN=m
 # CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
@@ -3649,7 +3658,7 @@ CONFIG_SMS_SIANO_RC=y
 #
 CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=y
+CONFIG_VIDEO_IR_I2C=m
 
 #
 # Audio decoders, processors and mixers
@@ -3735,24 +3744,24 @@ CONFIG_SOC_CAMERA_OV9640=m
 CONFIG_SOC_CAMERA_OV9740=m
 CONFIG_SOC_CAMERA_RJ54N1=m
 CONFIG_SOC_CAMERA_TW9910=m
-CONFIG_MEDIA_TUNER=y
-CONFIG_MEDIA_TUNER_SIMPLE=y
-CONFIG_MEDIA_TUNER_TDA8290=y
-CONFIG_MEDIA_TUNER_TDA827X=y
-CONFIG_MEDIA_TUNER_TDA18271=y
-CONFIG_MEDIA_TUNER_TDA9887=y
-CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_MT2060=m
 CONFIG_MEDIA_TUNER_MT2063=m
 CONFIG_MEDIA_TUNER_MT2266=m
 CONFIG_MEDIA_TUNER_MT2131=m
 CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=y
-CONFIG_MEDIA_TUNER_XC5000=y
-CONFIG_MEDIA_TUNER_XC4000=y
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MXL5005S=m
 CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=y
+CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_MEDIA_TUNER_MAX2165=m
 CONFIG_MEDIA_TUNER_TDA18218=m
 CONFIG_MEDIA_TUNER_FC0011=m
@@ -4850,7 +4859,7 @@ CONFIG_RTC_DRV_PL030=m
 CONFIG_RTC_DRV_PL031=m
 CONFIG_RTC_DRV_VT8500=m
 CONFIG_RTC_DRV_SUNXI=y
-CONFIG_RTC_DRV_MV=m
+CONFIG_RTC_DRV_MV=y
 CONFIG_RTC_DRV_MXC=m
 CONFIG_RTC_DRV_SNVS=m
 CONFIG_RTC_DRV_MOXART=m
index b02167d311b534d2a5fbc96b4ca1760b3e5c4f64..17a7305ebd0df2c61f0f858fff7d6cceb39f4935 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.14.22 Kernel Configuration
+# Linux/arm 3.14.30 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -1325,7 +1325,7 @@ CONFIG_DM_DELAY=m
 # CONFIG_DM_SWITCH is not set
 # CONFIG_TARGET_CORE is not set
 CONFIG_NETDEVICES=y
-CONFIG_MII=y
+CONFIG_MII=m
 CONFIG_NET_CORE=y
 CONFIG_BONDING=m
 CONFIG_DUMMY=m
@@ -1465,7 +1465,7 @@ CONFIG_USB_NET_DM9601=m
 CONFIG_USB_NET_SR9700=m
 CONFIG_USB_NET_SR9800=m
 CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
 CONFIG_USB_NET_PLUSB=m
index 5869b8818b7d9a72d247bcafe4064995fc5af4ff..87687d962ee66c37826bba30edbc38b0d3b1bb52 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.14.22 Kernel Configuration
+# Linux/x86 3.14.30 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -421,8 +421,6 @@ CONFIG_X86_MCE_THRESHOLD=y
 # CONFIG_X86_MCE_INJECT is not set
 CONFIG_X86_THERMAL_VECTOR=y
 CONFIG_VM86=y
-CONFIG_X86_16BIT=y
-CONFIG_X86_ESPFIX32=y
 CONFIG_TOSHIBA=m
 CONFIG_I8K=m
 # CONFIG_X86_REBOOTFIXUPS is not set
@@ -724,6 +722,7 @@ CONFIG_HAVE_AOUT=y
 CONFIG_BINFMT_MISC=y
 CONFIG_COREDUMP=y
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_IOSF_MBI=m
 CONFIG_NET=y
 
 #
index 54cfb0642b3a130b4ef1dad6ff12d42e66a1306b..c5a437a59688d615af27b32a7fae0feedf9f0c5c 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.14.22 Kernel Configuration
+# Linux/x86 3.14.30 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
@@ -431,8 +431,6 @@ CONFIG_X86_MCE_THRESHOLD=y
 # CONFIG_X86_MCE_INJECT is not set
 CONFIG_X86_THERMAL_VECTOR=y
 CONFIG_VM86=y
-CONFIG_X86_16BIT=y
-CONFIG_X86_ESPFIX32=y
 CONFIG_TOSHIBA=m
 CONFIG_I8K=m
 # CONFIG_X86_REBOOTFIXUPS is not set
@@ -738,6 +736,7 @@ CONFIG_HAVE_AOUT=y
 CONFIG_BINFMT_MISC=y
 CONFIG_COREDUMP=y
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_IOSF_MBI=m
 CONFIG_NET=y
 
 #
@@ -3832,7 +3831,6 @@ CONFIG_DVB_TDA826X=m
 CONFIG_DVB_TUA6100=m
 CONFIG_DVB_CX24116=m
 CONFIG_DVB_CX24117=m
-CONFIG_DVB_M88DC2800=m
 CONFIG_DVB_SI21XX=m
 CONFIG_DVB_TS2020=m
 CONFIG_DVB_DS3000=m
@@ -3914,6 +3912,8 @@ CONFIG_DVB_A8293=m
 CONFIG_DVB_LGS8GXX=m
 CONFIG_DVB_ATBM8830=m
 CONFIG_DVB_TDA665x=m
+CONFIG_DVB_DVBSKY_M88DS3103=m
+CONFIG_DVB_M88DC2800=m
 CONFIG_DVB_IX2505V=m
 CONFIG_DVB_IT913X_FE=m
 CONFIG_DVB_M88RS2000=m
diff --git a/config/lib/firmware/brcm/brcmfmac4329-sdio.txt b/config/lib/firmware/brcm/brcmfmac4329-sdio.txt
new file mode 100644 (file)
index 0000000..3832006
--- /dev/null
@@ -0,0 +1,68 @@
+# bcm4329 NVRAM file for Wandboard Dual
+
+sromrev=3
+vendid=0x14e4
+devid=0x432f
+boardtype=0x53e
+
+boardrev=0x41
+
+#boardflags=0x1200
+boardflags=0x200
+
+# Specify the xtalfreq if it is otherthan 38.4MHz
+xtalfreq=37400
+
+aa2g=3
+aa5g=0
+
+ag0=255
+#tri2g=0x64
+
+# 11g paparams
+pa0b0=5542,5542,5542
+pa0b1=64244,64244,64244
+pa0b2=65202,65202,65202
+
+pa0itssit=62
+pa0maxpwr=74
+opo=0
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+
+# 11g rssi params
+rssismf2g=0xa,0xa,0xa
+rssismc2g=0xb,0xb,0xb
+rssisav2g=0x3,0x3,0x3
+bxa2g=0
+
+# country code
+ccode=ALL
+cctl=0x0
+cckdigfilttype=0
+ofdmdigfilttype=1
+
+rxpo2g=0
+
+boardnum=1
+macaddr=DE:AD:BE:EF:00:00
+
+# xtal pu and pd time control variable
+# pu time is driver default (0x1501)
+#r13t=0x1501
+
+#######
+nocrc=1
+
+#for mfgc
+otpimagesize=182
+
+# sdio extra configs
+hwhdr=0x05ffff031030031003100000
+
+#This generates empty F1, F2 and F3 tuple chains, and may be used if the host SDIO stack does not require the standard tuples.
+#RAW1=80 02 fe ff
+
+#This includes the standard FUNCID and FUNCE tuples in the F1, F2, F3 and common CIS.
+RAW1=80 32 fe 21 02 0c 00 22 2a 01 01 00 00 c5 0 e6 00 00 00 00 00 40 00 00 ff ff 80 00 00 00 00 00 00 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 20 04 D0 2 29 43 21 02 0c 00 22 04 00 20 00 5A
+nvramver=4.218.214.0
diff --git a/config/lib/firmware/brcm/brcmfmac4330-sdio.txt b/config/lib/firmware/brcm/brcmfmac4330-sdio.txt
new file mode 100644 (file)
index 0000000..c5c2611
--- /dev/null
@@ -0,0 +1,122 @@
+# bcm4330 NVRAM file for Wandboard Quad
+
+manfid=0x2d0
+prodid=0x0532
+vendid=0x14e4
+devid=0x4360
+boardtype=0x0532
+boardrev=0x20
+boardflags=0x10080201
+
+nocrc=1
+xtalfreq=37400
+xtalmode=0x20,0x4,0
+boardnum=22
+macaddr=DE:AD:BE:EF:00:00
+ag0=252
+ag1=252
+aa2g=1
+aa5g=1
+ccode=EU
+regrev=5
+
+#for BT-coexistence
+btc_params80=0
+btc_params6=10
+btc_params8=10000
+
+sd_gpout=0
+# sd_oobonly=1
+muxenab=0x10
+
+# 2G PA param_B42R 110927
+pa0b0=0x12E4
+pa0b1=0xFE09
+pa0b2=0xFF9A
+#pa0itssit=62
+rssismf2g=0xa
+rssismc2g=0x3
+rssisav2g=0x7
+
+# rssi params for 5GHz B42R_110803
+#rssismf5g=0x4
+rssismf5g=0xa
+rssismc5g=0x7
+rssisav5g=0x1
+#PA parameters for lower band
+pa1lob0=0x144F
+pa1lob1=0xFD6B
+pa1lob2=0xFF3B
+#PA parameters for midband
+pa1b0=0x139C
+pa1b1=0xFD87
+pa1b2=0xFF4F
+#PA parameters for high band
+pa1hib0=0x12CA
+pa1hib1=0xFD9A
+pa1hib2=0xFF4E
+
+# 2G PA offset
+maxp2ga0=64
+sromrev=3
+cckpo=0
+ofdm2gpo=0x66666666
+mcs2gpo0=0xaaaa
+mcs2gpo1=0xaaaa
+
+# 5G PA offset
+maxp5ga0=66
+maxp5gla0=66
+maxp5gha0=66
+ofdm5gpo=0x22222222
+ofdm5glpo=0x11111111
+ofdm5ghpo=0x22222222
+mcs5gpo0=0x6666
+mcs5gpo1=0x6666
+mcs5glpo0=0x5555
+mcs5glpo1=0x5555
+mcs5ghpo0=0x6666
+mcs5ghpo1=0x6666
+
+cckPwrOffset=4
+cckdigfilttype=22
+ofdmdigfilttype=2
+extpagain5g=2
+#wl0id=0x431b
+
+# For 2GHz Tx EVM/SM
+rfreg033=0x19
+rfreg033_cck=0x1d
+pacalidx2g=65
+dacrate2g=160
+txalpfbyp2g=1
+bphyscale=17
+
+# 5GHz LOFT and IQ CAL
+txgaintbl5g=1
+txiqlopapu5g=1
+txiqlopag5g=0x10
+iqlocalidx5g=24
+
+# 5GHz Noise CAL parameter
+noise_cal_po_5g=5
+noise_cal_enable_5g=0
+
+# 2GHz RxPER at low rates
+noise_cal_ref_2g=56
+noise_cal_po_bias_2g=-4
+noise_cal_enable_2g=1
+
+# Max input level on a-band
+triso5g=9
+
+# Tx power control, especially temp.
+tssitime=1
+
+#fc+1.7GHz Spur Elimination
+loidacmode5g=1
+
+swctrlmap_2g=0x84048404, 0x82028202, 0x84048404, 0x010202, 0x1ff
+swctrlmap_5g=0xC040C040, 0xB030A020, 0xA020C040, 0x010A02, 0x2F8
+
+
diff --git a/config/lib/firmware/brcm/brcmfmac43362-sdio.txt b/config/lib/firmware/brcm/brcmfmac43362-sdio.txt
new file mode 100644 (file)
index 0000000..d967bfe
--- /dev/null
@@ -0,0 +1,58 @@
+# bcm43362 NVRAM file for LeMaker Banana Pro and Cubietruck
+#AP6210_NVRAM_V1.2_03192013
+
+manfid=0x2d0
+prodid=0x492
+vendid=0x14e4
+devid=0x4343
+boardtype=0x0598
+
+# Board Revision is P307, same nvram file can be used for P304, P305, P306 and P307 as the tssi pa params used are same
+#Please force the automatic RX PER data to the respective board directory if not using P307 board, for e.g. for P305 boards force the data into the following directory /projects/BCM43362/a1_labdata/boardtests/results/sdg_rev0305
+boardrev=0x1307
+boardnum=777
+xtalfreq=26000
+boardflags=0x80201
+boardflags2=0x80
+sromrev=3
+wl0id=0x431b
+macaddr=DE:AD:BE:EF:00:00
+aa2g=1
+ag0=2
+maxp2ga0=74
+cck2gpo=0x2222
+ofdm2gpo=0x44444444
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+pa0maxpwr=56
+
+#P207 PA params
+#pa0b0=5447
+#pa0b1=-658
+#pa0b2=-175<div></div>
+
+#Same PA params for P304,P305, P306, P307
+
+pa0b0=5447
+pa0b1=-607
+pa0b2=-160
+pa0itssit=62
+pa1itssit=62
+
+
+cckPwrOffset=5
+ccode=0
+rssismf2g=0xa
+rssismc2g=0x3
+rssisav2g=0x7
+triso2g=0
+noise_cal_enable_2g=0
+noise_cal_po_2g=0
+swctrlmap_2g=0x04040404,0x02020202,0x02020202,0x010101,0x1ff
+temp_add=29767
+temp_mult=425
+
+btc_flags=0x6
+btc_params0=5000
+btc_params1=1000
+btc_params6=63
index e529e6644f92b9be10dc7d1a30b1304bbd6957bc..6347cafc4c90d97677e2c65339ff3041855c8f90 100755 (executable)
@@ -118,6 +118,7 @@ etc/rc.d/init.d/sshd
 etc/rc.d/init.d/static-routes
 #etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
+etc/rc.d/init.d/swconfig
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
 etc/rc.d/init.d/teamspeak
@@ -224,6 +225,7 @@ etc/rc.d/rcsysinit.d/S45udev_retry
 etc/rc.d/rcsysinit.d/S50cleanfs
 etc/rc.d/rcsysinit.d/S60setclock
 etc/rc.d/rcsysinit.d/S70console
+etc/rc.d/rcsysinit.d/S73swconfig
 etc/rc.d/rcsysinit.d/S75firstsetup
 etc/rc.d/rcsysinit.d/S80localnet
 etc/rc.d/rcsysinit.d/S85firewall
index 50ac43471b66c588c34a86d798a9633c931f0bb5..f5ae58567f7b66fe8b9fb9efdb90c7e271c7bfa6 100644 (file)
@@ -548,6 +548,8 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/siano/smsdvb.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/siano/smsmdtv.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tveeprom.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-core
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-core/dvb-core.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/a8293.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb-frontends/af9013.ko
@@ -649,6 +651,7 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cs53l32a.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cx25840
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/cx25840/cx25840.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/ir-kbd-i2c.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/m52790.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/msp3400.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/mt9v011.ko
@@ -684,6 +687,7 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/vp27smpx.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/wm8739.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/i2c/wm8775.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/media.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/b2c2
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko
@@ -878,6 +882,7 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/lirc_dev.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/mceusb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-core.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-loopback.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/redrat3.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/streamzap.ko
@@ -890,8 +895,10 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/fc2580.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/m88ts2022.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/max2165.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mc44s803.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2060.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2063.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt20xx.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2131.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mt2266.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/mxl5005s.ko
@@ -900,8 +907,17 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/r820t.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda18212.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda18218.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda827x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda8290.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tda9887.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tua9001.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tuner-simple.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tuner-types.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tuner-xc2028.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/tuner_it913x.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/xc4000.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/tuners/xc5000.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/au0828
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/au0828/au0828.ko
@@ -1049,6 +1065,8 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/usb/zr364xx/zr364xx.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/tuner.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/v4l2-common.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/v4l2-dv-timings.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-core.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko
@@ -1059,6 +1077,7 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-memops.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/v4l2-core/videodev.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/memstick.ko
index eee6ad22ce6a38b006cbcfcd663cb1f260f7926a..fa07629b8d1c309d8c0b43980293ef61156602f7 100644 (file)
@@ -110,8 +110,10 @@ boot/dtb-KVER-ipfire-multi
 #boot/dtb-KVER-ipfire-multi/sun5i-a13-olinuxino.dtb
 #boot/dtb-KVER-ipfire-multi/sun6i-a31-colombus.dtb
 #boot/dtb-KVER-ipfire-multi/sun7i-a20-bananapi.dtb
+#boot/dtb-KVER-ipfire-multi/sun7i-a20-bananapro.dtb
 #boot/dtb-KVER-ipfire-multi/sun7i-a20-cubieboard2.dtb
 #boot/dtb-KVER-ipfire-multi/sun7i-a20-cubietruck.dtb
+#boot/dtb-KVER-ipfire-multi/sun7i-a20-lamobo-r1.dtb
 #boot/dtb-KVER-ipfire-multi/sun7i-a20-olinuxino-micro.dtb
 #boot/dtb-KVER-ipfire-multi/sun7i-a20-pcduino3.dtb
 #boot/dtb-KVER-ipfire-multi/vexpress-v2p-ca15-tc1.dtb
@@ -596,6 +598,8 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsdvb.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/siano/smsmdtv.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/common/tveeprom.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-core
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-core/dvb-core.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/a8293.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/dvb-frontends/af9013.ko
@@ -694,6 +698,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cs53l32a.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/cx25840/cx25840.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/ir-kbd-i2c.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/m52790.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/msp3400.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/mt9v011.ko
@@ -728,6 +733,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/vp27smpx.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8739.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/i2c/wm8775.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/media.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/b2c2/b2c2-flexcop-pci.ko
@@ -793,6 +799,8 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/pci/ttpci/ttpci-eeprom.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/m2m-deinterlace.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/omap
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/omap/omap-vout.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/sh_veu.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/platform/soc_camera/mx3_camera.ko
@@ -925,6 +933,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/keymaps/rc-winfast.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/lirc_dev.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/mceusb.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/rc-core.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/rc-loopback.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/redrat3.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/rc/streamzap.ko
@@ -938,8 +947,10 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/fc2580.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/m88ts2022.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/max2165.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mc44s803.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2060.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2063.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt20xx.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2131.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mt2266.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/mxl5005s.ko
@@ -948,8 +959,17 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/r820t.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18212.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18218.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda18271.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda827x.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda8290.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tda9887.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tua9001.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner-simple.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner-types.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner-xc2028.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/tuner_it913x.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/xc4000.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/tuners/xc5000.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/au0828/au0828.ko
@@ -1092,7 +1112,11 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/usb/zr364xx/zr364xx.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/tuner.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-common.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-dv-timings.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-core.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dma-contig.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-dvb.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko
@@ -1100,6 +1124,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-memops.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/media/v4l2-core/videodev.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/memstick
 #lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core
 #lib/modules/KVER-ipfire-multi/kernel/drivers/memstick/core/memstick.ko
@@ -1261,8 +1286,6 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/jme.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko
-#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvmdio.ko
-#lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/mvneta.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/skge.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/marvell/sky2.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ethernet/mellanox
@@ -1352,6 +1375,9 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/amd.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/at803x.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/b53
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/b53/b53_common.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/b53/b53_mdio.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/bcm87xx.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/broadcom.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/cicada.ko
@@ -1362,6 +1388,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/lxt.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/marvell.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-gpio.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-gpio.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux-mmioreg.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/mdio-mux.ko
@@ -1372,6 +1399,7 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/realtek.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/smsc.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/swconfig.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/phy/vitesse.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/ppp/bsd_comp.ko
@@ -1605,7 +1633,6 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-max6900.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-moxart.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-msm6242.ko
-#lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mv.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-mxc.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf2127.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/rtc/rtc-pcf8523.ko
@@ -2684,4 +2711,5 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/modules.symbols
 #lib/modules/KVER-ipfire-multi/modules.symbols.bin
 #lib/modules/KVER-ipfire-multi/source
+usr/include/linux/switch.h
 boot/uInit-ipfire-multi
index ee74ac3452c7fb4c672ea8de6f4d08f2e11b9df7..dbde8c05b83e1e61a91fc2033c354600c8e18e79 100644 (file)
@@ -778,6 +778,7 @@ lib/modules/KVER-ipfire-rpi
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ifb.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/imq.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvlan.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/mii.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/netconsole.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/libphy.ko
@@ -824,8 +825,10 @@ lib/modules/KVER-ipfire-rpi
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rtl8150.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sierra_net.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc75xx.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc95xx.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sr9700.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sr9800.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/usbnet.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/zaurus.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/veth.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless
diff --git a/config/rootfiles/common/armv5tel/swconfig b/config/rootfiles/common/armv5tel/swconfig
new file mode 100644 (file)
index 0000000..720791e
--- /dev/null
@@ -0,0 +1 @@
+usr/bin/swconfig
index 0f364095085cba5a61df472ba657a401b4468b5c..2675dd0a8fb4b15ec6a35c8f3675d212dd636655 100644 (file)
@@ -74,7 +74,7 @@ usr/bin/renice
 #usr/bin/setarch
 usr/bin/setsid
 #usr/bin/setterm
-#usr/bin/tailf
+usr/bin/tailf
 #usr/bin/taskset
 #usr/bin/ul
 #usr/bin/unshare
index 74f0850ed215edc4775e0355625cdaae1fb6957c..1e6f6025a496c305bc67997f411c5d8846482e15 100644 (file)
@@ -1,8 +1,8 @@
 lib/udev/rules.d/85-regulatory.rules
 #root/.python-eggs
-#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-i586.egg-tmp
-#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-i586.egg-tmp/M2Crypto
-#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-i586.egg-tmp/M2Crypto/__m2crypto.so
+#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-MACHINE.egg-tmp
+#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-MACHINE.egg-tmp/M2Crypto
+#root/.python-eggs/M2Crypto-0.21.1-py2.7-linux-MACHINE.egg-tmp/M2Crypto/__m2crypto.so
 sbin/crda
 sbin/regdbdump
 #usr/include/reglib
index 34c87f27694e6a69727a65ae40588d53c9368cc1..9b8d484e3c565590806e09038e8a68a9eafc7cf9 100644 (file)
@@ -75,7 +75,7 @@ usr/bin/renice
 #usr/bin/setarch
 usr/bin/setsid
 #usr/bin/setterm
-#usr/bin/tailf
+usr/bin/tailf
 #usr/bin/taskset
 #usr/bin/ul
 #usr/bin/unshare
index 9a4d8ed975c4feafe1dfa0e2dd2a409ad8b2bf96..663aef57aed0bfc25dba38bbe6777ea8921fb9f8 100644 (file)
@@ -20,6 +20,7 @@ etc/ld.so.conf
 etc/logrotate.conf
 etc/mime.types
 etc/modprobe.d
+etc/modprobe.d/btmrvl_sdio.conf
 etc/modprobe.d/cfg80211.conf
 etc/modprobe.d/pcspeaker.conf
 etc/modules.conf
@@ -45,6 +46,11 @@ etc/system-release
 #home
 home/nobody
 #lib
+#lib/firmware
+#lib/firmware/brcm
+lib/firmware/brcm/brcmfmac4329-sdio.txt
+lib/firmware/brcm/brcmfmac4330-sdio.txt
+lib/firmware/brcm/brcmfmac43362-sdio.txt
 #media
 media/cdrom
 media/floppy
@@ -60,6 +66,7 @@ root/.bash_logout
 root/.bash_profile
 root/.bashrc
 root/ipfire
+run
 #sbin
 #srv
 #usr/bin
@@ -94,7 +101,6 @@ usr/local/bin/scanhd
 usr/local/bin/settime
 usr/local/bin/timecheck
 usr/local/bin/timezone-transition
-#usr/local/bin/uname
 usr/local/bin/update-bootloader
 usr/local/bin/update-lang-cache
 #usr/local/include
@@ -138,7 +144,6 @@ usr/share/doc/licenses/GPLv3
 #usr/share/misc
 #usr/share/terminfo
 #usr/share/zoneinfo
-run
 #var
 #var/cache
 var/empty
index 18e9b4d2433cbceb33fa5ac82618577040e4f66e..37c2aaab1fd3a06b028912c3eee7da956e13bf60 100644 (file)
@@ -14,7 +14,10 @@ etc/sysconfig/firewall.local
 etc/sysconfig/rc.local
 etc/udev/rules.d/30-persistent-network.rules
 srv/web/ipfire/html/proxy.pac
-var/ipfire/ovpn
+var/ipfire/time
+var/ipfire/ovpn/ccd.conf
+var/ipfire/ovpn/ccdroute
+var/ipfire/ovpn/ccdroute2
 var/log/cache
 var/state/dhcp/dhcpd.leases
 var/updatecache
diff --git a/config/rootfiles/core/86/filelists/armv5tel/swconfig b/config/rootfiles/core/86/filelists/armv5tel/swconfig
new file mode 120000 (symlink)
index 0000000..e5606ed
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/swconfig
\ No newline at end of file
index dcdb65c9607c9afdc5665068d9239485f2170668..9a07cbcf57193d1de0bbed6b0c75d19ed83d7b37 100644 (file)
@@ -1,8 +1,12 @@
 etc/system-release
 etc/issue
+etc/modprobe.d/btmrvl_sdio.conf
+etc/rc.d/init.d/collectd
+etc/rc.d/init.d/leds
 opt/pakfire/etc/pakfire.conf
 usr/lib/firewall/rules.pl
 usr/local/bin/update-bootloader
 var/ipfire/header.pl
 var/ipfire/langs
 var/ipfire/lang.pl
+var/ipfire/ovpn/openssl/ovpn.cnf
index 6a7a43ca169ada62fd05bbd5e1e06e2fa32214f0..f923b15d1c0850b072fbc1b5e9474f27826d9bbb 100644 (file)
@@ -200,3 +200,6 @@ lib/firmware/ti-connectivity/wl18xx-fw-3.bin
 lib/firmware/ti-connectivity/wl18xx-fw-4.bin
 lib/firmware/v4l-cx23885-enc-broken.fw
 lib/firmware/WHENCE
+lib/firmware/brcm/brcmfmac4329-sdio.txt
+lib/firmware/brcm/brcmfmac4330-sdio.txt
+lib/firmware/brcm/brcmfmac43362-sdio.txt
index bdb96fc6e475c48cb6bc9f1467b28d1a064957d7..ab72e684e26a6268a5429ca005b2ec3743be47e6 100644 (file)
 . /opt/pakfire/lib/functions.sh
 /usr/local/bin/backupctrl exclude >/dev/null 2>&1
 
-function add_to_backup ()
-{
-       # Add path to ROOTFILES but remove old entries to prevent double
-       # files in the tar
-       grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp
-       mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES
-       echo $1 >> /opt/pakfire/tmp/ROOTFILES
-}
-
 #
 # Remove old core updates from pakfire cache to save space...
 core=86
@@ -65,23 +56,6 @@ esac
 #
 KVER="xxxKVERxxx"
 
-#
-# check if we the backup file already exist
-if [ -e /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz ]; then
-    echo Moving backup to backup-old ...
-    mv -f /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \
-       /var/ipfire/backup/core-upgrade${core}_${KVER}-old.tar.xz
-fi
-echo First we made a backup of all files that was inside of the
-echo update archive. This may take a while ...
-# Add some files that are not in the package to backup
-add_to_backup lib/modules
-add_to_backup boot
-
-# Backup the files
-tar cJvf /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \
-    -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1
-
 # Check diskspace on root
 ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
 
@@ -95,7 +69,7 @@ fi
 echo
 echo Update Kernel to $KVER ...
 #
-# Remove old kernel, configs, initrd, modules ...
+# Remove old kernel, configs, initrd, modules, dtb's ...
 #
 rm -rf /boot/System.map-*
 rm -rf /boot/config-*
@@ -104,17 +78,37 @@ rm -rf /boot/initramfs-*
 rm -rf /boot/vmlinuz-*
 rm -rf /boot/uImage-ipfire-*
 rm -rf /boot/uInit-ipfire-*
+rm -rf /boot/dtb-*-ipfire-*
 rm -rf /lib/modules
 
 case "$(uname -m)" in
        i?86)
-               # Backup grub.conf
-               cp -vf /boot/grub/grub.conf /boot/grub-legacy.conf
+               # Backup old grub config
+               if [ -f /boot/grub/grub.conf ]; then
+                       cp -vf /boot/grub/grub.conf /boot/old-grub-config
+               fi
+               if [ -f /boot/grub/menu.lst ]; then
+                       cp -vf /boot/grub/menu.lst /boot/old-grub-config
+               fi
+               if [ -f /boot/grub/grub.cfg ]; then
+                       cp -vf /boot/grub/grub.cfg /boot/old-grub-config
+               fi
 
                # Remove all files that belong to GRUB-legacy
                rm -rfv /boot/grub
                ;;
+       armv*)
+               # Backup uEnv.txt if exist
+               if [ -e /boot/uEnv.txt ]; then
+                       cp -vf /boot/uEnv.txt /boot/uEnv.txt.org
+               fi
+
+               # work around the u-boot folder detection bug
+               mkdir -pv /boot/dtb-$KVER-ipfire-kirkwood
+               mkdir -pv /boot/dtb-$KVER-ipfire-multi
+               ;;
 esac
+
 #
 #Stop services
 /etc/init.d/snort stop
@@ -139,6 +133,8 @@ if [ $BOOTSPACE -lt 1000 ]; then
                        # Special handling for old kirkwood images.
                        # (install only kirkwood kernel)
                        rm -rf /boot/*
+                       # work around the u-boot folder detection bug
+                       mkdir -pv /boot/dtb-$KVER-ipfire-kirkwood
                        tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \
                                --numeric-owner -C / --wildcards 'boot/*-kirkwood*'
                        ;;
@@ -174,9 +170,9 @@ case "$(uname -m)" in
                #
                echo
                echo Update grub configuration ...
-               if grep -qE "^serial" /boot/grub-legacy.conf; then
+               if grep -qE "^serial" /boot/old-grub-config; then
                        sed -i /etc/default/grub \
-                               -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g"
+                               -e "s|panic=10|& console=ttyS0,115200n8|g"
                        echo "GRUB_TERMINAL=\"serial\"" >> /etc/default/grub
                        echo "GRUB_SERIAL_COMMAND=\"serial --unit=0 --speed=115200\"" >> /etc/default/grub
                fi
@@ -206,18 +202,6 @@ if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
        fi
 fi
 
-# Force reinstall xen kernel if it was installed
-if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then
-       echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen
-       echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-xen
-       echo "Release: 0"     >> /opt/pakfire/db/installed/meta-linux-xen
-       echo "Name: linux-xen" > /opt/pakfire/db/meta/meta-linux-xen
-       echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-xen
-       echo "Release: 0"     >> /opt/pakfire/db/meta/meta-linux-xen
-       # Add xvc0 to /etc/securetty
-       echo "xvc0" >> /etc/securetty
-fi
-
 #
 # After pakfire has ended run it again and update the lists and do upgrade
 #
@@ -232,7 +216,7 @@ echo '/opt/pakfire/pakfire update -y --force'             >> /tmp/pak_update
 echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
 echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
 echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
-echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub/uboot config"' >> /tmp/pak_update
 echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update
 echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update
 echo 'touch /var/run/need_reboot ' >> /tmp/pak_update
index c78a3c4ff697b4cf91e82f1bab1a42d64f117443..ec9022ddfad8305013f9efd1200818726c33bbf2 100644 (file)
@@ -272,7 +272,7 @@ my @temp;
 foreach (@channellist_cmd){
 $_ =~ /(.*) \[(\d+)(.*)\]/;
 $channel = $2;chomp $channel;
-if ( $channel =~ /\d+/ ){push(@temp,$channel);}
+if ( $channel =~ /\d+/ ){push(@temp,$channel + 0);}
 }
 @channellist = @temp;
 } else {
@@ -283,7 +283,7 @@ my @temp;
 foreach (@channellist_cmd){
 $_ =~ /(.*)Channel (\d+)(.*):/;
 $channel = $2;chomp $channel;
-if ( $channel =~ /\d+/ ){push(@temp,$channel);}
+if ( $channel =~ /\d+/ ){push(@temp,$channel + 0);}
 }
 @channellist = @temp;
 }
index cd48700d2b46f9c38ea3a67453f698dbbcb3c0f2..0eebe818db76d2fdfb745ae1136043bc7a2e3971 100644 (file)
@@ -92,6 +92,14 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_add_libertas_uap.patch
 
+       # smsc mac address patch for pandaboard and raspberry pi
+ifeq "$(KCFG)" "-multi"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch
+endif
+ifeq "$(KCFG)" "-rpi"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10-smsc95xx-add_mac_addr_param.patch
+endif
+
        # generate config
        cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX)/ allmodconfig
 
index 6418686448ac411193d5ec3baeec0679bbec7aa2..11939b6cc20dc29304ecc3e69185067fdceb59ba 100644 (file)
--- a/lfs/fping
+++ b/lfs/fping
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2015  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.4
+VER        = 3.10
 
 THISAPP    = fping-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = fping
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a4bc97804e630dbf26dfac8f28c78091
+$(DL_FILE)_MD5 = 6a0ddecb671df1d580d20c0dd1095773
 
 install : $(TARGET)
 
index df3e39224f749f264de68ed2cdcacc659d2bc840..11d374e3b886a13fabdfbfca70309112c22ef3e7 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
@@ -268,12 +268,21 @@ endif
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966775.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966778.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970090.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh995972.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1008310.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1019916.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1022022.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1091162.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1098050.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1027101.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1027261.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1032628.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1044628.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1111460.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1133809-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1133809-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1139571.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1154563.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1170121.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1183533.patch
 
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch
index c381a0a81fcb70fcfc80c7fada5cdd14421f2202..74c2ae86ef37a644b8bbce04b51995ba374ca6e3 100644 (file)
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = hostapd
-PAK_VER    = 31
+PAK_VER    = 33
 
 DEPS       = ""
 
index 4894710ac371923dc6c0921723e69593fbb9f726..f656c72a7458025459f1481a568a1721f4059804 100755 (executable)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2015  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        #
@@ -194,10 +194,12 @@ $(TARGET) :
                ln -sf any /etc/rc.d/init.d/networking/$$i; \
        done
 
-       # ARM does not need checkfstab and acpid
+       # ARM does not need checkfstab and acpid, intel no swconfig
 ifeq "$(MACHINE_TYPE)" "arm"
        rm -vf /etc/rc.d/init.d/{acpid,checkfstab}
+       ln -sf ../init.d/swconfig    /etc/rc.d/rcsysinit.d/S73swconfig
 else
+       rm -vf /etc/rc.d/init.d/swconfig
        ln -sf ../init.d/acpid       /etc/rc.d/rc3.d/S12acpid
        ln -sf ../init.d/acpid       /etc/rc.d/rc0.d/K87acpid
        ln -sf ../init.d/acpid       /etc/rc.d/rc6.d/K87acpid
index 5b0de460a656a46aa8a3628fd2d1462d03fef39d..6ae69edf9ab2c73f8ca6ff1804e4e634876753ae 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2014  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2015  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        #
 
 include Config
 
-VER        = 3.14.27
+VER        = 3.14.31
 
-RPI_PATCHES = 3.14.27-grsec-ipfire1
-A7M_PATCHES = 3.14.27-grsec-ipfire1
-GRS_PATCHES = grsecurity-3.0-3.14.27-201412170659.patch.xz
+RPI_PATCHES = 3.14.31-grsec-ipfire1
+A7M_PATCHES = 3.14.31-grsec-ipfire1
+GRS_PATCHES = grsecurity-3.0-3.14.31-201501310705.patch.xz
 
 THISAPP    = linux-$(VER)
 DL_FILE    = linux-$(VER).tar.xz
@@ -37,7 +37,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 CFLAGS     =
 CXXFLAGS   =
 
-PAK_VER    = 55
+PAK_VER    = 58
 DEPS      = ""
 
 VERSUFIX=ipfire$(KCFG)
@@ -77,10 +77,10 @@ rpi-patches-$(RPI_PATCHES).patch.xz         = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).
 arm7-multi-patches-$(A7M_PATCHES).patch.xz     = $(URL_IPFIRE)/arm7-multi-patches-$(A7M_PATCHES).patch.xz
 $(GRS_PATCHES)                                 = $(URL_IPFIRE)/$(GRS_PATCHES)
 
-$(DL_FILE)_MD5                                 = 0af2d0702df6ee6d7181e697e0af3481
-rpi-patches-$(RPI_PATCHES).patch.xz_MD5                = 543a77d5602829f78b18788e5cb82188
-arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = 7014ce20d9ede588ea2c244d901cbeeb
-$(GRS_PATCHES)_MD5                             = 66af1d48af9dce2d0eb363bbc6bfb668
+$(DL_FILE)_MD5                                 = f37ac2b5675ac59e46103f81e5f31624
+rpi-patches-$(RPI_PATCHES).patch.xz_MD5                = 6c18ea5fb919e09e821b9b2018a7f93e
+arm7-multi-patches-$(A7M_PATCHES).patch.xz_MD5 = efcfe5889f120d879387dd4ebe881587
+$(GRS_PATCHES)_MD5                             = af534d3efa6926fa2d88d9dcaec8462f
 
 install : $(TARGET)
 
@@ -171,6 +171,12 @@ ifeq "$(KCFG)" "-multi"
 
        # Apply Arm7-multiarch kernel patches.
        cd $(DIR_APP) && xzcat $(DIR_DL)/arm7-multi-patches-$(A7M_PATCHES).patch.xz | patch -Np1
+
+       # Update Banana Pi, Lamobo-R1 and add Banana Pro dtb
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.x-update_banana_dts.patch
+
+       # Install switch api userspace header
+       cd $(DIR_APP) && install -v -m644 include/uapi/linux/switch.h /usr/include/linux/
 endif
 
 ifeq "$(KCFG)" "-rpi"
diff --git a/lfs/mtr b/lfs/mtr
index ca0839606cc7c0bf6378c77e85cbb471b579212a..abb6e8ea3912d087f22da829d703eca4749f12ea 100644 (file)
--- a/lfs/mtr
+++ b/lfs/mtr
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2015  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        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.82
+VER        = 0.86
 
 THISAPP    = mtr-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mtr
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 10601ea543fda3e51545c4bce195b64c
+$(DL_FILE)_MD5 = 8d63592c9d4579ef20cf491b41843eb2
 
 install : $(TARGET)
 
index 20e807d18707c2d472574046b55d74fb99b4123e..a0f6f290652137c4ee2b0f54517a19c04ffc645e 100644 (file)
--- a/lfs/pound
+++ b/lfs/pound
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.7c
+VER        = 2.7
 
 THISAPP    = Pound-$(VER)
 DL_FILE    = $(THISAPP).tgz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = pound
-PAK_VER    = 6
+PAK_VER    = 7
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 56dace6b79c6be1d25b31355269c380a
+$(DL_FILE)_MD5 = ec8298aa3e4aee3ffbecdc0639d7f14a
 
 install : $(TARGET)
 
index 19d9553797f966ff9135ceaa5a1d0e2cd85309b4..895ee153bc5a35b90eaad5cdce98f389d5426f03 100644 (file)
@@ -49,7 +49,7 @@ $(TARGET) :
        @$(PREBUILD)
 
        # Create directories
-       -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib,mnt,opt,run}
+       -mkdir -pv /{bin,boot,etc/opt,etc/modprobe.d,home,lib/firmware/brcm,mnt,opt,run}
        -mkdir -pv /{media/{floppy,cdrom,usbkey},sbin,srv,var}
        -install -dv -m 0750 /root
        -install -dv -m 1777 /tmp /var/tmp
@@ -75,6 +75,7 @@ $(TARGET) :
 
        # Config files
        cp -rvf $(DIR_SRC)/config/etc/* /etc;
+       cp -rvf $(DIR_SRC)/config/lib/* /lib;
        touch /etc/{fs,m}tab
        echo "$(NAME) v$(VERSION) - $(SLOGAN)" >  /etc/issue
        echo "===============================" >> /etc/issue
index b2be4c19ab499eae1a9bee07ec19eb82d700d395..eb9cf46e6daf3b77d0947e6b1e9e927bdb733cfe 100644 (file)
@@ -78,6 +78,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-5.0.2_ipfire.patch
 
        cd $(DIR_APP) && [ -x "configure" ] || ./autogen.sh
diff --git a/lfs/swconfig b/lfs/swconfig
new file mode 100644 (file)
index 0000000..81e0b9f
--- /dev/null
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2015  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        = 001
+
+THISAPP    = swconfig-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH   = armv5tel
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = c35919a05fc82b3f8b311da8dfc2cd3e
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# 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 axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && install -v -m755 swconfig /usr/bin/
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index ec88abade8f8f105e7ea283d9a856c169c72159c..42655ab29ada5e284ef6a8f1193a83feab8f61fa 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -25,7 +25,7 @@
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
 VERSION="2.17"                                                 # Version number
-CORE="87"                                                      # Core Level (Filename)
+CORE="87-rc1"                                                  # Core Level (Filename)
 PAKFIRE_CORE="86"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`                   # Git Branch
 SLOGAN="www.ipfire.org"                                                # Software slogan
@@ -811,6 +811,7 @@ buildipfire() {
   ipfiremake squid-accounting
   ipfiremake pigz
   ipfiremake tmux
+  ipfiremake swconfig
 }
 
 buildinstaller() {
index 7de005eb41dd56e37be8e9491ce9474b9f9a7fc7..96bd12676cec3e0aed41344556a4249bdd720e91 100644 (file)
@@ -84,11 +84,14 @@ case "$1" in
                fi
 
                # Enable swap plugin if swap found
-               if [ "$(swapon -s | wc -l)" == "1" ]; then
+               if [ "$(swapon -s | wc -l)" == "0" ]; then
                        sed -i -e "s|^LoadPlugin swap|#LoadPlugin swap|g" /etc/collectd.conf
                else
                        sed -i -e "s|^#LoadPlugin swap|LoadPlugin swap|g" /etc/collectd.conf
                fi
+               
+               # sync after config update...
+               sync
 
                if [ $(date +%Y) -gt 2011 ]; then
                        boot_mesg "Starting Collection daemon..."
@@ -107,6 +110,8 @@ case "$1" in
                if [ "$(basename $0)" == "collectd" ]; then
                    /etc/init.d/tmpfs backup
                fi
+               # sync after backup...
+               sync
                ;;
        restart)
                ${0} stop
index 8f59a7f16fdb51c1fbe4c420eab4c89cba0d9a9b..1e7cec48097ee35f4cd1408ad5bb728d09c20fc0 100644 (file)
@@ -106,8 +106,18 @@ case "${1}" in
                sleep 2
 
                if [ "$(/usr/sbin/iwconfig $INTERFACE | /bin/grep "Mode:Master")" == "" ]; then
-                       boot_mesg "Error! Can't set wlan master mode"
-                       echo_failure;
+                       killproc /usr/bin/hostapd > /dev/null 2>&1
+                       boot_mesg "Try to create additional AP device ..." 
+                       ip link set ${INTERFACE} down
+                       ip link set ${INTERFACE} name ${INTERFACE}_man
+                       iw dev  ${INTERFACE}_man interface add ${INTERFACE} type __ap
+                       evaluate_retval;
+                       if [ -d /sys/class/net/${INTERFACE} ]; then
+                               /usr/bin/hostapd -P /var/run/hostapd /etc/hostapd.conf >/dev/null 2>&1 &
+                       else
+                               ip link set ${INTERFACE}_man down
+                               ip link set ${INTERFACE}_man name ${INTERFACE}
+                       fi
                        exit 0;
                else
                        echo_ok
@@ -116,7 +126,9 @@ case "${1}" in
 
        stop)
                boot_mesg "Stopping hostapd..."
-
+               ip link set ${INTERFACE} down > /dev/null 2>&1
+               ip link set ${INTERFACE} down_man > /dev/null 2>&1
+               sleep 1
                killproc /usr/bin/hostapd
                evaluate_retval
                ;;
index faa765055e95c21a8b5a81e0a4164e96f24a2c8f..9f7323f139b3578b04acddc0c100e925f786f1d6 100644 (file)
@@ -94,6 +94,11 @@ case "${1}" in
                setup_netdev_trigger nas6210:red:power ${RED_DEV} tx rx
                setup_netdev_trigger nas6210:red:usb_copy ${GREEN_DEV} tx rx
 
+               # Mirabox start
+               setup_heartbeat_trigger mirabox:green:pwr
+               setup_netdev_trigger mirabox:green:stat ${GREEN_DEV} tx rx
+               setup_netdev_trigger mirabox:blue:stat ${BLUE_DEV} tx rx
+
                exit 0
        ;;
 
@@ -132,6 +137,12 @@ case "${1}" in
                disable_led_trigger nas6210:red:power
                disable_led_trigger nas6210:red:usb_copy
 
+               # Mirabox stop
+               disable_led_trigger mirabox:green:pwr
+               enable_led mirabox:green:pwr
+               disable_led_trigger mirabox:green:stat
+               disable_led_trigger mirabox:blue:stat
+
                exit 0
        ;;
 
diff --git a/src/initscripts/init.d/swconfig b/src/initscripts/init.d/swconfig
new file mode 100644 (file)
index 0000000..be4604d
--- /dev/null
@@ -0,0 +1,79 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/swconfig
+#
+# Description : Script to setup lan switch.
+#               don't edit this script! If you want change the functions
+#               create an own script called swconfig.user
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+if [ -e /etc/init.d/swconfig.user ]; then
+       /etc/init.d/swconfig.user $*
+       exit ${?}
+fi
+
+if [ -e /var/ipfire/ethernet/swconfig_mac ]; then
+SWMAC=`cat /var/ipfire/ethernet/swconfig_mac`
+else
+# Generate a random local administrated mac address for vlan swconfig.
+SWMAC=`printf "%1x2:%02x:%02x:%02x:%02x" $[RANDOM%16] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]`
+echo $SWMAC > /var/ipfire/ethernet/swconfig_mac
+fi
+
+case "${1}" in
+       start)
+               case `cat /proc/device-tree/model` in
+                       "Lamobo-R1")
+                               #
+                               # Lamobo R1 aka BPi R1 Routerboard
+                               #
+                               # Speaker | LAN1 | LAN2 | LAN3 | LAN4 || LAN5 | HDMI
+                               # SW-Port |  P2  |  P1  |  P0  |  P4  ||  P3  |
+                               # VLAN    |  11  |  12  |  13  |  14  ||ALL(t)|
+                               #
+                               # Switch-Port P8 - ALL(t) boards internal CPU Port
+                               #
+                               device=`ls /sys/class/net/*/device/stmmac-0* | head -1 | cut -d/ -f5`
+                               ip link set $device up
+                               boot_mesg "Configure vlan-switch on $device ..."
+                               # Reset switch, counter and enable vlan mode
+                               swconfig dev $device set reset 1
+                               swconfig dev $device set reset_mib 1
+                               swconfig dev $device set enable_vlan 1
+                               # configure vlans
+                               swconfig dev $device vlan 11 set ports "2 3t 8t"
+                               swconfig dev $device vlan 12 set ports "1 3t 8t"
+                               swconfig dev $device vlan 13 set ports "0 3t 8t"
+                               swconfig dev $device vlan 14 set ports "4 3t 8t"
+                               # activate new config
+                               swconfig dev $device set apply 1
+                               # create interfaces for the vlan's
+                               modprobe 8021q
+                               vconfig add $device 11
+                               vconfig add $device 12
+                               vconfig add $device 13
+                               vconfig add $device 14
+                               # set local mac addresses.
+                               ip link set dev $device.11 address $SWMAC:11
+                               ip link set dev $device.12 address $SWMAC:12
+                               ip link set dev $device.13 address $SWMAC:13
+                               ip link set dev $device.14 address $SWMAC:14
+                               # need to restart udev...
+                               killall udevd
+                               /etc/init.d/udev start
+                       ;;
+               esac
+               exit 0
+       ;;
+
+       *)
+               echo "Usage: ${0} {start}"
+               exit 1
+       ;;
+esac
+
+# End $rc_base/init.d/swconfig
+
index c97776d24882b7b300d4fab497ffe9c9aa0655d2..358b2c46ffdf892a17a894ec7f6fbb6c2d367259 100644 (file)
@@ -245,7 +245,7 @@ static char* center_string(const char* str, int width) {
        return string;
 }
 
-#define DEFAULT_LANG "en_US.utf8"
+#define DEFAULT_LANG "en.utf8"
 #define NUM_LANGS 13
 
 static struct lang {
index d58cee8c69b92b0596d73eef4dd9812414c9d81e..725ebef32c17472a9c70ed236d3a518bd32e0e75 100644 (file)
@@ -3,13 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Roberto Peña <roberto.pena@northsecure.es>, 2015
+# Roberto Peña <roberto.pena@northsecure.es>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-11-05 01:29+0000\n"
-"PO-Revision-Date: 2014-11-05 01:33+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-02-01 09:23+0000\n"
+"Last-Translator: Roberto Peña <roberto.pena@northsecure.es>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/ipfire/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,36 +21,36 @@ msgstr ""
 
 #: main.c:78 main.c:179 main.c:404 main.c:670 main.c:702 main.c:893
 msgid "OK"
-msgstr ""
+msgstr "Ok"
 
 #: main.c:79 main.c:460 main.c:487 main.c:516 main.c:620 main.c:630 main.c:670
 #: main.c:702
 msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
 
 #: main.c:176
 msgid "I accept this license"
-msgstr ""
+msgstr "Acepto esta licencia"
 
 #: main.c:384
 msgid "Warning: Unattended installation will start in 10 seconds..."
-msgstr ""
+msgstr "Advertencia: La instalación desatendida comenzará en 10 segundos..."
 
 #: main.c:403
 msgid "Language selection"
-msgstr ""
+msgstr "Selección de idioma"
 
 #: main.c:403
 msgid "Select the language you wish to use for the installation."
-msgstr ""
+msgstr "Seleccione el idioma que quiere que se use durante la instalación."
 
 #: main.c:418
 msgid "Unattended mode"
-msgstr ""
+msgstr "Modo desatendido"
 
 #: main.c:420
 msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
-msgstr ""
+msgstr "<Tab>/<Alt-Tab> entre elementos | <Space> seleccionar  | <F12> siguiente pantalla"
 
 #: main.c:426
 #, c-format
@@ -56,16 +58,16 @@ msgid ""
 "Welcome to the %s installation program.\n"
 "\n"
 "Selecting Cancel on any of the following screens will reboot the computer."
-msgstr ""
+msgstr "Bienvenido al programa de instalación %s.\n\nAl seleccionar Cancelar en cualquiera de las siguientes pantallas se reiniciará el equipo."
 
 #: main.c:428
 msgid "Start installation"
-msgstr ""
+msgstr "Comenzar la instalación"
 
 #: main.c:449
 #, c-format
 msgid "The installer will now try downloading the installation image."
-msgstr ""
+msgstr "El instalador no ha podido descargar la imagen de instalación."
 
 #: main.c:452
 #, c-format
@@ -73,41 +75,41 @@ msgid ""
 "No source drive could be found.\n"
 "\n"
 "You can try downloading the required installation image."
-msgstr ""
+msgstr "No se puede encontrar unidad de origen.\n\nPuede intentar descargar la imagen de instalación requerida."
 
 #: main.c:456
 msgid ""
 "Please make sure to connect your machine to a network and the installer will"
 " try connect to acquire an IP address."
-msgstr ""
+msgstr "Por favor, asegúrese de conectar el equipo a una red y el instalador intentará conectarse adquiriendo una dirección IP."
 
 #: main.c:460
 msgid "Download installation image"
-msgstr ""
+msgstr "Descargando la imagen de instalación"
 
 #: main.c:473
 msgid "Trying to start networking (DHCP)..."
-msgstr ""
+msgstr "Intentando iniciar la red (DHCP)..."
 
 #: main.c:484
 msgid ""
 "Networking could not be started but is required to go on with the installation.\n"
 "\n"
 "Please connect your machine to a network with a DHCP server and retry."
-msgstr ""
+msgstr "La red no se pudo iniciar, pero es necesaria para continuar con la instalación.\n\nPor favor, conecte el equipo a una red con un servidor DHCP y vuelva a intentarlo."
 
 #: main.c:487 main.c:516
 msgid "Retry"
-msgstr ""
+msgstr "Reintentar"
 
 #: main.c:501
 msgid "Downloading installation image..."
-msgstr ""
+msgstr "Descargando la imagen de instalación..."
 
 #: main.c:510
 #, c-format
 msgid "MD5 checksum mismatch"
-msgstr ""
+msgstr "Discordancia suma de verificación MD5 "
 
 #: main.c:513
 #, c-format
@@ -116,44 +118,44 @@ msgid ""
 "  Reason: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "La imagen de instalación no puede ser descargada.\nRazón: %s\n\n%s"
 
 #: main.c:528
 #, c-format
 msgid ""
 "Could not mount %s to %s:\n"
 "  %s\n"
-msgstr ""
+msgstr "No se pudo montar %s to %s:\n%s\n"
 
 #: main.c:543
 msgid "License Agreement"
-msgstr ""
+msgstr "Contrato de licencia"
 
 #: main.c:544
 msgid "License not accepted!"
-msgstr ""
+msgstr "Licencia no aceptada!"
 
 #: main.c:566
 msgid "No hard disk found."
-msgstr ""
+msgstr "Disco duro no encontrado."
 
 #: main.c:587
 msgid "Disk Selection"
-msgstr ""
+msgstr "Selección de disco"
 
 #: main.c:588
 msgid ""
 "Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
 "\n"
 "ALL DATA ON THE DISK WILL BE DESTROYED."
-msgstr ""
+msgstr "Seleccione el disco(s) donde quiere instalar IPFire. Primero deberán ser particionados y cuando tengan particiones, se les pondrá un sistema de archivos.\n\nTODOS LOS DATOS DEL DISCO SERÁN DESTRUIDOS."
 
 #: main.c:599
 msgid ""
 "No disk has been selected.\n"
 "\n"
 "Please select one or more disks you want to install IPFire on."
-msgstr ""
+msgstr "No se ha seleccionado un disco.\n\nPor favor, seleccione uno o más discos donde quiere que se instale IPFire."
 
 #: main.c:617
 #, c-format
@@ -163,15 +165,15 @@ msgid ""
 "  %s\n"
 "\n"
 "Do you agree to continue?"
-msgstr ""
+msgstr "El programa de instalación preparará ahora los discos elegidos:\n\n%s\n\nQuiere continuar?"
 
 #: main.c:619
 msgid "Disk Setup"
-msgstr ""
+msgstr "Disco de instalación"
 
 #: main.c:620 main.c:630
 msgid "Delete all data"
-msgstr ""
+msgstr "Borrar todos los datos"
 
 #: main.c:627
 #, c-format
@@ -182,131 +184,131 @@ msgid ""
 "  %s\n"
 "\n"
 "Do you agree to continue?"
-msgstr ""
+msgstr "El programa de instalación establecerá ahora una configuración RAID en los discos duros seleccionados:\n\n%s\n%s\n\nEstá de acuerdo con continuar?"
 
 #: main.c:629
 msgid "RAID Setup"
-msgstr ""
+msgstr "Configuración RAID"
 
 #: main.c:640
 msgid "Your disk configuration is currently not supported."
-msgstr ""
+msgstr "Su configuración del disco no es compatible actualmente."
 
 #: main.c:655
 msgid "Your harddisk is too small."
-msgstr ""
+msgstr "Su disco duro es demasiado pequeño."
 
 #: main.c:671
 msgid ""
 "Your harddisk is very small, but you can continue without a swap partition."
-msgstr ""
+msgstr "Su disco duro es muy pequeño, pero se puede continuar sin una partición de intercambio."
 
 #: main.c:684
 msgid "ext4 Filesystem"
-msgstr ""
+msgstr "Sistema de archivos ext4"
 
 #: main.c:685
 msgid "ext4 Filesystem without journal"
-msgstr ""
+msgstr "Sistema de archivos ext4 sin diario"
 
 #: main.c:686
 msgid "XFS Filesystem"
-msgstr ""
+msgstr "Sistema de archivos XFS"
 
 #: main.c:687
 msgid "ReiserFS Filesystem"
-msgstr ""
+msgstr "Sistema de archivos ReiserFS"
 
 #: main.c:701
 msgid "Filesystem Selection"
-msgstr ""
+msgstr "Selección del sistema de archivos"
 
 #: main.c:701
 msgid "Please choose your filesystem:"
-msgstr ""
+msgstr "Por favor, seleccione su sistema de archivos:"
 
 #: main.c:712
 msgid "Building RAID..."
-msgstr ""
+msgstr "Construyendo RAID."
 
 #: main.c:716
 msgid "Unable to build the RAID."
-msgstr ""
+msgstr "No se ha podido construir el RAID."
 
 #: main.c:728
 msgid "Partitioning disk..."
-msgstr ""
+msgstr "Particionando disco..."
 
 #: main.c:732
 msgid "Unable to partition the disk."
-msgstr ""
+msgstr "No se ha podido particionar el disco."
 
 #: main.c:739
 msgid "Creating filesystems..."
-msgstr ""
+msgstr "Creando el sistema de archivos..."
 
 #: main.c:743
 msgid "Unable to create filesystems."
-msgstr ""
+msgstr "No se ha podido crear el sistema de archivos."
 
 #: main.c:749
 msgid "Unable to mount filesystems."
-msgstr ""
+msgstr "No se ha podido montar el sistema de archivos."
 
 #: main.c:760
 msgid "Installing the system..."
-msgstr ""
+msgstr "Instalando el sistema..."
 
 #: main.c:761
 msgid "Unable to install the system."
-msgstr ""
+msgstr "No se ha podido instalar el sistema."
 
 #: main.c:777
 msgid "Installing the language cache..."
-msgstr ""
+msgstr "Instalando la caché del idioma..."
 
 #: main.c:778
 msgid "Unable to install the language cache."
-msgstr ""
+msgstr "No se ha podido instalar la caché del idioma."
 
 #: main.c:783
 msgid "Installing the bootloader..."
-msgstr ""
+msgstr "Instalando el bootloader..."
 
 #: main.c:790
 msgid "Unable to open /etc/default/grub for writing."
-msgstr ""
+msgstr "No se ha podido abrir /etc/default/grub para escritura."
 
 #: main.c:812
 msgid "Unable to install the bootloader."
-msgstr ""
+msgstr "No se ha podido instalar el bootloader."
 
 #: main.c:826
 msgid ""
 "A backup file has been found on the installation image.\n"
 "\n"
 "Do you want to restore the backup?"
-msgstr ""
+msgstr "La imagen de instalación ha encontrado una copia de seguridad.\n\n¿Quiere restaurar la copia de seguridad?"
 
 #: main.c:827
 msgid "Yes"
-msgstr ""
+msgstr ""
 
 #: main.c:827
 msgid "No"
-msgstr ""
+msgstr "No"
 
 #: main.c:834
 msgid "An error occured when the backup file was restored."
-msgstr ""
+msgstr "Se produjo un error cuando se restauró el archivo de copia de seguridad."
 
 #: main.c:869
 msgid "Running post-install script..."
-msgstr ""
+msgstr "Ejecutando post-script de instalación..."
 
 #: main.c:870
 msgid "Post-install script failed."
-msgstr ""
+msgstr "Ha fallado el Post-script de instalación."
 
 #: main.c:877
 #, c-format
@@ -314,16 +316,16 @@ msgid ""
 "%s was successfully installed!\n"
 "\n"
 "Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
-msgstr ""
+msgstr "%s fue instalado con éxito!\n\nPor favor, quite cualquier medio de instalación de este sistema y pulse el botón de reinicio. Una vez reiniciado el sistema, se le pedirá configurar la red y el sistema de contraseñas. Después de eso, para acceder a la consola de configuración, deberá introducir en su navegador web https://%s:444 (o cual sea el nombre de su %s)."
 
 #: main.c:882
 msgid "Congratulations!"
-msgstr ""
+msgstr "¡Enhorabuena!"
 
 #: main.c:882
 msgid "Reboot"
-msgstr ""
+msgstr "Reiniciar"
 
 #: main.c:893
 msgid "Setup has failed. Press Ok to reboot."
-msgstr ""
+msgstr "La instalación ha fallado. Pulse Aceptar para reiniciar."
index 67d4d260e3342be5c549f1d5f92cef5ed3222b39..231adf4651cc7d23970f8aa8dddcddcd2c3360ca 100644 (file)
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014
+# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014-2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-11-05 01:29+0000\n"
-"PO-Revision-Date: 2014-11-12 18:37+0000\n"
+"PO-Revision-Date: 2015-01-26 07:48+0000\n"
 "Last-Translator: Khalil Delavaran <khalil.delavaran@gmail.com>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/ipfire/language/fa/)\n"
 "MIME-Version: 1.0\n"
@@ -74,7 +74,7 @@ msgid ""
 "No source drive could be found.\n"
 "\n"
 "You can try downloading the required installation image."
-msgstr ""
+msgstr "درایو منبع پیدا نشد.\n\nشما می توانید ایمیج مورد نیاز نصب را دانلود کنید. "
 
 #: main.c:456
 msgid ""
@@ -88,14 +88,14 @@ msgstr "دانلود ایمیج برپاسازی"
 
 #: main.c:473
 msgid "Trying to start networking (DHCP)..."
-msgstr ""
+msgstr "تلاش برای شروع شبکه (DHCP)..."
 
 #: main.c:484
 msgid ""
 "Networking could not be started but is required to go on with the installation.\n"
 "\n"
 "Please connect your machine to a network with a DHCP server and retry."
-msgstr ""
+msgstr "شبکه نمی تواند شروع کند، و رفتن به نصب ضروری می باشد.\n\nخواهشمند است سیستم را به یک شبکه با DHCP سرور وصل کرده و دوباره تلاش کنید."
 
 #: main.c:487 main.c:516
 msgid "Retry"
@@ -108,7 +108,7 @@ msgstr "در حال دانلود ایمیج برای برپا سازی..."
 #: main.c:510
 #, c-format
 msgid "MD5 checksum mismatch"
-msgstr ""
+msgstr "ناهماهنگی در کنرل جمعی MD5"
 
 #: main.c:513
 #, c-format
@@ -191,7 +191,7 @@ msgstr "پیکربندی RAID"
 
 #: main.c:640
 msgid "Your disk configuration is currently not supported."
-msgstr ""
+msgstr "پیکربندی دیسک شما پشتیبانی نمی شود."
 
 #: main.c:655
 msgid "Your harddisk is too small."
@@ -287,7 +287,7 @@ msgid ""
 "A backup file has been found on the installation image.\n"
 "\n"
 "Do you want to restore the backup?"
-msgstr ""
+msgstr "یک فایل بک آپ در ایمیج نصب پیدا شد.\n\nآیا می خواهید بک آپ را بازیابی کنید؟"
 
 #: main.c:827
 msgid "Yes"
@@ -299,15 +299,15 @@ msgstr "خیر"
 
 #: main.c:834
 msgid "An error occured when the backup file was restored."
-msgstr ""
+msgstr "در هنگامه بازیابی فایل بک آپ شکستی رخ داده است."
 
 #: main.c:869
 msgid "Running post-install script..."
-msgstr ""
+msgstr "اجرای اسکریپت پس از نصب ..."
 
 #: main.c:870
 msgid "Post-install script failed."
-msgstr ""
+msgstr "اسکریپت پس از نصب شکست خورد."
 
 #: main.c:877
 #, c-format
index 3b67c366cf6eb18ceb3099e7164dae7147eb83e4..3638f10ecf025a24c875a0f381b274a2096603f6 100644 (file)
@@ -8,8 +8,8 @@ msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-11-05 01:29+0000\n"
-"PO-Revision-Date: 2014-11-05 01:33+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-26 12:07+0000\n"
+"Last-Translator: Blago Culjak <blago.culjak@hotmail.com>\n"
 "Language-Team: Croatian (http://www.transifex.com/projects/p/ipfire/language/hr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -32,7 +32,7 @@ msgstr "Prihvaćam ovu licencu"
 
 #: main.c:384
 msgid "Warning: Unattended installation will start in 10 seconds..."
-msgstr ""
+msgstr "Upozoranje: Nenadgledana instalacija će započeti za 10 sekundi..."
 
 #: main.c:403
 msgid "Language selection"
@@ -44,7 +44,7 @@ msgstr "Odaberite jezik koji želite koristiti za instalaciju."
 
 #: main.c:418
 msgid "Unattended mode"
-msgstr ""
+msgstr "Nenadgledana instalacija"
 
 #: main.c:420
 msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
@@ -65,7 +65,7 @@ msgstr "Pokrenite instalaciju"
 #: main.c:449
 #, c-format
 msgid "The installer will now try downloading the installation image."
-msgstr ""
+msgstr "Instalacija će pokušati preuzeti instalacijsku sliku."
 
 #: main.c:452
 #, c-format
@@ -73,41 +73,41 @@ msgid ""
 "No source drive could be found.\n"
 "\n"
 "You can try downloading the required installation image."
-msgstr ""
+msgstr "Izvorišni pogon nije pronađen.\n\nMožete pokušati preuzeti instalacijsku sliku."
 
 #: main.c:456
 msgid ""
 "Please make sure to connect your machine to a network and the installer will"
 " try connect to acquire an IP address."
-msgstr ""
+msgstr "Provjerite da li ste priključeni na mrežu, instalacija će pokušati dobiti IP adresu."
 
 #: main.c:460
 msgid "Download installation image"
-msgstr ""
+msgstr "Preuzimanje instalacijske slike"
 
 #: main.c:473
 msgid "Trying to start networking (DHCP)..."
-msgstr ""
+msgstr "Pokušaj starta mreže (DHCP)..."
 
 #: main.c:484
 msgid ""
 "Networking could not be started but is required to go on with the installation.\n"
 "\n"
 "Please connect your machine to a network with a DHCP server and retry."
-msgstr ""
+msgstr "Mreža nije mogla biti pokrenuta a obvezna je za nastavak instalacije. \n\nPriključite se na mrežu s omogućenim DHCPom i pokušajte ponovno."
 
 #: main.c:487 main.c:516
 msgid "Retry"
-msgstr ""
+msgstr "Ponovno"
 
 #: main.c:501
 msgid "Downloading installation image..."
-msgstr ""
+msgstr "Preuzimanje instalacijske slike"
 
 #: main.c:510
 #, c-format
 msgid "MD5 checksum mismatch"
-msgstr ""
+msgstr "MD5 checksum se ne podudara"
 
 #: main.c:513
 #, c-format
@@ -116,14 +116,14 @@ msgid ""
 "  Reason: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "Instalacijska slika nije preuzeta.\n  Razlog: %s\n\n%s"
 
 #: main.c:528
 #, c-format
 msgid ""
 "Could not mount %s to %s:\n"
 "  %s\n"
-msgstr ""
+msgstr "Nemogu monitari %s na %s:\n  %s\n"
 
 #: main.c:543
 msgid "License Agreement"
@@ -190,7 +190,7 @@ msgstr "Postavljanje RAIDa"
 
 #: main.c:640
 msgid "Your disk configuration is currently not supported."
-msgstr ""
+msgstr "Vaša diskovna konfiguracija nije podržana."
 
 #: main.c:655
 msgid "Your harddisk is too small."
@@ -286,27 +286,27 @@ msgid ""
 "A backup file has been found on the installation image.\n"
 "\n"
 "Do you want to restore the backup?"
-msgstr ""
+msgstr "Pričuvna kopija je pronađena na instalacijskoj slici.\n\nDa li želite povratiti kopiju?"
 
 #: main.c:827
 msgid "Yes"
-msgstr ""
+msgstr "Da"
 
 #: main.c:827
 msgid "No"
-msgstr ""
+msgstr "Ne"
 
 #: main.c:834
 msgid "An error occured when the backup file was restored."
-msgstr ""
+msgstr "Greška pri povratu pričuvne kopije."
 
 #: main.c:869
 msgid "Running post-install script..."
-msgstr ""
+msgstr "Izvodim post-instalacijske skripte."
 
 #: main.c:870
 msgid "Post-install script failed."
-msgstr ""
+msgstr "Post-instalacijske skripte nisu uspješno izvršene."
 
 #: main.c:877
 #, c-format
diff --git a/src/installer/po/jv.po b/src/installer/po/jv.po
new file mode 100644 (file)
index 0000000..333dea3
--- /dev/null
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-11-05 01:29+0000\n"
+"PO-Revision-Date: 2014-07-31 09:39+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Javanese (http://www.transifex.com/projects/p/ipfire/language/jv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: jv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: main.c:78 main.c:179 main.c:404 main.c:670 main.c:702 main.c:893
+msgid "OK"
+msgstr ""
+
+#: main.c:79 main.c:460 main.c:487 main.c:516 main.c:620 main.c:630 main.c:670
+#: main.c:702
+msgid "Cancel"
+msgstr ""
+
+#: main.c:176
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:384
+msgid "Warning: Unattended installation will start in 10 seconds..."
+msgstr ""
+
+#: main.c:403
+msgid "Language selection"
+msgstr ""
+
+#: main.c:403
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:418
+msgid "Unattended mode"
+msgstr ""
+
+#: main.c:420
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:426
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:428
+msgid "Start installation"
+msgstr ""
+
+#: main.c:449
+#, c-format
+msgid "The installer will now try downloading the installation image."
+msgstr ""
+
+#: main.c:452
+#, c-format
+msgid ""
+"No source drive could be found.\n"
+"\n"
+"You can try downloading the required installation image."
+msgstr ""
+
+#: main.c:456
+msgid ""
+"Please make sure to connect your machine to a network and the installer will"
+" try connect to acquire an IP address."
+msgstr ""
+
+#: main.c:460
+msgid "Download installation image"
+msgstr ""
+
+#: main.c:473
+msgid "Trying to start networking (DHCP)..."
+msgstr ""
+
+#: main.c:484
+msgid ""
+"Networking could not be started but is required to go on with the installation.\n"
+"\n"
+"Please connect your machine to a network with a DHCP server and retry."
+msgstr ""
+
+#: main.c:487 main.c:516
+msgid "Retry"
+msgstr ""
+
+#: main.c:501
+msgid "Downloading installation image..."
+msgstr ""
+
+#: main.c:510
+#, c-format
+msgid "MD5 checksum mismatch"
+msgstr ""
+
+#: main.c:513
+#, c-format
+msgid ""
+"The installation image could not be downloaded.\n"
+"  Reason: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: main.c:528
+#, c-format
+msgid ""
+"Could not mount %s to %s:\n"
+"  %s\n"
+msgstr ""
+
+#: main.c:543
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:544
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:566
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:587
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:588
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:599
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:617
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:619
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:620 main.c:630
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:627
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:629
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:640
+msgid "Your disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:655
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:671
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:684
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:685
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:686
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:687
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:701
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:701
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:712
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:716
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:728
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:732
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:739
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:743
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:749
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:760
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:761
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:777
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:778
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:783
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:790
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:812
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:826
+msgid ""
+"A backup file has been found on the installation image.\n"
+"\n"
+"Do you want to restore the backup?"
+msgstr ""
+
+#: main.c:827
+msgid "Yes"
+msgstr ""
+
+#: main.c:827
+msgid "No"
+msgstr ""
+
+#: main.c:834
+msgid "An error occured when the backup file was restored."
+msgstr ""
+
+#: main.c:869
+msgid "Running post-install script..."
+msgstr ""
+
+#: main.c:870
+msgid "Post-install script failed."
+msgstr ""
+
+#: main.c:877
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:882
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:882
+msgid "Reboot"
+msgstr ""
+
+#: main.c:893
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
index 41908acccc6dff6eea63a59ed0cd16e838eed835..009e9c4e1a2def5c4fab8efb180ce7b214fce7f5 100644 (file)
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Jacques Hylkema <j.hylkema@intronics.nl>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-11-05 01:29+0000\n"
-"PO-Revision-Date: 2014-11-05 01:33+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-26 07:37+0000\n"
+"Last-Translator: Jacques Hylkema <j.hylkema@intronics.nl>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/ipfire/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,36 +20,36 @@ msgstr ""
 
 #: main.c:78 main.c:179 main.c:404 main.c:670 main.c:702 main.c:893
 msgid "OK"
-msgstr ""
+msgstr "Oke"
 
 #: main.c:79 main.c:460 main.c:487 main.c:516 main.c:620 main.c:630 main.c:670
 #: main.c:702
 msgid "Cancel"
-msgstr ""
+msgstr "Annuleren"
 
 #: main.c:176
 msgid "I accept this license"
-msgstr ""
+msgstr "Ik accepteer deze licentie"
 
 #: main.c:384
 msgid "Warning: Unattended installation will start in 10 seconds..."
-msgstr ""
+msgstr "Waarschuwing: Installatie zonder toezicht zal binnen 10 seconden starten..."
 
 #: main.c:403
 msgid "Language selection"
-msgstr ""
+msgstr "Taal selectie"
 
 #: main.c:403
 msgid "Select the language you wish to use for the installation."
-msgstr ""
+msgstr "Selecteer de taal die je wil gebruiken voor de installatie."
 
 #: main.c:418
 msgid "Unattended mode"
-msgstr ""
+msgstr "Zonder toezicht modus"
 
 #: main.c:420
 msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
-msgstr ""
+msgstr "<Tab>/<Alt-Tab> tussen onderdelen | <Space> selecteer | <F12> volgend scherm"
 
 #: main.c:426
 #, c-format
@@ -56,16 +57,16 @@ msgid ""
 "Welcome to the %s installation program.\n"
 "\n"
 "Selecting Cancel on any of the following screens will reboot the computer."
-msgstr ""
+msgstr "Welkom bij het %s installatie programma.\n\nKiezen van Annuleren op een van de volgende schermen zal de computer opnieuw laten starten."
 
 #: main.c:428
 msgid "Start installation"
-msgstr ""
+msgstr "Start installatie"
 
 #: main.c:449
 #, c-format
 msgid "The installer will now try downloading the installation image."
-msgstr ""
+msgstr "Het installatie programma zal nu proberen het installatiebestand te downloaden."
 
 #: main.c:452
 #, c-format
@@ -73,41 +74,41 @@ msgid ""
 "No source drive could be found.\n"
 "\n"
 "You can try downloading the required installation image."
-msgstr ""
+msgstr "Er kon geen bron-schijf worden gevonden.\n\nJe kan proberen het benodigde installatie bestand te downloaden."
 
 #: main.c:456
 msgid ""
 "Please make sure to connect your machine to a network and the installer will"
 " try connect to acquire an IP address."
-msgstr ""
+msgstr "Verbindt uw machine aan een netwerk en het installatie programma zal proberen een IP adres te verkrijgen."
 
 #: main.c:460
 msgid "Download installation image"
-msgstr ""
+msgstr "Download installatie bestand"
 
 #: main.c:473
 msgid "Trying to start networking (DHCP)..."
-msgstr ""
+msgstr "Bezig met starten van het netwerk (DHCP)..."
 
 #: main.c:484
 msgid ""
 "Networking could not be started but is required to go on with the installation.\n"
 "\n"
 "Please connect your machine to a network with a DHCP server and retry."
-msgstr ""
+msgstr "Netwerk kon niet worden gestart, maar is vereist om door te kunnen gaan met de installatie.\n\nKoppel je machine aan een netwerk met een DHCP server en probeer opnieuw."
 
 #: main.c:487 main.c:516
 msgid "Retry"
-msgstr ""
+msgstr "Opnieuw"
 
 #: main.c:501
 msgid "Downloading installation image..."
-msgstr ""
+msgstr "Bezig met downloaden van het installatie bestand..."
 
 #: main.c:510
 #, c-format
 msgid "MD5 checksum mismatch"
-msgstr ""
+msgstr "MD5 checksum verschil"
 
 #: main.c:513
 #, c-format
@@ -116,44 +117,44 @@ msgid ""
 "  Reason: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "Het installatie bestand kon niet worden ge-download.\nReden: %s\n\n%s"
 
 #: main.c:528
 #, c-format
 msgid ""
 "Could not mount %s to %s:\n"
 "  %s\n"
-msgstr ""
+msgstr "Kon %s niet aankoppelen naar %s:\n%s\n"
 
 #: main.c:543
 msgid "License Agreement"
-msgstr ""
+msgstr "Licentie overeenkomst"
 
 #: main.c:544
 msgid "License not accepted!"
-msgstr ""
+msgstr "Licentie niet geaccepteerd!"
 
 #: main.c:566
 msgid "No hard disk found."
-msgstr ""
+msgstr "Geen harde schijf gevonden."
 
 #: main.c:587
 msgid "Disk Selection"
-msgstr ""
+msgstr "Schijf selectie"
 
 #: main.c:588
 msgid ""
 "Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
 "\n"
 "ALL DATA ON THE DISK WILL BE DESTROYED."
-msgstr ""
+msgstr "Selecteer de schijf/schijven waarop je IPFire op wil installeren. Deze zullen eerst worden gepartitioneerd, waarna er een bestandssysteem op zal worden gezet.\n\nALLE HUIDIGE GEGEVENS OP DE SCHIJF ZULLEN WORDEN VERNIETIGD. "
 
 #: main.c:599
 msgid ""
 "No disk has been selected.\n"
 "\n"
 "Please select one or more disks you want to install IPFire on."
-msgstr ""
+msgstr "Er is geen schijf geselecteerd.\n\nSelecteer een of meerdere schijven waarop je IPFire op wil installeren."
 
 #: main.c:617
 #, c-format
@@ -163,15 +164,15 @@ msgid ""
 "  %s\n"
 "\n"
 "Do you agree to continue?"
-msgstr ""
+msgstr "Het installatie programma zal nu de geselecteerde harde schijf voorbereiden:\n\n%s\n\nGa je ermee accoord om door te gaan?"
 
 #: main.c:619
 msgid "Disk Setup"
-msgstr ""
+msgstr "Schijf configuratie"
 
 #: main.c:620 main.c:630
 msgid "Delete all data"
-msgstr ""
+msgstr "Verwijder alle gegevens"
 
 #: main.c:627
 #, c-format
@@ -182,131 +183,131 @@ msgid ""
 "  %s\n"
 "\n"
 "Do you agree to continue?"
-msgstr ""
+msgstr "Het installatie programma zal nu een RAID configureren op de geselecteerde harde schijven:\n\n%s\n%s\n\nGa je ermee accoord om door te gaan?"
 
 #: main.c:629
 msgid "RAID Setup"
-msgstr ""
+msgstr "RAID configuratie"
 
 #: main.c:640
 msgid "Your disk configuration is currently not supported."
-msgstr ""
+msgstr "Je schijf configuratie wordt momenteel niet ondersteund."
 
 #: main.c:655
 msgid "Your harddisk is too small."
-msgstr ""
+msgstr "Je harde schijf is te klein."
 
 #: main.c:671
 msgid ""
 "Your harddisk is very small, but you can continue without a swap partition."
-msgstr ""
+msgstr "Je harde schijf is erg klein, maar je kan doorgaan zonder een swap partitie."
 
 #: main.c:684
 msgid "ext4 Filesystem"
-msgstr ""
+msgstr "ext4 bestandssysteem"
 
 #: main.c:685
 msgid "ext4 Filesystem without journal"
-msgstr ""
+msgstr "ext4 bestandssysteem zonder journaal"
 
 #: main.c:686
 msgid "XFS Filesystem"
-msgstr ""
+msgstr "XFS bestandssysteem"
 
 #: main.c:687
 msgid "ReiserFS Filesystem"
-msgstr ""
+msgstr "ReiserFS bestandssysteem"
 
 #: main.c:701
 msgid "Filesystem Selection"
-msgstr ""
+msgstr "Bestandssysteem selectie"
 
 #: main.c:701
 msgid "Please choose your filesystem:"
-msgstr ""
+msgstr "Kies uw bestandssysteem:"
 
 #: main.c:712
 msgid "Building RAID..."
-msgstr ""
+msgstr "Opbouwen RAID..."
 
 #: main.c:716
 msgid "Unable to build the RAID."
-msgstr ""
+msgstr "Kon RAID niet opbouwen."
 
 #: main.c:728
 msgid "Partitioning disk..."
-msgstr ""
+msgstr "Bezig met partitioneren van de schijf"
 
 #: main.c:732
 msgid "Unable to partition the disk."
-msgstr ""
+msgstr "Kon schijf niet partitioneren."
 
 #: main.c:739
 msgid "Creating filesystems..."
-msgstr ""
+msgstr "Bezig met creëren bestandssystemen"
 
 #: main.c:743
 msgid "Unable to create filesystems."
-msgstr ""
+msgstr "Kon bestandssystemen niet creëren."
 
 #: main.c:749
 msgid "Unable to mount filesystems."
-msgstr ""
+msgstr "Kon bestandssystemen niet aankoppelen."
 
 #: main.c:760
 msgid "Installing the system..."
-msgstr ""
+msgstr "Bezig met de installatie van het systeem..."
 
 #: main.c:761
 msgid "Unable to install the system."
-msgstr ""
+msgstr "Kon het systeem niet installeren."
 
 #: main.c:777
 msgid "Installing the language cache..."
-msgstr ""
+msgstr "Bezig met installeren van de taal-cache..."
 
 #: main.c:778
 msgid "Unable to install the language cache."
-msgstr ""
+msgstr "Kon de taal-cache niet installeren."
 
 #: main.c:783
 msgid "Installing the bootloader..."
-msgstr ""
+msgstr "Bezig met installeren van de bootloader"
 
 #: main.c:790
 msgid "Unable to open /etc/default/grub for writing."
-msgstr ""
+msgstr "Kan /etc/default/grub niet openen met schrijfrechten"
 
 #: main.c:812
 msgid "Unable to install the bootloader."
-msgstr ""
+msgstr "Kon de bootloader niet installeren."
 
 #: main.c:826
 msgid ""
 "A backup file has been found on the installation image.\n"
 "\n"
 "Do you want to restore the backup?"
-msgstr ""
+msgstr "Er is een backup bestand gevonden op de installatie disk.\n\nWil je deze backup terugzetten?"
 
 #: main.c:827
 msgid "Yes"
-msgstr ""
+msgstr "Ja"
 
 #: main.c:827
 msgid "No"
-msgstr ""
+msgstr "Nee"
 
 #: main.c:834
 msgid "An error occured when the backup file was restored."
-msgstr ""
+msgstr "Er is een fout opgetreden bij het terugzetten van de backup."
 
 #: main.c:869
 msgid "Running post-install script..."
-msgstr ""
+msgstr "Uitvoeren post-install script..."
 
 #: main.c:870
 msgid "Post-install script failed."
-msgstr ""
+msgstr "Fout bij uitvoeren van Post-install script"
 
 #: main.c:877
 #, c-format
@@ -314,16 +315,16 @@ msgid ""
 "%s was successfully installed!\n"
 "\n"
 "Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
-msgstr ""
+msgstr "%s was met succes geïnstalleerd!\n\nVerwijder de installatie disk en druk op de reboot knop. Nadat het systeem is herstart zal je worden gevraagd om het netwerk en systeem wachtwoorden in te stellen. Daarna moet je in je webbrowser navigeren naar https://%s:444 (of hoe je %s hebt genoemd) voor de web configuratie console."
 
 #: main.c:882
 msgid "Congratulations!"
-msgstr ""
+msgstr "Gefeliciteerd!"
 
 #: main.c:882
 msgid "Reboot"
-msgstr ""
+msgstr "Herstarten"
 
 #: main.c:893
 msgid "Setup has failed. Press Ok to reboot."
-msgstr ""
+msgstr "Installatie is mislukt. Druk op OK om te herstarten."
index 4abe195d3b994dba765b77fa9c11696899b06cd1..056eea142157300b4555d8e03c9bd6e404772175 100644 (file)
@@ -5,13 +5,14 @@
 # Translators:
 # btelega <btelega@gmail.com>, 2014
 # Przemysław Karpeta <przemyslaw.karpeta@gmail.com>, 2014
+# Przemyslaw Zdroik <zdroyer@gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-11-05 01:29+0000\n"
-"PO-Revision-Date: 2014-11-05 01:33+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-26 10:41+0000\n"
+"Last-Translator: Przemyslaw Zdroik <zdroyer@gmail.com>\n"
 "Language-Team: Polish (http://www.transifex.com/projects/p/ipfire/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -34,7 +35,7 @@ msgstr "Akceptuje licencje"
 
 #: main.c:384
 msgid "Warning: Unattended installation will start in 10 seconds..."
-msgstr ""
+msgstr "Ostrzeżenie: Zautomatyzowana instalacja zacznie się za 10 sekund..."
 
 #: main.c:403
 msgid "Language selection"
@@ -46,7 +47,7 @@ msgstr "Wybierz język jaki chcesz użyć do tej instalacji."
 
 #: main.c:418
 msgid "Unattended mode"
-msgstr ""
+msgstr "Tryb zautomatyzowany"
 
 #: main.c:420
 msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
@@ -67,7 +68,7 @@ msgstr "Rozpoczynam instalację"
 #: main.c:449
 #, c-format
 msgid "The installer will now try downloading the installation image."
-msgstr ""
+msgstr "Instalator spróbuje teraz pobrać plik obrazu instalacji."
 
 #: main.c:452
 #, c-format
@@ -75,41 +76,41 @@ msgid ""
 "No source drive could be found.\n"
 "\n"
 "You can try downloading the required installation image."
-msgstr ""
+msgstr "Medium źródłowe nie zostało znalezione.\n\nMożesz spróbować pobrać wymagany plik obrazu instalacji."
 
 #: main.c:456
 msgid ""
 "Please make sure to connect your machine to a network and the installer will"
 " try connect to acquire an IP address."
-msgstr ""
+msgstr "Podłącz twój komputer do sieci a instalator spróbuje połączyć się by pobrać adres IP."
 
 #: main.c:460
 msgid "Download installation image"
-msgstr ""
+msgstr "Pobierz pliku obrazu instalacji"
 
 #: main.c:473
 msgid "Trying to start networking (DHCP)..."
-msgstr ""
+msgstr "Próba uruchomienia sieci (DHCP)..."
 
 #: main.c:484
 msgid ""
 "Networking could not be started but is required to go on with the installation.\n"
 "\n"
 "Please connect your machine to a network with a DHCP server and retry."
-msgstr ""
+msgstr "Obsługa sieci, która jest wymagana do kontynuowania instalacji, nie mogła zostać uruchomiona \n\nPodłącz proszę twój komputer do sieci z działającym serwerem DHCP i Spróbuj ponownie."
 
 #: main.c:487 main.c:516
 msgid "Retry"
-msgstr ""
+msgstr "Spróbuj ponownie"
 
 #: main.c:501
 msgid "Downloading installation image..."
-msgstr ""
+msgstr "Pobieranie pliku obrazu instalacji..."
 
 #: main.c:510
 #, c-format
 msgid "MD5 checksum mismatch"
-msgstr ""
+msgstr "Niezgodność sumy kontrolnej MD5"
 
 #: main.c:513
 #, c-format
@@ -118,14 +119,14 @@ msgid ""
 "  Reason: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "Plik obrazu instalacji nie został pobrany\nPrzyczyna: %s\n\n%s"
 
 #: main.c:528
 #, c-format
 msgid ""
 "Could not mount %s to %s:\n"
 "  %s\n"
-msgstr ""
+msgstr "Nie można zamontować %s w %s:\n%s \n"
 
 #: main.c:543
 msgid "License Agreement"
@@ -192,7 +193,7 @@ msgstr "Konfiguracja RAID"
 
 #: main.c:640
 msgid "Your disk configuration is currently not supported."
-msgstr ""
+msgstr "Twoja konfiguracja dysku nie jest aktualnie obsługiwana. "
 
 #: main.c:655
 msgid "Your harddisk is too small."
@@ -205,11 +206,11 @@ msgstr "Dysk twardy jest bardzo mały, ale można kontynuować bez partycji swap
 
 #: main.c:684
 msgid "ext4 Filesystem"
-msgstr "ext4 Filesystem"
+msgstr "system plików ext4 "
 
 #: main.c:685
 msgid "ext4 Filesystem without journal"
-msgstr "ext4 Filesystem bez dziennika"
+msgstr "system plików ext4 bez dziennika"
 
 #: main.c:686
 msgid "XFS Filesystem"
@@ -288,27 +289,27 @@ msgid ""
 "A backup file has been found on the installation image.\n"
 "\n"
 "Do you want to restore the backup?"
-msgstr ""
+msgstr "Plik kopii zapasowej został odnaleziony w obrazie instalacji.\n\nCzy chcesz przywrócić informację ze znalezionej kopii zapasowej? "
 
 #: main.c:827
 msgid "Yes"
-msgstr ""
+msgstr "Tak"
 
 #: main.c:827
 msgid "No"
-msgstr ""
+msgstr "Nie"
 
 #: main.c:834
 msgid "An error occured when the backup file was restored."
-msgstr ""
+msgstr "Wystąpił błąd podczas przywracania pliku kopii zapasowej."
 
 #: main.c:869
 msgid "Running post-install script..."
-msgstr ""
+msgstr "Działanie skryptu post-instalacyjnego..."
 
 #: main.c:870
 msgid "Post-install script failed."
-msgstr ""
+msgstr "Skrypt post-instalacyjny zawiódł."
 
 #: main.c:877
 #, c-format
diff --git a/src/installer/po/ru_RU.po b/src/installer/po/ru_RU.po
new file mode 100644 (file)
index 0000000..83ee576
--- /dev/null
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-11-05 01:29+0000\n"
+"PO-Revision-Date: 2014-07-31 09:39+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/ipfire/language/ru_RU/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru_RU\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: main.c:78 main.c:179 main.c:404 main.c:670 main.c:702 main.c:893
+msgid "OK"
+msgstr ""
+
+#: main.c:79 main.c:460 main.c:487 main.c:516 main.c:620 main.c:630 main.c:670
+#: main.c:702
+msgid "Cancel"
+msgstr ""
+
+#: main.c:176
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:384
+msgid "Warning: Unattended installation will start in 10 seconds..."
+msgstr ""
+
+#: main.c:403
+msgid "Language selection"
+msgstr ""
+
+#: main.c:403
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:418
+msgid "Unattended mode"
+msgstr ""
+
+#: main.c:420
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:426
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:428
+msgid "Start installation"
+msgstr ""
+
+#: main.c:449
+#, c-format
+msgid "The installer will now try downloading the installation image."
+msgstr ""
+
+#: main.c:452
+#, c-format
+msgid ""
+"No source drive could be found.\n"
+"\n"
+"You can try downloading the required installation image."
+msgstr ""
+
+#: main.c:456
+msgid ""
+"Please make sure to connect your machine to a network and the installer will"
+" try connect to acquire an IP address."
+msgstr ""
+
+#: main.c:460
+msgid "Download installation image"
+msgstr ""
+
+#: main.c:473
+msgid "Trying to start networking (DHCP)..."
+msgstr ""
+
+#: main.c:484
+msgid ""
+"Networking could not be started but is required to go on with the installation.\n"
+"\n"
+"Please connect your machine to a network with a DHCP server and retry."
+msgstr ""
+
+#: main.c:487 main.c:516
+msgid "Retry"
+msgstr ""
+
+#: main.c:501
+msgid "Downloading installation image..."
+msgstr ""
+
+#: main.c:510
+#, c-format
+msgid "MD5 checksum mismatch"
+msgstr ""
+
+#: main.c:513
+#, c-format
+msgid ""
+"The installation image could not be downloaded.\n"
+"  Reason: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: main.c:528
+#, c-format
+msgid ""
+"Could not mount %s to %s:\n"
+"  %s\n"
+msgstr ""
+
+#: main.c:543
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:544
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:566
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:587
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:588
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:599
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:617
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:619
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:620 main.c:630
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:627
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:629
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:640
+msgid "Your disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:655
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:671
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:684
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:685
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:686
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:687
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:701
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:701
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:712
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:716
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:728
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:732
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:739
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:743
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:749
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:760
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:761
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:777
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:778
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:783
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:790
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:812
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:826
+msgid ""
+"A backup file has been found on the installation image.\n"
+"\n"
+"Do you want to restore the backup?"
+msgstr ""
+
+#: main.c:827
+msgid "Yes"
+msgstr ""
+
+#: main.c:827
+msgid "No"
+msgstr ""
+
+#: main.c:834
+msgid "An error occured when the backup file was restored."
+msgstr ""
+
+#: main.c:869
+msgid "Running post-install script..."
+msgstr ""
+
+#: main.c:870
+msgid "Post-install script failed."
+msgstr ""
+
+#: main.c:877
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:882
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:882
+msgid "Reboot"
+msgstr ""
+
+#: main.c:893
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/installer/po/su.po b/src/installer/po/su.po
new file mode 100644 (file)
index 0000000..758c337
--- /dev/null
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR The IPFire Project (www.ipfire.org)
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: IPFire Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-11-05 01:29+0000\n"
+"PO-Revision-Date: 2014-07-31 09:39+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Sundanese (http://www.transifex.com/projects/p/ipfire/language/su/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: su\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: main.c:78 main.c:179 main.c:404 main.c:670 main.c:702 main.c:893
+msgid "OK"
+msgstr ""
+
+#: main.c:79 main.c:460 main.c:487 main.c:516 main.c:620 main.c:630 main.c:670
+#: main.c:702
+msgid "Cancel"
+msgstr ""
+
+#: main.c:176
+msgid "I accept this license"
+msgstr ""
+
+#: main.c:384
+msgid "Warning: Unattended installation will start in 10 seconds..."
+msgstr ""
+
+#: main.c:403
+msgid "Language selection"
+msgstr ""
+
+#: main.c:403
+msgid "Select the language you wish to use for the installation."
+msgstr ""
+
+#: main.c:418
+msgid "Unattended mode"
+msgstr ""
+
+#: main.c:420
+msgid "<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
+msgstr ""
+
+#: main.c:426
+#, c-format
+msgid ""
+"Welcome to the %s installation program.\n"
+"\n"
+"Selecting Cancel on any of the following screens will reboot the computer."
+msgstr ""
+
+#: main.c:428
+msgid "Start installation"
+msgstr ""
+
+#: main.c:449
+#, c-format
+msgid "The installer will now try downloading the installation image."
+msgstr ""
+
+#: main.c:452
+#, c-format
+msgid ""
+"No source drive could be found.\n"
+"\n"
+"You can try downloading the required installation image."
+msgstr ""
+
+#: main.c:456
+msgid ""
+"Please make sure to connect your machine to a network and the installer will"
+" try connect to acquire an IP address."
+msgstr ""
+
+#: main.c:460
+msgid "Download installation image"
+msgstr ""
+
+#: main.c:473
+msgid "Trying to start networking (DHCP)..."
+msgstr ""
+
+#: main.c:484
+msgid ""
+"Networking could not be started but is required to go on with the installation.\n"
+"\n"
+"Please connect your machine to a network with a DHCP server and retry."
+msgstr ""
+
+#: main.c:487 main.c:516
+msgid "Retry"
+msgstr ""
+
+#: main.c:501
+msgid "Downloading installation image..."
+msgstr ""
+
+#: main.c:510
+#, c-format
+msgid "MD5 checksum mismatch"
+msgstr ""
+
+#: main.c:513
+#, c-format
+msgid ""
+"The installation image could not be downloaded.\n"
+"  Reason: %s\n"
+"\n"
+"%s"
+msgstr ""
+
+#: main.c:528
+#, c-format
+msgid ""
+"Could not mount %s to %s:\n"
+"  %s\n"
+msgstr ""
+
+#: main.c:543
+msgid "License Agreement"
+msgstr ""
+
+#: main.c:544
+msgid "License not accepted!"
+msgstr ""
+
+#: main.c:566
+msgid "No hard disk found."
+msgstr ""
+
+#: main.c:587
+msgid "Disk Selection"
+msgstr ""
+
+#: main.c:588
+msgid ""
+"Select the disk(s) you want to install IPFire on. First those will be partitioned, and then the partitions will have a filesystem put on them.\n"
+"\n"
+"ALL DATA ON THE DISK WILL BE DESTROYED."
+msgstr ""
+
+#: main.c:599
+msgid ""
+"No disk has been selected.\n"
+"\n"
+"Please select one or more disks you want to install IPFire on."
+msgstr ""
+
+#: main.c:617
+#, c-format
+msgid ""
+"The installation program will now prepare the chosen harddisk:\n"
+"\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:619
+msgid "Disk Setup"
+msgstr ""
+
+#: main.c:620 main.c:630
+msgid "Delete all data"
+msgstr ""
+
+#: main.c:627
+#, c-format
+msgid ""
+"The installation program will now set up a RAID configuration on the selected harddisks:\n"
+"\n"
+"  %s\n"
+"  %s\n"
+"\n"
+"Do you agree to continue?"
+msgstr ""
+
+#: main.c:629
+msgid "RAID Setup"
+msgstr ""
+
+#: main.c:640
+msgid "Your disk configuration is currently not supported."
+msgstr ""
+
+#: main.c:655
+msgid "Your harddisk is too small."
+msgstr ""
+
+#: main.c:671
+msgid ""
+"Your harddisk is very small, but you can continue without a swap partition."
+msgstr ""
+
+#: main.c:684
+msgid "ext4 Filesystem"
+msgstr ""
+
+#: main.c:685
+msgid "ext4 Filesystem without journal"
+msgstr ""
+
+#: main.c:686
+msgid "XFS Filesystem"
+msgstr ""
+
+#: main.c:687
+msgid "ReiserFS Filesystem"
+msgstr ""
+
+#: main.c:701
+msgid "Filesystem Selection"
+msgstr ""
+
+#: main.c:701
+msgid "Please choose your filesystem:"
+msgstr ""
+
+#: main.c:712
+msgid "Building RAID..."
+msgstr ""
+
+#: main.c:716
+msgid "Unable to build the RAID."
+msgstr ""
+
+#: main.c:728
+msgid "Partitioning disk..."
+msgstr ""
+
+#: main.c:732
+msgid "Unable to partition the disk."
+msgstr ""
+
+#: main.c:739
+msgid "Creating filesystems..."
+msgstr ""
+
+#: main.c:743
+msgid "Unable to create filesystems."
+msgstr ""
+
+#: main.c:749
+msgid "Unable to mount filesystems."
+msgstr ""
+
+#: main.c:760
+msgid "Installing the system..."
+msgstr ""
+
+#: main.c:761
+msgid "Unable to install the system."
+msgstr ""
+
+#: main.c:777
+msgid "Installing the language cache..."
+msgstr ""
+
+#: main.c:778
+msgid "Unable to install the language cache."
+msgstr ""
+
+#: main.c:783
+msgid "Installing the bootloader..."
+msgstr ""
+
+#: main.c:790
+msgid "Unable to open /etc/default/grub for writing."
+msgstr ""
+
+#: main.c:812
+msgid "Unable to install the bootloader."
+msgstr ""
+
+#: main.c:826
+msgid ""
+"A backup file has been found on the installation image.\n"
+"\n"
+"Do you want to restore the backup?"
+msgstr ""
+
+#: main.c:827
+msgid "Yes"
+msgstr ""
+
+#: main.c:827
+msgid "No"
+msgstr ""
+
+#: main.c:834
+msgid "An error occured when the backup file was restored."
+msgstr ""
+
+#: main.c:869
+msgid "Running post-install script..."
+msgstr ""
+
+#: main.c:870
+msgid "Post-install script failed."
+msgstr ""
+
+#: main.c:877
+#, c-format
+msgid ""
+"%s was successfully installed!\n"
+"\n"
+"Please remove any installation mediums from this system and hit the reboot button. Once the system has restarted you will be asked to setup networking and system passwords. After that, you should point your web browser at https://%s:444 (or what ever you name your %s) for the web configuration console."
+msgstr ""
+
+#: main.c:882
+msgid "Congratulations!"
+msgstr ""
+
+#: main.c:882
+msgid "Reboot"
+msgstr ""
+
+#: main.c:893
+msgid "Setup has failed. Press Ok to reboot."
+msgstr ""
diff --git a/src/patches/glibc/glibc-rh1019916.patch b/src/patches/glibc/glibc-rh1019916.patch
new file mode 100644 (file)
index 0000000..f67af90
--- /dev/null
@@ -0,0 +1,39 @@
+commit 48b67d71ec677d1b3168e52a68b644784cead604
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Wed Sep 14 12:12:25 2011 +0200
+
+    Also relocate in dependency order when doing symbol dependency testing
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 764140d..324d979 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2027,24 +2027,21 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+           {
+             /* We have to do symbol dependency testing.  */
+             struct relocate_args args;
+-            struct link_map *l;
++            unsigned int i;
+             args.reloc_mode = GLRO(dl_lazy) ? RTLD_LAZY : 0;
+-            l = main_map;
+-            while (l->l_next != NULL)
+-              l = l->l_next;
+-            do
++            i = main_map->l_searchlist.r_nlist;
++            while (i-- > 0)
+               {
++                struct link_map *l = main_map->l_initfini[i];
+                 if (l != &GL(dl_rtld_map) && ! l->l_faked)
+                   {
+                     args.l = l;
+                     _dl_receive_error (print_unresolved, relocate_doit,
+                                        &args);
+                   }
+-                l = l->l_prev;
+               }
+-            while (l != NULL);
+             if ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
+                 && rtld_multiple_ref)
diff --git a/src/patches/glibc/glibc-rh1027261.patch b/src/patches/glibc/glibc-rh1027261.patch
new file mode 100644 (file)
index 0000000..8599cf0
--- /dev/null
@@ -0,0 +1,28 @@
+commit 4d653a59ffeae0f46f76a40230e2cfa9587b7e7e
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri May 30 22:43:52 2014 +0530
+
+    Add mmap usage in malloc_info output
+    
+    The current malloc_info xml output only has information about
+    allocations on the heap.  Display information about number of mappings
+    and total mmapped size to this to complete the picture.
+
+diff -pruN a/malloc/malloc.c b/malloc/malloc.c
+--- a/malloc/malloc.c  2014-06-02 07:35:22.573256155 +0530
++++ b/malloc/malloc.c  2014-06-02 07:34:58.856257177 +0530
+@@ -6553,12 +6553,14 @@ malloc_info (int options, FILE *fp)
+   fprintf (fp,
+          "<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n"
+          "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n"
++         "<total type=\"mmap\" count=\"%d\" size=\"%zu\"/>\n"
+          "<system type=\"current\" size=\"%zu\"/>\n"
+          "<system type=\"max\" size=\"%zu\"/>\n"
+          "<aspace type=\"total\" size=\"%zu\"/>\n"
+          "<aspace type=\"mprotect\" size=\"%zu\"/>\n"
+          "</malloc>\n",
+          total_nfastblocks, total_fastavail, total_nblocks, total_avail,
++         mp_.n_mmaps, mp_.mmapped_mem,
+          total_system, total_max_system,
+          total_aspace, total_aspace_mprotect);
diff --git a/src/patches/glibc/glibc-rh1032628.patch b/src/patches/glibc/glibc-rh1032628.patch
new file mode 100644 (file)
index 0000000..6140c19
--- /dev/null
@@ -0,0 +1,166 @@
+commit 028478fa40d85a73b19638dbe3f83b1acebf370c
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Thu Mar 10 12:51:33 2011 -0500
+
+    Fix copy relocations handling of unique objects.
+
+ 2011-03-06  Ulrich Drepper  <drepper@gmail.com>
+
+and a part of:
+
+commit 33f85a3fb9fe432e0ebf6a3481bc2d5e29cb605f
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Thu Mar 10 03:18:21 2011 -0500
+
+    Don't run tests checking xecutable stack when SELinux is enforcing.
+
+since the latter incorrectly had a bit of the former changes.
+
+Additionally, the test case needs -lstdc++ to build.
+
+diff --git a/elf/Makefile b/elf/Makefile
+index c427679..56cb1b1 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -201,7 +201,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
+        unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
+        tst-audit1 tst-audit2 tst-audit9 \
+        tst-stackguard1 tst-addr1 tst-thrlock \
+-       tst-unique1 tst-unique2
++       tst-unique1 tst-unique2 tst-unique3
+ #      reldep9
+ test-srcs = tst-pathopt
+ tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
+@@ -255,6 +255,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+               order2mod1 order2mod2 order2mod3 order2mod4 \
+               tst-unique1mod1 tst-unique1mod2 \
+               tst-unique2mod1 tst-unique2mod2 \
++              tst-unique3lib tst-unique3lib2 \
+               tst-auditmod9a tst-auditmod9b
+ ifeq (yes,$(have-initfini-array))
+ modules-names += tst-array2dep tst-array5dep
+@@ -1178,6 +1179,11 @@ $(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \
+ $(objpfx)tst-unique2: $(libdl) $(objpfx)tst-unique2mod1.so
+ $(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so
++LDLIBS-tst-unique3lib.so = -lstdc++
++LDLIBS-tst-unique3lib2.so = -lstdc++
++$(objpfx)tst-unique3: $(libdl) $(objpfx)tst-unique3lib.so
++$(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
++
+ ifeq (yes,$(config-cflags-avx))
+ CFLAGS-tst-audit4.c += -mavx
+ CFLAGS-tst-auditmod4a.c += -mavx
+diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
+index 78c8669..874a4bb 100644
+--- a/elf/dl-lookup.c
++++ b/elf/dl-lookup.c
+@@ -364,8 +363,19 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
+                     if (entries[idx].hashval == new_hash
+                         && strcmp (entries[idx].name, undef_name) == 0)
+                       {
+-                        result->s = entries[idx].sym;
+-                        result->m = (struct link_map *) entries[idx].map;
++                        if ((type_class & ELF_RTYPE_CLASS_COPY) != 0)
++                          {
++                            /* We possibly have to initialize the central
++                               copy from the copy addressed through the
++                               relocation.  */
++                            result->s = sym;
++                            result->m = (struct link_map *) map;
++                          }
++                        else
++                          {
++                            result->s = entries[idx].sym;
++                            result->m = (struct link_map *) entries[idx].map;
++                          }
+                         __rtld_lock_unlock_recursive (tab->lock);
+                         return 1;
+                       }
+diff --git a/elf/tst-unique3.cc b/elf/tst-unique3.cc
+new file mode 100644
+index 0000000..b2c9593
+--- /dev/null
++++ b/elf/tst-unique3.cc
+@@ -0,0 +1,23 @@
++#include "tst-unique3.h"
++#include <cstdio>
++#include "../dlfcn/dlfcn.h"
++
++int t = S<char>::i;
++
++int
++main (void)
++{
++  std::printf ("%d %d\n", S<char>::i, t);
++  int result = S<char>::i++ != 1 || t != 1;
++  result |= in_lib ();
++  void *d = dlopen ("$ORIGIN/tst-unique3lib2.so", RTLD_LAZY);
++  int (*fp) ();
++  if (d == NULL || (fp = (int(*)()) dlsym (d, "in_lib2")) == NULL)
++    {
++      std::printf ("failed to get symbol in_lib2\n");
++      return 1;
++    }
++  result |= fp ();
++  dlclose (d);
++  return result;
++}
+diff --git a/elf/tst-unique3.h b/elf/tst-unique3.h
+new file mode 100644
+index 0000000..716d236
+--- /dev/null
++++ b/elf/tst-unique3.h
+@@ -0,0 +1,8 @@
++// BZ 12510
++template<typename T>
++struct S
++{
++  static int i;
++};
++
++extern int in_lib (void);
+diff --git a/elf/tst-unique3lib.cc b/elf/tst-unique3lib.cc
+new file mode 100644
+index 0000000..fa8e85a
+--- /dev/null
++++ b/elf/tst-unique3lib.cc
+@@ -0,0 +1,11 @@
++#include <cstdio>
++#include "tst-unique3.h"
++template<typename T> int S<T>::i = 1;
++static int i = S<char>::i;
++
++int
++in_lib (void)
++{
++  std::printf ("in_lib: %d %d\n", S<char>::i, i);
++  return S<char>::i++ != 2 || i != 1;
++}
+diff --git a/elf/tst-unique3lib2.cc b/elf/tst-unique3lib2.cc
+new file mode 100644
+index 0000000..17d817e
+--- /dev/null
++++ b/elf/tst-unique3lib2.cc
+@@ -0,0 +1,12 @@
++#include <cstdio>
++#include "tst-unique3.h"
++
++template<typename T> int S<T>::i;
++
++extern "C"
++int
++in_lib2 ()
++{
++  std::printf ("in_lib2: %d\n", S<char>::i);
++  return S<char>::i != 3;
++}
+diff --git a/include/bits/dlfcn.h b/include/bits/dlfcn.h
+index cb4a5c2..c31a645 100644
+--- a/include/bits/dlfcn.h
++++ b/include/bits/dlfcn.h
+@@ -1,4 +1,3 @@
+ #include_next <bits/dlfcn.h>
+-extern void _dl_mcount_wrapper_check (void *__selfpc);
+ libc_hidden_proto (_dl_mcount_wrapper_check)
diff --git a/src/patches/glibc/glibc-rh1111460.patch b/src/patches/glibc/glibc-rh1111460.patch
new file mode 100644 (file)
index 0000000..1a4315d
--- /dev/null
@@ -0,0 +1,341 @@
+commit 7cbcdb3699584db8913ca90f705d6337633ee10f
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Oct 25 10:22:12 2013 +0530
+
+    Fix stack overflow due to large AF_INET6 requests
+    
+    Resolves #16072 (CVE-2013-4458).
+    
+    This patch fixes another stack overflow in getaddrinfo when it is
+    called with AF_INET6.  The AF_UNSPEC case was fixed as CVE-2013-1914,
+    but the AF_INET6 case went undetected back then.
+
+commit 91ce40854d0b7f865cf5024ef95a8026b76096f3
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Aug 16 09:38:52 2013 +0200
+
+    CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r
+    
+       * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
+       member.
+       * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
+       member.
+       * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
+       * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
+       Return delayed error code.  Remove GETDENTS_64BIT_ALIGNED
+       conditional.
+       * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
+       GETDENTS_64BIT_ALIGNED.
+       * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
+       * manual/filesys.texi (Reading/Closing Directory): Document
+       ENAMETOOLONG return value of readdir_r.  Recommend readdir more
+       strongly.
+       * manual/conf.texi (Limits for Files): Add portability note to
+       NAME_MAX, PATH_MAX.
+       (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
+
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index e6ce4cf..8ff74b4 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
+                               &rc, &herrno, NULL, &localcanon));            \
+     if (rc != ERANGE || herrno != NETDB_INTERNAL)                           \
+       break;                                                                \
+-    tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen);                      \
++    if (!malloc_tmpbuf && __libc_use_alloca (alloca_used + 2 * tmpbuflen))    \
++      tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, 2 * tmpbuflen,             \
++                                    alloca_used);                           \
++    else                                                                    \
++      {                                                                             \
++      char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,                  \
++                            2 * tmpbuflen);                                 \
++      if (newp == NULL)                                                     \
++        {                                                                   \
++          result = -EAI_MEMORY;                                             \
++          goto free_and_return;                                             \
++        }                                                                   \
++      tmpbuf = newp;                                                        \
++      malloc_tmpbuf = true;                                                 \
++      tmpbuflen = 2 * tmpbuflen;                                            \
++      }                                                                             \
+   }                                                                         \
+   if (status == NSS_STATUS_SUCCESS && rc == 0)                                      \
+     h = &th;                                                                \
+@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
+       {                                                                     \
+         __set_h_errno (herrno);                                             \
+         _res.options = old_res_options;                                     \
+-        return -EAI_SYSTEM;                                                 \
++        result = -EAI_SYSTEM;                                               \
++        goto free_and_return;                                               \
+       }                                                                     \
+       if (herrno == TRY_AGAIN)                                                      \
+       no_data = EAI_AGAIN;                                                  \
+
+diff --git a/manual/conf.texi b/manual/conf.texi
+index 7eb8b36..c720063 100644
+--- a/manual/conf.texi
++++ b/manual/conf.texi
+@@ -1149,6 +1149,9 @@ typed ahead as input.  @xref{I/O Queues}.
+ @comment POSIX.1
+ @deftypevr Macro int NAME_MAX
+ The uniform system limit (if any) for the length of a file name component.
++
++@strong{Portability Note:} On some systems, the GNU C Library defines
++@code{NAME_MAX}, but does not actually enforce this limit.
+ @end deftypevr
+ @comment limits.h
+@@ -1157,6 +1160,9 @@ including the terminating null character.
+ @deftypevr Macro int PATH_MAX
+ The uniform system limit (if any) for the length of an entire file name (that
+ is, the argument given to system calls such as @code{open}).
++
++@strong{Portability Note:} The GNU C Library does not enforce this limit
++even if @code{PATH_MAX} is defined.
+ @end deftypevr
+ @cindex limits, pipe buffer size
+@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_REC_MIN_XFER_SIZE}.
+ Inquire about the value of @code{POSIX_REC_XFER_ALIGN}.
+ @end table
++@strong{Portability Note:} On some systems, the GNU C Library does not
++enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits.
++
+ @node Utility Limits
+ @section Utility Program Capacity Limits
+diff --git a/manual/filesys.texi b/manual/filesys.texi
+index 1df9cf2..814c210 100644
+--- a/manual/filesys.texi
++++ b/manual/filesys.texi
+@@ -444,9 +444,9 @@ symbols are declared in the header file @file{dirent.h}.
+ @comment POSIX.1
+ @deftypefun {struct dirent *} readdir (DIR *@var{dirstream})
+ This function reads the next entry from the directory.  It normally
+-returns a pointer to a structure containing information about the file.
+-This structure is statically allocated and can be rewritten by a
+-subsequent call.
++returns a pointer to a structure containing information about the
++file.  This structure is associated with the @var{dirstream} handle
++and can be rewritten by a subsequent call.
+ @strong{Portability Note:} On some systems @code{readdir} may not
+ return entries for @file{.} and @file{..}, even though these are always
+@@ -461,19 +461,61 @@ conditions are defined for this function:
+ The @var{dirstream} argument is not valid.
+ @end table
+-@code{readdir} is not thread safe.  Multiple threads using
+-@code{readdir} on the same @var{dirstream} may overwrite the return
+-value.  Use @code{readdir_r} when this is critical.
++To distinguish between an end-of-directory condition or an error, you
++must set @code{errno} to zero before calling @code{readdir}.  To avoid
++entering an infinite loop, you should stop reading from the directory
++after the first error.
++
++In POSIX.1-2008, @code{readdir} is not thread-safe.  In the GNU C Library
++implementation, it is safe to call @code{readdir} concurrently on
++different @var{dirstream}s, but multiple threads accessing the same
++@var{dirstream} result in undefined behavior.  @code{readdir_r} is a
++fully thread-safe alternative, but suffers from poor portability (see
++below).  It is recommended that you use @code{readdir}, with external
++locking if multiple threads access the same @var{dirstream}.
+ @end deftypefun
+ @comment dirent.h
+ @comment GNU
+ @deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result})
+-This function is the reentrant version of @code{readdir}.  Like
+-@code{readdir} it returns the next entry from the directory.  But to
+-prevent conflicts between simultaneously running threads the result is
+-not stored in statically allocated memory.  Instead the argument
+-@var{entry} points to a place to store the result.
++This function is a version of @code{readdir} which performs internal
++locking.  Like @code{readdir} it returns the next entry from the
++directory.  To prevent conflicts between simultaneously running
++threads the result is stored inside the @var{entry} object.
++
++@strong{Portability Note:} It is recommended to use @code{readdir}
++instead of @code{readdir_r} for the following reasons:
++
++@itemize @bullet
++@item
++On systems which do not define @code{NAME_MAX}, it may not be possible
++to use @code{readdir_r} safely because the caller does not specify the
++length of the buffer for the directory entry.
++
++@item
++On some systems, @code{readdir_r} cannot read directory entries with
++very long names.  If such a name is encountered, the GNU C Library
++implementation of @code{readdir_r} returns with an error code of
++@code{ENAMETOOLONG} after the final directory entry has been read.  On
++other systems, @code{readdir_r} may return successfully, but the
++@code{d_name} member may not be NUL-terminated or may be truncated.
++
++@item
++POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe,
++even when access to the same @var{dirstream} is serialized.  But in
++current implementations (including the GNU C Library), it is safe to call
++@code{readdir} concurrently on different @var{dirstream}s, so there is
++no need to use @code{readdir_r} in most multi-threaded programs.  In
++the rare case that multiple threads need to read from the same
++@var{dirstream}, it is still better to use @code{readdir} and external
++synchronization.
++
++@item
++It is expected that future versions of POSIX will obsolete
++@code{readdir_r} and mandate the level of thread safety for
++@code{readdir} which is provided by the GNU C Library and other
++implementations today.
++@end itemize
+ Normally @code{readdir_r} returns zero and sets @code{*@var{result}}
+ to @var{entry}.  If there are no more entries in the directory or an
+@@ -481,15 +523,6 @@ error is detected, @code{readdir_r} sets @code{*@var{result}} to a
+ null pointer and returns a nonzero error code, also stored in
+ @code{errno}, as described for @code{readdir}.
+-@strong{Portability Note:} On some systems @code{readdir_r} may not
+-return a NUL terminated string for the file name, even when there is no
+-@code{d_reclen} field in @code{struct dirent} and the file
+-name is the maximum allowed size.  Modern systems all have the
+-@code{d_reclen} field, and on old systems multi-threading is not
+-critical.  In any case there is no such problem with the @code{readdir}
+-function, so that even on systems without the @code{d_reclen} member one
+-could use multiple threads by using external locking.
+-
+ It is also important to look at the definition of the @code{struct
+ dirent} type.  Simply passing a pointer to an object of this type for
+ the second parameter of @code{readdir_r} might not be enough.  Some
+diff --git a/sysdeps/unix/dirstream.h b/sysdeps/unix/dirstream.h
+index a7a074d..8e8570d 100644
+--- a/sysdeps/unix/dirstream.h
++++ b/sysdeps/unix/dirstream.h
+@@ -39,6 +39,8 @@ struct __dirstream
+     off_t filepos;            /* Position of next entry to read.  */
++    int errcode;              /* Delayed error code.  */
++
+     /* Directory block.  */
+     char data[0] __attribute__ ((aligned (__alignof__ (void*))));
+   };
+diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c
+index ddfc3a7..fc05b0f 100644
+--- a/sysdeps/unix/opendir.c
++++ b/sysdeps/unix/opendir.c
+@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp)
+   dirp->size = 0;
+   dirp->offset = 0;
+   dirp->filepos = 0;
++  dirp->errcode = 0;
+   return dirp;
+ }
+diff --git a/sysdeps/unix/readdir_r.c b/sysdeps/unix/readdir_r.c
+index b5a8e2e..8ed5c3f 100644
+--- a/sysdeps/unix/readdir_r.c
++++ b/sysdeps/unix/readdir_r.c
+@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
+   DIRENT_TYPE *dp;
+   size_t reclen;
+   const int saved_errno = errno;
++  int ret;
+   __libc_lock_lock (dirp->lock);
+@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
+                 bytes = 0;
+                 __set_errno (saved_errno);
+               }
++            if (bytes < 0)
++              dirp->errcode = errno;
+             dp = NULL;
+-            /* Reclen != 0 signals that an error occurred.  */
+-            reclen = bytes != 0;
+             break;
+           }
+         dirp->size = (size_t) bytes;
+@@ -106,28 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
+       dirp->filepos += reclen;
+ #endif
+-      /* Skip deleted files.  */
++#ifdef NAME_MAX
++      if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1)
++      {
++        /* The record is very long.  It could still fit into the
++           caller-supplied buffer if we can skip padding at the
++           end.  */
++        size_t namelen = _D_EXACT_NAMLEN (dp);
++        if (namelen <= NAME_MAX)
++          reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1;
++        else
++          {
++            /* The name is too long.  Ignore this file.  */
++            dirp->errcode = ENAMETOOLONG;
++            dp->d_ino = 0;
++            continue;
++          }
++      }
++#endif
++
++      /* Skip deleted and ignored files.  */
+     }
+   while (dp->d_ino == 0);
+   if (dp != NULL)
+     {
+-#ifdef GETDENTS_64BIT_ALIGNED
+-      /* The d_reclen value might include padding which is not part of
+-       the DIRENT_TYPE data structure.  */
+-      reclen = MIN (reclen, sizeof (DIRENT_TYPE));
+-#endif
+       *result = memcpy (entry, dp, reclen);
+-#ifdef GETDENTS_64BIT_ALIGNED
++#ifdef _DIRENT_HAVE_D_RECLEN
+       entry->d_reclen = reclen;
+ #endif
++      ret = 0;
+     }
+   else
+-    *result = NULL;
++    {
++      *result = NULL;
++      ret = dirp->errcode;
++    }
+   __libc_lock_unlock (dirp->lock);
+-  return dp != NULL ? 0 : reclen ? errno : 0;
++  return ret;
+ }
+ #ifdef __READDIR_R_ALIAS
+diff --git a/sysdeps/unix/rewinddir.c b/sysdeps/unix/rewinddir.c
+index 2935a8e..d4991ad 100644
+--- a/sysdeps/unix/rewinddir.c
++++ b/sysdeps/unix/rewinddir.c
+@@ -33,5 +33,6 @@ rewinddir (dirp)
+   dirp->filepos = 0;
+   dirp->offset = 0;
+   dirp->size = 0;
++  dirp->errcode = 0;
+   __libc_lock_unlock (dirp->lock);
+ }
+diff --git a/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
+index 8ebbcfd..a7d114e 100644
+--- a/sysdeps/unix/sysv/linux/i386/readdir64_r.c
++++ b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
+@@ -18,7 +18,6 @@
+ #define __READDIR_R __readdir64_r
+ #define __GETDENTS __getdents64
+ #define DIRENT_TYPE struct dirent64
+-#define GETDENTS_64BIT_ALIGNED 1
+ #include <sysdeps/unix/readdir_r.c>
diff --git a/src/patches/glibc/glibc-rh1139571.patch b/src/patches/glibc/glibc-rh1139571.patch
new file mode 100644 (file)
index 0000000..b1320a7
--- /dev/null
@@ -0,0 +1,154 @@
+commit 41488498b6d9440ee66ab033808cce8323bba7ac
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Wed Sep 3 19:45:43 2014 +0200
+
+    CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325]
+    
+    These changes are based on the fix for BZ #14134 in commit
+    6e230d11837f3ae7b375ea69d7905f0d18eb79e5.
+
+diff --git a/iconvdata/Makefile b/iconvdata/Makefile
+index 0a410a1..b6327d6 100644
+--- a/iconvdata/Makefile
++++ b/iconvdata/Makefile
+@@ -297,6 +297,7 @@ $(objpfx)tst-iconv7.out: $(objpfx)gconv-modules \
+ $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
+                        $(addprefix $(objpfx),$(modules.so)) \
+                        $(common-objdir)/iconv/iconv_prog TESTS
++      iconv_modules="$(modules)" \
+       $(SHELL) -e $< $(common-objdir) > $@
+ $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
+diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
+index 0b5484f..cf80993 100644
+--- a/iconvdata/ibm1364.c
++++ b/iconvdata/ibm1364.c
+@@ -221,7 +221,8 @@ enum
+         ++rp2;                                                              \
+                                                                             \
+       uint32_t res;                                                         \
+-      if (__builtin_expect (ch < rp2->start, 0)                             \
++      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
++          || __builtin_expect (ch < rp2->start, 0)                          \
+           || (res = DB_TO_UCS4[ch + rp2->idx],                              \
+               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
+         {                                                                   \
+diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
+index f5dca59..aa69d65 100644
+--- a/iconvdata/ibm932.c
++++ b/iconvdata/ibm932.c
+@@ -74,11 +74,12 @@
+         }                                                                   \
+                                                                             \
+       ch = (ch * 0x100) + inptr[1];                                         \
++      /* ch was less than 0xfd.  */                                         \
++      assert (ch < 0xfd00);                                                 \
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
+-          || __builtin_expect (ch < rp2->start, 0)                          \
++      if (__builtin_expect (ch < rp2->start, 0)                             \
+           || (res = __ibm932db_to_ucs4[ch + rp2->idx],                      \
+           __builtin_expect (res, '\1') == 0 && ch !=0))                     \
+         {                                                                   \
+diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
+index f46dfb5..461fb5e 100644
+--- a/iconvdata/ibm933.c
++++ b/iconvdata/ibm933.c
+@@ -162,7 +162,7 @@ enum
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
++      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
+           || __builtin_expect (ch < rp2->start, 0)                          \
+           || (res = __ibm933db_to_ucs4[ch + rp2->idx],                      \
+               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
+diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
+index a8e4e6c..132d816 100644
+--- a/iconvdata/ibm935.c
++++ b/iconvdata/ibm935.c
+@@ -162,7 +162,7 @@ enum
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
++      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
+           || __builtin_expect (ch < rp2->start, 0)                          \
+           || (res = __ibm935db_to_ucs4[ch + rp2->idx],                      \
+               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
+diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c
+index 239be61..69b154d 100644
+--- a/iconvdata/ibm937.c
++++ b/iconvdata/ibm937.c
+@@ -162,7 +162,7 @@ enum
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
++      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
+           || __builtin_expect (ch < rp2->start, 0)                          \
+           || (res = __ibm937db_to_ucs4[ch + rp2->idx],                      \
+               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
+diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c
+index 5d0db36..9936e2c 100644
+--- a/iconvdata/ibm939.c
++++ b/iconvdata/ibm939.c
+@@ -162,7 +162,7 @@ enum
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
++      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
+           || __builtin_expect (ch < rp2->start, 0)                          \
+           || (res = __ibm939db_to_ucs4[ch + rp2->idx],                      \
+               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
+diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
+index be0c14f..c5d5742 100644
+--- a/iconvdata/ibm943.c
++++ b/iconvdata/ibm943.c
+@@ -75,11 +75,12 @@
+         }                                                                   \
+                                                                             \
+       ch = (ch * 0x100) + inptr[1];                                         \
++      /* ch was less than 0xfd.  */                                         \
++      assert (ch < 0xfd00);                                                 \
+       while (ch > rp2->end)                                                 \
+         ++rp2;                                                              \
+                                                                             \
+-      if (__builtin_expect (rp2 == NULL, 0)                                 \
+-          || __builtin_expect (ch < rp2->start, 0)                          \
++      if (__builtin_expect (ch < rp2->start, 0)                             \
+           || (res = __ibm943db_to_ucs4[ch + rp2->idx],                      \
+           __builtin_expect (res, '\1') == 0 && ch !=0))                     \
+         {                                                                   \
+diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
+index c98c929..5dfb69f 100755
+--- a/iconvdata/run-iconv-test.sh
++++ b/iconvdata/run-iconv-test.sh
+@@ -184,6 +184,24 @@ while read utf8 from filename; do
+ done < TESTS2
++# Check for crashes in decoders.
++printf '\016\377\377\377\377\377\377\377' > $temp1
++for from in $iconv_modules ; do
++    echo $ac_n "test decoder $from $ac_c"
++    PROG=`eval echo $ICONV`
++    if $PROG < $temp1 >/dev/null 2>&1 ; then
++      : # fall through
++    else
++      status=$?
++      if test $status -gt 1 ; then
++          echo "/FAILED"
++          failed=1
++          continue
++      fi
++    fi
++    echo "OK"
++done
++
+ exit $failed
+ # Local Variables:
+ #  mode:shell-script
diff --git a/src/patches/glibc/glibc-rh1154563.patch b/src/patches/glibc/glibc-rh1154563.patch
new file mode 100644 (file)
index 0000000..22821b1
--- /dev/null
@@ -0,0 +1,333 @@
+#
+# This is a special patch for rhel-6 to fix recursive dlopen.
+# It is likely the upstream patch will always be too risky for
+# rhel-6 and will involve reorganizing the way in which recursive
+# dlopen is allowed to operate and how the _r_debug and stap
+# points are used by gdb for the recursive case.
+#
+# This fix changes the internal API to duplicate the ldconfig
+# cache data. This means that at any point the cache can be
+# unmapped without any consequences. The caller is responsible
+# fore freeing the returned string.
+#
+# A regression test is added to verify the assertion for _r_debug
+# is no longer triggered due to the recursive dlopen. The test to
+# verify the fix in _dl_load_cache_lookup is not automated and
+# has to be run by hand.
+#
+diff -urN glibc-2.12-2-gc4ccff1/elf/dl-cache.c glibc-2.12-2-gc4ccff1.mod/elf/dl-cache.c
+--- glibc-2.12-2-gc4ccff1/elf/dl-cache.c       2010-05-04 07:27:23.000000000 -0400
++++ glibc-2.12-2-gc4ccff1.mod/elf/dl-cache.c   2014-12-10 21:54:08.801985045 -0500
+@@ -175,9 +175,12 @@
+ /* Look up NAME in ld.so.cache and return the file name stored there,
+-   or null if none is found.  */
+-
+-const char *
++   or null if none is found. 
++   The caller is responsible for freeing the returned string.  The ld.so.cache
++   may be unmapped at any time by a completing recursive dlopen and
++   this function must take care that it does not return references to
++   any data in the mapping.  */
++char *
+ internal_function
+ _dl_load_cache_lookup (const char *name)
+ {
+@@ -290,7 +293,17 @@
+       && best != NULL)
+     _dl_debug_printf ("  trying file=%s\n", best);
+-  return best;
++  if (best == NULL)
++    return NULL;
++
++  /* The double copy is *required* since malloc may be interposed
++     and call dlopen itself whose completion would unmap the data
++     we are accessing. Therefore we must make the copy of the
++     mapping data without using malloc.  */
++  char *temp;
++  temp = alloca (strlen (best) + 1);
++  strcpy (temp, best);
++  return strdup (temp);
+ }
+ #ifndef MAP_COPY
+diff -urN glibc-2.12-2-gc4ccff1/elf/dl-load.c glibc-2.12-2-gc4ccff1.mod/elf/dl-load.c
+--- glibc-2.12-2-gc4ccff1/elf/dl-load.c        2014-12-10 11:03:17.966048404 -0500
++++ glibc-2.12-2-gc4ccff1.mod/elf/dl-load.c    2014-12-10 21:47:29.319387538 -0500
+@@ -2126,7 +2126,7 @@
+       {
+         /* Check the list of libraries in the file /etc/ld.so.cache,
+            for compatibility with Linux's ldconfig program.  */
+-        const char *cached = _dl_load_cache_lookup (name);
++        char *cached = _dl_load_cache_lookup (name);
+         if (cached != NULL)
+           {
+@@ -2156,6 +2156,7 @@
+                     if (memcmp (cached, dirp, system_dirs_len[cnt]) == 0)
+                       {
+                         /* The prefix matches.  Don't use the entry.  */
++                        free (cached);
+                         cached = NULL;
+                         break;
+                       }
+@@ -2172,14 +2173,9 @@
+                                   &fb, loader ?: GL(dl_ns)[nsid]._ns_loaded,
+                                   LA_SER_CONFIG, &found_other_class, false);
+                 if (__builtin_expect (fd != -1, 1))
+-                  {
+-                    realname = local_strdup (cached);
+-                    if (realname == NULL)
+-                      {
+-                        __close (fd);
+-                        fd = -1;
+-                      }
+-                  }
++                  realname = cached;
++                else
++                  free (cached);
+               }
+           }
+       }
+diff -urN glibc-2.12-2-gc4ccff1/elf/dl-open.c glibc-2.12-2-gc4ccff1.mod/elf/dl-open.c
+--- glibc-2.12-2-gc4ccff1/elf/dl-open.c        2014-12-10 11:03:18.083048497 -0500
++++ glibc-2.12-2-gc4ccff1.mod/elf/dl-open.c    2014-12-10 20:34:16.017503638 -0500
+@@ -220,7 +220,11 @@
+       }
+     }
+-  assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT);
++  /* One might be tempted to assert that we are RT_CONSISTENT at this point, but that
++     may not be true if this is a recursive call to dlopen.
++     TODO: Fix all of the debug state so we end up at RT_CONSISTENT only when the last
++     recursive dlopen completes.  */
++  _dl_debug_initialize (0, args->nsid);
+   /* Load the named object.  */
+   struct link_map *new;
+diff -urN glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h glibc-2.12-2-gc4ccff1.mod/sysdeps/generic/ldsodefs.h
+--- glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h   2014-12-10 11:03:17.944048387 -0500
++++ glibc-2.12-2-gc4ccff1.mod/sysdeps/generic/ldsodefs.h       2014-12-10 21:46:14.071344018 -0500
+@@ -996,8 +996,8 @@
+      internal_function;
+ /* Look up NAME in ld.so.cache and return the file name stored there,
+-   or null if none is found.  */
+-extern const char *_dl_load_cache_lookup (const char *name)
++   or null if none is found.  Caller must free returned string.  */
++extern char *_dl_load_cache_lookup (const char *name)
+      internal_function;
+ /* If the system does not support MAP_COPY we cannot leave the file open
+diff -urN glibc-2.12-2-gc4ccff1/dlfcn/Makefile glibc-2.12-2-gc4ccff1.mod/dlfcn/Makefile
+--- glibc-2.12-2-gc4ccff1/dlfcn/Makefile       2010-05-04 07:27:23.000000000 -0400
++++ glibc-2.12-2-gc4ccff1.mod/dlfcn/Makefile   2014-12-11 16:58:55.719803063 -0500
+@@ -42,12 +42,12 @@
+ ifeq (yes,$(build-shared))
+ tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \
+       bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \
+-      bug-atexit3 tstatexit
++      bug-atexit3 tstatexit tst-rec-dlopen
+ endif
+ modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \
+               defaultmod2 errmsg1mod modatexit modcxaatexit \
+               bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \
+-              bug-atexit2-lib bug-atexit3-lib
++              bug-atexit2-lib bug-atexit3-lib moddummy1 moddummy2
+ failtestmod.so-no-z-defs = yes
+ glreflib2.so-no-z-defs = yes
+@@ -142,6 +142,8 @@
+ $(objpfx)bug-atexit3-lib.so: $(common-objpfx)libc.so \
+                            $(common-objpfx)libc_nonshared.a
++LDLIBS-tst-rec-dlopen = -ldl
++$(objpfx)tst-rec-dlopen: $(libdl)
+ # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
+ # This ensures they will load libc.so for needed symbols if loaded by
+diff -urN glibc-2.12-2-gc4ccff1/dlfcn/moddummy1.c glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy1.c
+--- glibc-2.12-2-gc4ccff1/dlfcn/moddummy1.c    1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy1.c        2014-12-11 16:57:54.108797285 -0500
+@@ -0,0 +1,13 @@
++/* Provide a dummy DSO for tst-recursive-dlopen to use.  */
++#include <stdio.h>
++#include <stdlib.h>
++
++int called_dummy1;
++
++void
++dummy1 (void)
++{
++  printf ("Called dummy1()\n");
++  called_dummy1++;
++}
++
+diff -urN glibc-2.12-2-gc4ccff1/dlfcn/moddummy2.c glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy2.c
+--- glibc-2.12-2-gc4ccff1/dlfcn/moddummy2.c    1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy2.c        2014-12-11 16:57:54.108797285 -0500
+@@ -0,0 +1,13 @@
++/* Provide a dummy DSO for tst-recursive-dlopen to use.  */
++#include <stdio.h>
++#include <stdlib.h>
++
++int called_dummy2;
++
++void
++dummy2 (void)
++{
++  printf ("Called dummy2()\n");
++  called_dummy2++;
++}
++
+diff -urN glibc-2.12-2-gc4ccff1/dlfcn/tst-rec-dlopen.c glibc-2.12-2-gc4ccff1.mod/dlfcn/tst-rec-dlopen.c
+--- glibc-2.12-2-gc4ccff1/dlfcn/tst-rec-dlopen.c       1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.12-2-gc4ccff1.mod/dlfcn/tst-rec-dlopen.c   2014-12-11 20:53:28.617848774 -0500
+@@ -0,0 +1,145 @@
++/* Test recursive dlopen using malloc hooks.
++   Copyright (C) 1998-2014 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library 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
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <malloc.h>
++#include <dlfcn.h>
++
++#define DSO "moddummy1.so"
++#define FUNC "dummy1"
++
++#define DSO1 "moddummy2.so"
++#define FUNC1 "dummy2"
++
++/* Prevent the compiler from moving the assignment to called_func
++   before (*func)() since the compiler doesn't know we might abort
++   or catch a SIGSEGV signal and it may move the store.  */
++volatile int called_func;
++
++/* Prototype for my hook.  */
++void *custom_malloc_hook (size_t, const void *);
++
++/* Pointer to old malloc hooks.  */
++void *(*old_malloc_hook) (size_t, const void *);
++
++/* Call function func_name in DSO dso_name via dlopen.  */
++void
++call_func (const char *dso_name, const char *func_name)
++{
++  int ret;
++  void *dso;
++  void (*func) (void);
++  char *err;
++
++  /* Open the DSO.  */
++  dso = dlopen (dso_name, RTLD_NOW|RTLD_GLOBAL);
++  if (dso == NULL)
++    {
++      err = dlerror ();
++      fprintf (stderr, "%s\n", err);
++      exit (1);
++    }
++  /* Clear any errors.  */
++  dlerror ();
++
++  /* Lookup func.  */
++  *(void **) (&func) = dlsym (dso, func_name);
++  if (func == NULL)
++    {
++      err = dlerror ();
++      if (err != NULL)
++        {
++        fprintf (stderr, "%s\n", err);
++        exit (1);
++        }
++    }
++  /* Call func.  */
++  (*func) ();
++  called_func = 1;
++
++  /* Close the library and look for errors too.  */
++  ret = dlclose (dso);
++  if (ret != 0)
++    {
++      err = dlerror ();
++      fprintf (stderr, "%s\n", err);
++      exit (1);
++    }
++
++}
++
++/* Empty hook that does nothing.  */
++void *
++custom_malloc_hook (size_t size, const void *caller)
++{
++  void *result;
++  /* Restore old hooks.  */
++  __malloc_hook = old_malloc_hook;
++  /* First call a function in another library via dlopen.  */
++  call_func (DSO1, FUNC1);
++  /* Called recursively.  */
++  result = malloc (size);
++  /* Restore new hooks.  */
++  __malloc_hook = custom_malloc_hook;
++  return result;
++}
++
++static int
++do_test (void)
++{
++  /* Save old hook.  */
++  old_malloc_hook = __malloc_hook;
++  /* Install new hook.  */
++  __malloc_hook = custom_malloc_hook;
++
++  /* Bug 17702 fixes two things:
++       * A recursive dlopen unmapping the ld.so.cache.
++       * An assertion that _r_debug is RT_CONSISTENT at entry to dlopen.
++     We can only test the latter. Testing the former requires modifying
++     ld.so.conf to cache the dummy libraries, then running ldconfig,
++     then run the test. If you do all of that (and glibc's test
++     infrastructure doesn't support that yet) then the test will
++     SEGFAULT without the fix. If you don't do that, then the test
++     will abort because of the assert described in detail below.  */
++  call_func (DSO, FUNC);
++
++  /* Restore old hook.  */
++  __malloc_hook = old_malloc_hook;
++
++  /* The function dummy2() is called by the malloc hook. Check to
++     see that it was called. This ensures the second recursive
++     dlopen happened and we called the function in that library.
++
++     Before the fix you either get a SIGSEGV when accessing mmap'd
++     ld.so.cache data or an assertion failure about _r_debug not
++     beint RT_CONSISTENT.  We don't test for the SIGSEGV since it
++     would require finding moddummy1 or moddummy2 in the cache and
++     we don't have any infrastructure to test that, but the _r_debug
++     assertion triggers.  */
++  if (called_func > 0)
++    printf ("PASS: Function call_func() called more than once.\n");
++  else
++    printf ("FAIL: Function call_func() not called.\n");
++
++  return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh1170121.patch b/src/patches/glibc/glibc-rh1170121.patch
new file mode 100644 (file)
index 0000000..1accbf3
--- /dev/null
@@ -0,0 +1,163 @@
+#
+# commit a39208bd7fb76c1b01c127b4c61f9bfd915bfe7c
+# Author: Carlos O'Donell <carlos@redhat.com>
+# Date:   Wed Nov 19 11:44:12 2014 -0500
+# 
+#     CVE-2014-7817: wordexp fails to honour WRDE_NOCMD.
+#     
+#     The function wordexp() fails to properly handle the WRDE_NOCMD
+#     flag when processing arithmetic inputs in the form of "$((... ``))"
+#     where "..." can be anything valid. The backticks in the arithmetic
+#     epxression are evaluated by in a shell even if WRDE_NOCMD forbade
+#     command substitution. This allows an attacker to attempt to pass
+#     dangerous commands via constructs of the above form, and bypass
+#     the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
+#     in exec_comm(), the only place that can execute a shell. All other
+#     checks for WRDE_NOCMD are superfluous and removed.
+#     
+#     We expand the testsuite and add 3 new regression tests of roughly
+#     the same form but with a couple of nested levels.
+#     
+#     On top of the 3 new tests we add fork validation to the WRDE_NOCMD
+#     testing. If any forks are detected during the execution of a wordexp()
+#     call with WRDE_NOCMD, the test is marked as failed. This is slightly
+#     heuristic since vfork might be used in the future, but it provides a
+#     higher level of assurance that no shells were executed as part of
+#     command substitution with WRDE_NOCMD in effect. In addition it doesn't
+#     require libpthread or libdl, instead we use the public implementation
+#     namespace function __register_atfork (already part of the public ABI
+#     for libpthread).
+#     
+#     Tested on x86_64 with no regressions.
+# 
+diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
+index 4957006..bdd65e4 100644
+--- a/posix/wordexp-test.c
++++ b/posix/wordexp-test.c
+@@ -27,6 +27,25 @@
+ #define IFS " \n\t"
++extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
++extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
++
++static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
++{
++  return __register_atfork (prepare, parent, child,
++                          &__dso_handle == NULL ? NULL : __dso_handle);
++}
++
++/* Number of forks seen.  */
++static int registered_forks;
++
++/* For each fork increment the fork count.  */
++static void
++register_fork (void)
++{
++  registered_forks++;
++}
++
+ struct test_case_struct
+ {
+   int retval;
+@@ -206,6 +225,12 @@ struct test_case_struct
+     { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
+     { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
+     { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
++    /* Test for CVE-2014-7817. We test 3 combinations of command
++       substitution inside an arithmetic expression to make sure that
++       no commands are executed and error is returned.  */
++    { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
++    { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
++    { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
+     { -1, NULL, NULL, 0, 0, { NULL, }, IFS },
+   };
+@@ -258,6 +283,15 @@ main (int argc, char *argv[])
+         return -1;
+     }
++  /* If we are not allowed to do command substitution, we install
++     fork handlers to verify that no forks happened.  No forks should
++     happen at all if command substitution is disabled.  */
++  if (__app_register_atfork (register_fork, NULL, NULL) != 0)
++    {
++      printf ("Failed to register fork handler.\n");
++      return -1;
++    }
++
+   for (test = 0; test_case[test].retval != -1; test++)
+     if (testit (&test_case[test]))
+       ++fail;
+@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
+   printf ("Test %d (%s): ", ++tests, tc->words);
++  if (tc->flags & WRDE_NOCMD)
++    registered_forks = 0;
++
+   if (tc->flags & WRDE_APPEND)
+     {
+       /* initial wordexp() call, to be appended to */
+@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
+     }
+   retval = wordexp (tc->words, &we, tc->flags);
++  if ((tc->flags & WRDE_NOCMD)
++      && (registered_forks > 0))
++    {
++        printf ("FAILED fork called for WRDE_NOCMD\n");
++        return 1;
++    }
++
+   if (tc->flags & WRDE_DOOFFS)
+       start_offs = sav_we.we_offs;
+diff --git a/posix/wordexp.c b/posix/wordexp.c
+index b6b65dd..26f3a26 100644
+--- a/posix/wordexp.c
++++ b/posix/wordexp.c
+@@ -893,6 +893,10 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
+   pid_t pid;
+   int noexec = 0;
++  /* Do nothing if command substitution should not succeed.  */
++  if (flags & WRDE_NOCMD)
++    return WRDE_CMDSUB;
++
+   /* Don't fork() unless necessary */
+   if (!comm || !*comm)
+     return 0;
+@@ -2082,9 +2086,6 @@ parse_dollars (char **word, size_t *word_length, size_t *max_length,
+           }
+       }
+-      if (flags & WRDE_NOCMD)
+-      return WRDE_CMDSUB;
+-
+       (*offset) += 2;
+       return parse_comm (word, word_length, max_length, words, offset, flags,
+                        quoted? NULL : pwordexp, ifs, ifs_white);
+@@ -2196,9 +2197,6 @@ parse_dquote (char **word, size_t *word_length, size_t *max_length,
+         break;
+       case '`':
+-        if (flags & WRDE_NOCMD)
+-          return WRDE_CMDSUB;
+-
+         ++(*offset);
+         error = parse_backtick (word, word_length, max_length, words,
+                                 offset, flags, NULL, NULL, NULL);
+@@ -2357,12 +2355,6 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
+       break;
+       case '`':
+-      if (flags & WRDE_NOCMD)
+-        {
+-          error = WRDE_CMDSUB;
+-          goto do_error;
+-        }
+-
+       ++words_offset;
+       error = parse_backtick (&word, &word_length, &max_length, words,
+                               &words_offset, flags, pwordexp, ifs,
diff --git a/src/patches/glibc/glibc-rh1183533.patch b/src/patches/glibc/glibc-rh1183533.patch
new file mode 100644 (file)
index 0000000..9263cd5
--- /dev/null
@@ -0,0 +1,210 @@
+commit d5dd6189d506068ed11c8bfa1e1e9bffde04decd
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Mon Jan 21 17:41:28 2013 +0100
+
+    Fix parsing of numeric hosts in gethostbyname_r
+
+diff --git a/nss/digits_dots.c b/nss/digits_dots.c
+index 2b86295..e007ef4 100644
+--- a/nss/digits_dots.c
++++ b/nss/digits_dots.c
+@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+     {
+       if (h_errnop)
+       *h_errnop = NETDB_INTERNAL;
+-      *result = NULL;
++      if (buffer_size == NULL)
++      *status = NSS_STATUS_TRYAGAIN;
++      else
++      *result = NULL;
+       return -1;
+     }
+@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+       }
+       size_needed = (sizeof (*host_addr)
+-                   + sizeof (*h_addr_ptrs) + strlen (name) + 1);
++                   + sizeof (*h_addr_ptrs)
++                   + sizeof (*h_alias_ptr) + strlen (name) + 1);
+       if (buffer_size == NULL)
+         {
+         if (buflen < size_needed)
+           {
++            *status = NSS_STATUS_TRYAGAIN;
+             if (h_errnop != NULL)
+-              *h_errnop = TRY_AGAIN;
++              *h_errnop = NETDB_INTERNAL;
+             __set_errno (ERANGE);
+             goto done;
+           }
+@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+             *buffer_size = 0;
+             __set_errno (save);
+             if (h_errnop != NULL)
+-              *h_errnop = TRY_AGAIN;
++              *h_errnop = NETDB_INTERNAL;
+             *result = NULL;
+             goto done;
+           }
+@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+                 if (! ok)
+                   {
+                     *h_errnop = HOST_NOT_FOUND;
+-                    if (buffer_size)
++                    if (buffer_size == NULL)
++                      *status = NSS_STATUS_NOTFOUND;
++                    else
+                       *result = NULL;
+                     goto done;
+                   }
+@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+                 if (buffer_size == NULL)
+                   *status = NSS_STATUS_SUCCESS;
+                 else
+-                 *result = resbuf;
++                  *result = resbuf;
+                 goto done;
+               }
+@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+       if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':')
+       {
+-        const char *cp;
+-        char *hostname;
+-        typedef unsigned char host_addr_t[16];
+-        host_addr_t *host_addr;
+-        typedef char *host_addr_list_t[2];
+-        host_addr_list_t *h_addr_ptrs;
+-        size_t size_needed;
+-        int addr_size;
+-
+         switch (af)
+           {
+           default:
+@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+             /* This is not possible.  We cannot represent an IPv6 address
+                in an `struct in_addr' variable.  */
+             *h_errnop = HOST_NOT_FOUND;
+-            *result = NULL;
++            if (buffer_size == NULL)
++              *status = NSS_STATUS_NOTFOUND;
++            else
++              *result = NULL;
+             goto done;
+           case AF_INET6:
+@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+             break;
+           }
+-        size_needed = (sizeof (*host_addr)
+-                       + sizeof (*h_addr_ptrs) + strlen (name) + 1);
+-
+-        if (buffer_size == NULL && buflen < size_needed)
+-          {
+-            if (h_errnop != NULL)
+-              *h_errnop = TRY_AGAIN;
+-            __set_errno (ERANGE);
+-            goto done;
+-          }
+-        else if (buffer_size != NULL && *buffer_size < size_needed)
+-          {
+-            char *new_buf;
+-            *buffer_size = size_needed;
+-            new_buf = realloc (*buffer, *buffer_size);
+-
+-            if (new_buf == NULL)
+-              {
+-                save = errno;
+-                free (*buffer);
+-                __set_errno (save);
+-                *buffer = NULL;
+-                *buffer_size = 0;
+-                *result = NULL;
+-                goto done;
+-              }
+-            *buffer = new_buf;
+-          }
+-
+-        memset (*buffer, '\0', size_needed);
+-
+-        host_addr = (host_addr_t *) *buffer;
+-        h_addr_ptrs = (host_addr_list_t *)
+-          ((char *) host_addr + sizeof (*host_addr));
+-        hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs);
+-
+         for (cp = name;; ++cp)
+           {
+             if (!*cp)
+@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
+                 if (inet_pton (AF_INET6, name, host_addr) <= 0)
+                   {
+                     *h_errnop = HOST_NOT_FOUND;
+-                    if (buffer_size)
++                    if (buffer_size == NULL)
++                      *status = NSS_STATUS_NOTFOUND;
++                    else
+                       *result = NULL;
+                     goto done;
+                   }
+diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
+index 1067744..44d00f4 100644
+--- a/nss/getXXbyYY_r.c
++++ b/nss/getXXbyYY_r.c
+@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
+     case -1:
+       return errno;
+     case 1:
++#ifdef NEED_H_ERRNO
++      any_service = true;
++#endif
+       goto done;
+     }
+ #endif
+diff --git a/nss/test-digits-dots.c b/nss/test-digits-dots.c
+new file mode 100644
+index 0000000..1efa344
+--- /dev/null
++++ b/nss/test-digits-dots.c
+@@ -0,0 +1,38 @@
++/* Copyright (C) 2013 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library 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
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++/* Testcase for BZ #15014 */
++
++#include <stdlib.h>
++#include <netdb.h>
++#include <errno.h>
++
++static int
++do_test (void)
++{
++  char buf[32];
++  struct hostent *result = NULL;
++  struct hostent ret;
++  int h_err = 0;
++  int err;
++
++  err = gethostbyname_r ("1.2.3.4", &ret, buf, sizeof (buf), &result, &h_err);
++  return err == ERANGE && h_err == NETDB_INTERNAL ? EXIT_SUCCESS : EXIT_FAILURE;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh995972.patch b/src/patches/glibc/glibc-rh995972.patch
new file mode 100644 (file)
index 0000000..0178bca
--- /dev/null
@@ -0,0 +1,246 @@
+commit d26dfc60edc8c6dd160eefff16a734152a835ca0
+Author: Martin von Gagern <Martin.vGagern@gmx.net>
+Date:   Sat May 14 21:25:43 2011 -0400
+
+    Fix handling of static TLS in dlopen'ed objects
+    
+    When dynamically loading a library along with several dependencies, calls to
+    _dl_add_to_slotinfo and _dl_update_slotinfo can become intermixed. As a
+    consequence, _dl_update_slotinfo will update the generation counter of the dtv
+    although not all of the slots belonging to that generation have been added.
+    Subsequent calls to _dl_add_to_slotinfo will add more slots to the same
+    generation, for which no storage will be allocated, as the dtv generation
+    checks will claim no work is necessary. This will lead to uninitialized dtv
+    entries and will likely cause a SIGSEGV when thread local variables are
+    accessed.
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 8d9657d..6efb86c 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -76,6 +76,7 @@ distribute   := rtld-Rules \
+                  tst-tlsmod12.c tst-tls10.h tst-alignmod.c tst-alignmod2.c \
+                  circlemod1.c circlemod1a.c circlemod2.c circlemod2a.c \
+                  circlemod3.c circlemod3a.c nodlopenmod2.c \
++                 tst-tls19mod1.c tst-tls19mod2.c tst-tls19mod3.c \
+                  tls-macros.h \
+                  reldep8mod1.c reldep8mod2.c reldep8mod3.c \
+                  nodel2mod1.c nodel2mod2.c nodel2mod3.c \
+@@ -194,7 +195,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
+        restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
+        circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
+        tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-tls15 \
+-       tst-tls16 tst-tls17 tst-tls18 tst-tls-dlinfo \
++       tst-tls16 tst-tls17 tst-tls18 tst-tls19 tst-tls-dlinfo \
+        tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
+        tst-dlmodcount tst-dlopenrpath tst-deep1 \
+        tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
+@@ -240,6 +241,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+               $(patsubst %,tst-tlsmod17a%,$(tlsmod17a-suffixes)) \
+               tst-tlsmod17b \
+               $(patsubst %,tst-tlsmod18a%,$(tlsmod18a-suffixes)) \
++              tst-tls19mod1 tst-tls19mod2 tst-tls19mod3 \
+               circlemod1 circlemod1a circlemod2 circlemod2a \
+               circlemod3 circlemod3a \
+               reldep8mod1 reldep8mod2 reldep8mod3 \
+@@ -525,6 +527,8 @@ $(objpfx)tst-tlsmod13a.so: $(objpfx)tst-tlsmod13.so
+ # For tst-tls9-static, make sure the modules it dlopens have libc.so in DT_NEEDED
+ $(objpfx)tst-tlsmod5.so: $(common-objpfx)libc.so
+ $(objpfx)tst-tlsmod6.so: $(common-objpfx)libc.so
++$(objpfx)tst-tls19mod1.so: $(objpfx)tst-tls19mod2.so $(objpfx)tst-tls19mod3.so
++$(objpfx)tst-tls19mod3.so: $(objpfx)ld.so
+ $(objpfx)reldep8mod3.so: $(objpfx)reldep8mod1.so $(objpfx)reldep8mod2.so
+ $(objpfx)nodel2mod3.so: $(objpfx)nodel2mod1.so $(objpfx)nodel2mod2.so
+ $(objpfx)reldep9mod2.so: $(objpfx)reldep9mod1.so
+@@ -822,6 +826,9 @@ $(patsubst %,$(objpfx)%.os,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.os : t
+       $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ -DN=$* -DNOT_IN_libc=1 $<
+ $(patsubst %,$(objpfx)tst-tlsmod18a%.so,$(tlsmod18a-suffixes)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
++$(objpfx)tst-tls19: $(libdl)
++$(objpfx)tst-tls19.out: $(objpfx)tst-tls19mod1.so
++
+ CFLAGS-tst-align.c = $(stack-align-test-flags)
+ CFLAGS-tst-align2.c = $(stack-align-test-flags)
+ CFLAGS-tst-alignmod.c = $(stack-align-test-flags)
+diff --git a/elf/dl-open.c b/elf/dl-open.c
+index cf8e8cc..8d90b56 100644
+--- a/elf/dl-open.c
++++ b/elf/dl-open.c
+@@ -347,6 +347,7 @@ dl_open_worker (void *a)
+   /* If the file is not loaded now as a dependency, add the search
+      list of the newly loaded object to the scope.  */
+   bool any_tls = false;
++  unsigned int first_static_tls = new->l_searchlist.r_nlist;
+   for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
+     {
+       struct link_map *imap = new->l_searchlist.r_list[i];
+@@ -425,30 +426,9 @@ dl_open_worker (void *a)
+            might have to increase its size.  */
+         _dl_add_to_slotinfo (imap);
+-        if (imap->l_need_tls_init)
+-          {
+-            /* For static TLS we have to allocate the memory here
+-               and now.  This includes allocating memory in the DTV.
+-               But we cannot change any DTV other than our own. So,
+-               if we cannot guarantee that there is room in the DTV
+-               we don't even try it and fail the load.
+-
+-               XXX We could track the minimum DTV slots allocated in
+-               all threads.  */
+-            if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS)
+-              _dl_signal_error (0, "dlopen", NULL, N_("\
+-cannot load any more object with static TLS"));
+-
+-            imap->l_need_tls_init = 0;
+-#ifdef SHARED
+-            /* Update the slot information data for at least the
+-               generation of the DSO we are allocating data for.  */
+-            _dl_update_slotinfo (imap->l_tls_modid);
+-#endif
+-
+-            GL(dl_init_static_tls) (imap);
+-            assert (imap->l_need_tls_init == 0);
+-          }
++        if (imap->l_need_tls_init
++            && first_static_tls == new->l_searchlist.r_nlist)
++          first_static_tls = i;
+         /* We have to bump the generation counter.  */
+         any_tls = true;
+@@ -460,6 +440,40 @@ cannot load any more object with static TLS"));
+     _dl_fatal_printf (N_("\
+ TLS generation counter wrapped!  Please report this."));
++  /* We need a second pass for static tls data, because _dl_update_slotinfo
++     must not be run while calls to _dl_add_to_slotinfo are still pending. */
++  for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i)
++    {
++      struct link_map *imap = new->l_searchlist.r_list[i];
++
++      if (imap->l_need_tls_init
++        && ! imap->l_init_called
++        && imap->l_tls_blocksize > 0)
++      {
++        /* For static TLS we have to allocate the memory here and
++           now.  This includes allocating memory in the DTV.  But we
++           cannot change any DTV other than our own. So, if we
++           cannot guarantee that there is room in the DTV we don't
++           even try it and fail the load.
++
++           XXX We could track the minimum DTV slots allocated in
++           all threads.  */
++        if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS)
++          _dl_signal_error (0, "dlopen", NULL, N_("\
++cannot load any more object with static TLS"));
++
++        imap->l_need_tls_init = 0;
++#ifdef SHARED
++        /* Update the slot information data for at least the
++           generation of the DSO we are allocating data for.  */
++        _dl_update_slotinfo (imap->l_tls_modid);
++#endif
++
++        GL(dl_init_static_tls) (imap);
++        assert (imap->l_need_tls_init == 0);
++      }
++    }
++
+   /* Notify the debugger all new objects have been relocated.  */
+   if (relocation_in_progress)
+     LIBC_PROBE (rtld_reloc_complete, 3, args->nsid, r, new);
+diff --git a/elf/tst-tls19.c b/elf/tst-tls19.c
+new file mode 100644
+index 0000000..acbc1d6
+--- /dev/null
++++ b/elf/tst-tls19.c
+@@ -0,0 +1,27 @@
++// BZ 12453
++#include <stdio.h>
++#include <dlfcn.h>
++
++
++static int
++do_test (void)
++{
++  void* dl = dlopen ("tst-tls19mod1.so", RTLD_LAZY | RTLD_GLOBAL);
++  if (dl == NULL)
++    {
++      printf ("Error loading tst-tls19mod1.so: %s\n", dlerror ());
++      return 1;
++    }
++
++  int (*fn) (void) = dlsym (dl, "foo");
++  if (fn == NULL)
++    {
++      printf("Error obtaining symbol foo\n");
++      return 1;
++    }
++
++  return fn ();
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/elf/tst-tls19mod1.c b/elf/tst-tls19mod1.c
+new file mode 100644
+index 0000000..2790097
+--- /dev/null
++++ b/elf/tst-tls19mod1.c
+@@ -0,0 +1,15 @@
++#include <stdio.h>
++
++extern int bar (void);
++extern int baz (void);
++
++int
++foo (void)
++{
++  int v1 = bar ();
++  int v2 = baz ();
++
++  printf ("bar=%d, baz=%d\n", v1, v2);
++
++  return v1 != 666 || v2 != 42;
++}
+diff --git a/elf/tst-tls19mod2.c b/elf/tst-tls19mod2.c
+new file mode 100644
+index 0000000..cae702f
+--- /dev/null
++++ b/elf/tst-tls19mod2.c
+@@ -0,0 +1,13 @@
++static int __thread tbar __attribute__ ((tls_model ("initial-exec"))) = 666;
++
++void
++setter (int a)
++{
++  tbar = a;
++}
++
++int
++bar (void)
++{
++  return tbar;
++}
+diff --git a/elf/tst-tls19mod3.c b/elf/tst-tls19mod3.c
+new file mode 100644
+index 0000000..e7b2801
+--- /dev/null
++++ b/elf/tst-tls19mod3.c
+@@ -0,0 +1,16 @@
++#include <stdio.h>
++
++static int __thread tbaz __attribute__ ((tls_model ("local-dynamic"))) = 42;
++
++void
++setter2 (int a)
++{
++  tbaz = a;
++}
++
++int
++baz (void)
++{
++  printf ("&tbaz=%p\n", &tbaz);
++  return tbaz;
++}
diff --git a/src/patches/linux-3.14.x-update_banana_dts.patch b/src/patches/linux-3.14.x-update_banana_dts.patch
new file mode 100644 (file)
index 0000000..309416b
--- /dev/null
@@ -0,0 +1,301 @@
+diff -Naur linux-3.14.30.org/arch/arm/boot/dts/Makefile linux-3.14.30/arch/arm/boot/dts/Makefile
+--- linux-3.14.30.org/arch/arm/boot/dts/Makefile       2015-01-29 19:56:17.000000000 +0100
++++ linux-3.14.30/arch/arm/boot/dts/Makefile   2015-01-29 20:41:06.598335182 +0100
+@@ -304,6 +304,7 @@
+       sun5i-a13-olinuxino-micro.dtb \
+       sun6i-a31-colombus.dtb \
+       sun7i-a20-bananapi.dtb \
++      sun7i-a20-bananapro.dtb \
+       sun7i-a20-cubieboard2.dtb \
+       sun7i-a20-cubietruck.dtb \
+       sun7i-a20-lamobo-r1.dtb \
+diff -Naur linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-bananapi.dts linux-3.14.30/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+--- linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-bananapi.dts 2015-01-29 19:56:17.000000000 +0100
++++ linux-3.14.30/arch/arm/boot/dts/sun7i-a20-bananapi.dts     2015-01-29 20:33:18.143334959 +0100
+@@ -199,7 +199,7 @@
+                       regulator-name = "gmac-3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+-                      startup-delay-us = <50000>;
++                      startup-delay-us = <100000>;
+                       enable-active-high;
+                       gpio = <&pio 7 23 0>;
+                       status = "okay";
+diff -Naur linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-bananapro.dts linux-3.14.30/arch/arm/boot/dts/sun7i-a20-bananapro.dts
+--- linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-bananapro.dts        1970-01-01 01:00:00.000000000 +0100
++++ linux-3.14.30/arch/arm/boot/dts/sun7i-a20-bananapro.dts    2015-01-29 20:40:45.153335172 +0100
+@@ -0,0 +1,262 @@
++/*
++ * Copyright 2015 Arne Fitzenreiter
++ * Arne Fitzenreiter <arne_f@ipfire.org>
++ *
++ * The code contained herein is licensed under the GNU General Public
++ * License. You may obtain a copy of the GNU General Public License
++ * Version 2 or later at the following locations:
++ *
++ * http://www.opensource.org/licenses/gpl-license.html
++ * http://www.gnu.org/copyleft/gpl.html
++ */
++
++/dts-v1/;
++/include/ "sun7i-a20.dtsi"
++/include/ "sunxi-common-regulators.dtsi"
++#include <dt-bindings/input/input.h>
++
++/ {
++      model = "LeMaker Banana Pro";
++      compatible = "lemaker,bananapro", "allwinner,sun7i-a20";
++
++      aliases {
++              spi0 = &spi1;
++              spi1 = &spi2;
++      };
++
++      soc@01c00000 {
++              spi1: spi@01c06000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&spi1_pins_a>;
++                      status = "okay";
++              };
++
++              spi2: spi@01c17000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&spi2_pins_a>;
++                      status = "okay";
++              };
++
++              mmc0: mmc@01c0f000 {
++                      pinctrl-names = "default", "default";
++                      pinctrl-0 = <&mmc0_pins_a>;
++                      pinctrl-1 = <&mmc0_cd_pin_bananapi>;
++                      cd-gpios = <&pio 7 10 0>; /* PH10 */
++                      status = "okay";
++              };
++
++              mmc3: mmc@01c12000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&mmc3_pins_a>;
++                      vmmc-supply = <&reg_vmmc3>;
++                      bus-width = <4>;
++                      non-removable;
++                      status = "okay";
++              };
++
++              usbphy: phy@01c13400 {
++                      usb1_vbus-supply = <&reg_usb1_vbus>;
++                      usb2_vbus-supply = <&reg_usb2_vbus>;
++                      status = "okay";
++              };
++
++              ehci0: usb@01c14000 {
++                      status = "okay";
++              };
++
++              ohci0: usb@01c14400 {
++                      status = "okay";
++              };
++
++              ahci: sata@01c18000 {
++                      target-supply = <&reg_ahci_5v>;
++                      status = "okay";
++              };
++
++              ehci1: usb@01c1c000 {
++                      status = "okay";
++              };
++
++              ohci1: usb@01c1c400 {
++                      status = "okay";
++              };
++
++              pinctrl@01c20800 {
++                      usb1_vbus_pin_bananapro: usb1_vbus_pin@0 {
++                              allwinner,pins = "PH0";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++
++                      usb2_vbus_pin_bananapro: usb2_vbus_pin@0 {
++                              allwinner,pins = "PH1";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++
++                      led_pins_bananapi: led_pins@0 {
++                              allwinner,pins = "PH24", "PG2";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++
++                      mmc0_cd_pin_bananapi: mmc0_cd_pin@0 {
++                              allwinner,pins = "PH10";
++                              allwinner,function = "gpio_in";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <1>;
++                      };
++ 
++                      vmmc3_pin_bananapro: vmmc3_pin@0 {
++                              allwinner,pins = "PH22";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++
++                      gmac_power_pin_bananapi: gmac_power_pin@0 {
++                              allwinner,pins = "PH23";
++                              allwinner,function = "gpio_out";
++                              allwinner,drive = <0>;
++                              allwinner,pull = <0>;
++                      };
++              };
++
++              lradc: lradc@01c22800 {
++                      allwinner,chan0-step = <200>;
++                      linux,chan0-keycodes = <KEY_VOLUMEUP KEY_VOLUMEDOWN
++                                              KEY_MENU KEY_SEARCH KEY_HOME
++                                              KEY_ESC KEY_ENTER>;
++                      status = "okay";
++              };
++
++              ir0: ir@01c21800 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&ir0_pins_a>;
++                      status = "okay";
++              };
++
++              uart0: serial@01c28000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart0_pins_a>;
++                      status = "okay";
++              };
++
++              uart2: serial@01c28800 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart2_pins_a>;
++                      status = "okay";
++              };
++
++              uart6: serial@01c29800 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart6_pins_a>;
++                      status = "okay";
++              };
++
++              uart7: serial@01c29c00 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&uart7_pins_a>;
++                      status = "okay";
++              };
++
++              i2c0: i2c@01c2ac00 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&i2c0_pins_a>;
++                      status = "okay";
++
++                      axp: axp20x@34 {
++                              reg = <0x34>;
++                              interrupt-parent = <&nmi_intc>;
++                              interrupts = <0 8>;
++                              axp,system-power-controller;
++                              /include/ "x-powers-axp209.dtsi"
++                      };
++              };
++
++              i2c1: i2c@01c2b000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&i2c1_pins_a>;
++                      status = "okay";
++              };
++
++              i2c2: i2c@01c2b400 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&i2c2_pins_a>;
++                      status = "okay";
++              };
++
++              gmac: ethernet@01c50000 {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&gmac_pins_rgmii_a>;
++                      phy = <&phy1>;
++                      phy-mode = "rgmii";
++                      phy-supply = <&reg_gmac_3v3>;
++                      status = "okay";
++
++                      phy1: ethernet-phy@1 {
++                              reg = <1>;
++                      };
++              };
++      };
++
++      leds {
++              compatible = "gpio-leds";
++              pinctrl-names = "default";
++              pinctrl-0 = <&led_pins_bananapi>;
++
++              green {
++                      label = "bananapi:green:usr";
++                      gpios = <&pio 7 24 0>;
++                      linux,default-trigger = "heartbeat";
++              };
++              blue {
++                      label = "bananapi:blue:usr";
++                      gpios = <&pio 6 2 0>;
++                      linux,default-trigger = "mmc0";
++              };
++      };
++
++        reg_ahci_5v: ahci-5v {
++                status = "okay";
++        };
++
++        reg_usb1_vbus: usb1-vbus {
++              pinctrl-0 = <&usb1_vbus_pin_bananapro>;
++              gpio = <&pio 7 0 0>; /* PH0 */
++                status = "okay";
++        };
++
++        reg_usb2_vbus: usb2-vbus {
++              pinctrl-0 = <&usb2_vbus_pin_bananapro>;
++              gpio = <&pio 7 1 0>; /* PH1 */
++                status = "okay";
++        };
++
++      reg_gmac_3v3: gmac-3v3 {
++                      compatible = "regulator-fixed";
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&gmac_power_pin_bananapi>;
++                      regulator-name = "gmac-3v3";
++                      regulator-min-microvolt = <3300000>;
++                      regulator-max-microvolt = <3300000>;
++                      startup-delay-us = <100000>;
++                      enable-active-high;
++                      gpio = <&pio 7 23 0>;
++                      status = "okay";
++      };
++
++      reg_vmmc3: vmmc3 {
++              compatible = "regulator-fixed";
++              pinctrl-names = "default";
++              pinctrl-0 = <&vmmc3_pin_bananapro>;
++              regulator-name = "vmmc3";
++              regulator-min-microvolt = <3300000>;
++              regulator-max-microvolt = <3300000>;
++              enable-active-high;
++              gpio = <&pio 7 22 0>;
++      };
++};
+diff -Naur linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts linux-3.14.30/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+--- linux-3.14.30.org/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts        2015-01-29 19:56:17.000000000 +0100
++++ linux-3.14.30/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts    2015-01-30 00:00:01.678340873 +0100
+@@ -199,7 +199,7 @@
+                       regulator-name = "gmac-3v3";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+-                      startup-delay-us = <50000>;
++                      startup-delay-us = <100000>;
+                       enable-active-high;
+                       gpio = <&pio 7 23 0>;
+                       status = "okay";
diff --git a/src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch b/src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch
new file mode 100644 (file)
index 0000000..df2cb09
--- /dev/null
@@ -0,0 +1,164 @@
+From a78ecdd47509626711a13481f53696e01d4b8c62 Mon Sep 17 00:00:00 2001
+From: Tobias Brunner <tobias@strongswan.org>
+Date: Mon, 1 Dec 2014 17:21:59 +0100
+Subject: [PATCH] crypto: Define MODP_CUSTOM outside of IKE DH range
+
+Before this fix it was possible to crash charon with an IKE_SA_INIT
+message containing a KE payload with DH group MODP_CUSTOM(1025).
+Defining MODP_CUSTOM outside of the two byte IKE DH identifier range
+prevents it from getting negotiated.
+
+Fixes CVE-2014-9221 in version 5.1.2 and newer.
+---
+ src/charon-tkm/src/tkm/tkm_diffie_hellman.c                   |  2 +-
+ src/libstrongswan/crypto/diffie_hellman.c                     | 11 ++++++-----
+ src/libstrongswan/crypto/diffie_hellman.h                     |  6 ++++--
+ src/libstrongswan/plugins/gcrypt/gcrypt_dh.c                  |  2 +-
+ src/libstrongswan/plugins/gmp/gmp_diffie_hellman.c            |  2 +-
+ src/libstrongswan/plugins/ntru/ntru_ke.c                      |  2 +-
+ src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c    |  2 +-
+ src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c |  2 +-
+ src/libstrongswan/plugins/pkcs11/pkcs11_dh.c                  |  2 +-
+ 9 files changed, 17 insertions(+), 14 deletions(-)
+
+diff --git a/src/charon-tkm/src/tkm/tkm_diffie_hellman.c b/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
+index 67db5e6d87d6..836e0b7f088d 100644
+--- a/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
++++ b/src/charon-tkm/src/tkm/tkm_diffie_hellman.c
+@@ -41,7 +41,7 @@ struct private_tkm_diffie_hellman_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /**
+        * Diffie Hellman public value.
+diff --git a/src/libstrongswan/crypto/diffie_hellman.c b/src/libstrongswan/crypto/diffie_hellman.c
+index bada1c529951..ac106e9c4d45 100644
+--- a/src/libstrongswan/crypto/diffie_hellman.c
++++ b/src/libstrongswan/crypto/diffie_hellman.c
+@@ -42,15 +42,16 @@ ENUM_NEXT(diffie_hellman_group_names, MODP_1024_160, ECP_512_BP, ECP_521_BIT,
+       "ECP_256_BP",
+       "ECP_384_BP",
+       "ECP_512_BP");
+-ENUM_NEXT(diffie_hellman_group_names, MODP_NULL, MODP_CUSTOM, ECP_512_BP,
+-      "MODP_NULL",
+-      "MODP_CUSTOM");
+-ENUM_NEXT(diffie_hellman_group_names, NTRU_112_BIT, NTRU_256_BIT, MODP_CUSTOM,
++ENUM_NEXT(diffie_hellman_group_names, MODP_NULL, MODP_NULL, ECP_512_BP,
++      "MODP_NULL");
++ENUM_NEXT(diffie_hellman_group_names, NTRU_112_BIT, NTRU_256_BIT, MODP_NULL,
+       "NTRU_112",
+       "NTRU_128",
+       "NTRU_192",
+       "NTRU_256");
+-ENUM_END(diffie_hellman_group_names, NTRU_256_BIT);
++ENUM_NEXT(diffie_hellman_group_names, MODP_CUSTOM, MODP_CUSTOM, NTRU_256_BIT,
++      "MODP_CUSTOM");
++ENUM_END(diffie_hellman_group_names, MODP_CUSTOM);
+ /**
+diff --git a/src/libstrongswan/crypto/diffie_hellman.h b/src/libstrongswan/crypto/diffie_hellman.h
+index 105db22f14d4..d5161d077bb2 100644
+--- a/src/libstrongswan/crypto/diffie_hellman.h
++++ b/src/libstrongswan/crypto/diffie_hellman.h
+@@ -63,12 +63,14 @@ enum diffie_hellman_group_t {
+       /** insecure NULL diffie hellman group for testing, in PRIVATE USE */
+       MODP_NULL = 1024,
+       /** MODP group with custom generator/prime */
+-      MODP_CUSTOM = 1025,
+       /** Parameters defined by IEEE 1363.1, in PRIVATE USE */
+       NTRU_112_BIT = 1030,
+       NTRU_128_BIT = 1031,
+       NTRU_192_BIT = 1032,
+-      NTRU_256_BIT = 1033
++      NTRU_256_BIT = 1033,
++      /** internally used DH group with additional parameters g and p, outside
++       * of PRIVATE USE (i.e. IKEv2 DH group range) so it can't be negotiated */
++      MODP_CUSTOM = 65536,
+ };
+ /**
+diff --git a/src/libstrongswan/plugins/gcrypt/gcrypt_dh.c b/src/libstrongswan/plugins/gcrypt/gcrypt_dh.c
+index f418b941db86..299865da2e09 100644
+--- a/src/libstrongswan/plugins/gcrypt/gcrypt_dh.c
++++ b/src/libstrongswan/plugins/gcrypt/gcrypt_dh.c
+@@ -35,7 +35,7 @@ struct private_gcrypt_dh_t {
+       /**
+        * Diffie Hellman group number
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /*
+        * Generator value
+diff --git a/src/libstrongswan/plugins/gmp/gmp_diffie_hellman.c b/src/libstrongswan/plugins/gmp/gmp_diffie_hellman.c
+index b74d35169f44..9936f7e4518f 100644
+--- a/src/libstrongswan/plugins/gmp/gmp_diffie_hellman.c
++++ b/src/libstrongswan/plugins/gmp/gmp_diffie_hellman.c
+@@ -42,7 +42,7 @@ struct private_gmp_diffie_hellman_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /*
+        * Generator value.
+diff --git a/src/libstrongswan/plugins/ntru/ntru_ke.c b/src/libstrongswan/plugins/ntru/ntru_ke.c
+index abaa22336221..e64f32b91d0e 100644
+--- a/src/libstrongswan/plugins/ntru/ntru_ke.c
++++ b/src/libstrongswan/plugins/ntru/ntru_ke.c
+@@ -56,7 +56,7 @@ struct private_ntru_ke_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /**
+        * NTRU Parameter Set
+diff --git a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
+index ff3382473666..1e68ac59b838 100644
+--- a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
++++ b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
+@@ -38,7 +38,7 @@ struct private_openssl_diffie_hellman_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /**
+        * Diffie Hellman object
+diff --git a/src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c b/src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c
+index b487d59a59a3..50853d6f0bde 100644
+--- a/src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c
++++ b/src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c
+@@ -40,7 +40,7 @@ struct private_openssl_ec_diffie_hellman_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /**
+        * EC private (public) key
+diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_dh.c b/src/libstrongswan/plugins/pkcs11/pkcs11_dh.c
+index 36cc284bf2b5..23b63d2386af 100644
+--- a/src/libstrongswan/plugins/pkcs11/pkcs11_dh.c
++++ b/src/libstrongswan/plugins/pkcs11/pkcs11_dh.c
+@@ -47,7 +47,7 @@ struct private_pkcs11_dh_t {
+       /**
+        * Diffie Hellman group number.
+        */
+-      u_int16_t group;
++      diffie_hellman_group_t group;
+       /**
+        * Handle for own private value
+-- 
+1.9.1
+
index 53fa0b3a1ee382cb7174ed907cce6d5552d34dca..060dd2d8b0fbf150f28a2af36077097c8085bbdb 100644 (file)
@@ -3,13 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Roberto Peña <roberto.pena@northsecure.es>, 2015
+# Roberto Peña <roberto.pena@northsecure.es>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-08-21 15:13+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-02-01 09:37+0000\n"
+"Last-Translator: Roberto Peña <roberto.pena@northsecure.es>\n"
 "Language-Team: Spanish (http://www.transifex.com/projects/p/ipfire/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,31 +21,31 @@ msgstr ""
 
 #: dhcp.c:50
 msgid "Start address:"
-msgstr ""
+msgstr "Dirección inicial:"
 
 #: dhcp.c:51
 msgid "End address:"
-msgstr ""
+msgstr "Dirección final:"
 
 #: dhcp.c:52 networking.c:717
 msgid "Primary DNS:"
-msgstr ""
+msgstr "DNS primario:"
 
 #: dhcp.c:53 networking.c:723
 msgid "Secondary DNS:"
-msgstr ""
+msgstr "DNS secundario:"
 
 #: dhcp.c:54
 msgid "Default lease (mins):"
-msgstr ""
+msgstr "Concesión por defecto (mins):"
 
 #: dhcp.c:55
 msgid "Max lease (mins):"
-msgstr ""
+msgstr "Concesión máxima (mins):"
 
 #: dhcp.c:56
 msgid "Domain name suffix:"
-msgstr ""
+msgstr "Sufijo del nombre de dominio:"
 
 #: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
 #: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
@@ -51,19 +53,19 @@ msgstr ""
 #: networking.c:442 networking.c:552 networking.c:603 networking.c:610
 #: networking.c:713 timezone.c:63
 msgid "Unable to open settings file"
-msgstr ""
+msgstr "No se puede abrir archivo de configuración"
 
 #: dhcp.c:111
 msgid "DHCP server configuration"
-msgstr ""
+msgstr "Configuración del servidor DHCP"
 
 #: dhcp.c:116
 msgid "Configure the DHCP server by entering the settings information."
-msgstr ""
+msgstr "Configurar el servidor DHCP mediante la introducción de la información de configuración."
 
 #: dhcp.c:125
 msgid "Enabled"
-msgstr ""
+msgstr "Habilitado"
 
 #: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
 #: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
@@ -71,367 +73,367 @@ msgstr ""
 #: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
 #: timezone.c:78
 msgid "OK"
-msgstr ""
+msgstr "Ok"
 
 #: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
 #: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
 #: networking.c:410 networking.c:560 networking.c:653 networking.c:746
 #: passwords.c:89 timezone.c:78
 msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
 
 #: dhcp.c:156
 msgid ""
 "The following fields are invalid:\n"
 "\n"
-msgstr ""
+msgstr "Los siguientes campos son inválidos:\n\n"
 
 #: dhcp.c:159
 msgid "Start address"
-msgstr ""
+msgstr "Dirección de inicio"
 
 #: dhcp.c:165
 msgid "End address"
-msgstr ""
+msgstr "Dirección final"
 
 #: dhcp.c:173 networking.c:755
 msgid "Primary DNS"
-msgstr ""
+msgstr "DNS primario"
 
 #: dhcp.c:182 networking.c:764
 msgid "Secondary DNS"
-msgstr ""
+msgstr "DNS secundario"
 
 #: dhcp.c:189
 msgid "Default lease time"
-msgstr ""
+msgstr "Tiempo de concesión por defecto"
 
 #: dhcp.c:195
 msgid "Max. lease time"
-msgstr ""
+msgstr "Concesión máx. de tiempo"
 
 #: domainname.c:42 main.c:70
 msgid "Domain name"
-msgstr ""
+msgstr "Nombre de dominio"
 
 #: domainname.c:42
 msgid "Enter Domain name"
-msgstr ""
+msgstr "Introduzca el nombre de dominio"
 
 #: domainname.c:48
 msgid "Domain name cannot be empty."
-msgstr ""
+msgstr "El nombre de dominio no puede estar vacio."
 
 #: domainname.c:50
 msgid "Domain name cannot contain spaces."
-msgstr ""
+msgstr "El nombre de dominio no puede contener espacios."
 
 #: domainname.c:53
 msgid "Domain name may only contain letters, numbers, hyphens and periods."
-msgstr ""
+msgstr "El nombre de dominio sólo puede contener letras, números, guiones y puntos."
 
 #: hostname.c:46 main.c:69
 msgid "Hostname"
-msgstr ""
+msgstr "Nombre de host"
 
 #: hostname.c:46
 msgid "Enter the machine's hostname."
-msgstr ""
+msgstr "Introduzca el nombre de host de la máquina."
 
 #: hostname.c:53
 msgid "Hostname cannot be empty."
-msgstr ""
+msgstr "El nombre de host no puede estar vacio."
 
 #: hostname.c:55
 msgid "Hostname cannot contain spaces."
-msgstr ""
+msgstr "El nombre de host no puede contener espacios."
 
 #: hostname.c:58
 msgid "Hostname may only contain letters, numbers and hyphens."
-msgstr ""
+msgstr "El nombre de host sólo puede contener letras, números y guiones."
 
 #: keymap.c:84 main.c:67
 msgid "Keyboard mapping"
-msgstr ""
+msgstr "Mapa del teclado"
 
 #: keymap.c:85
 msgid "Choose the type of keyboard you are using from the list below."
-msgstr ""
+msgstr "Elija el tipo de teclado que está utilizando de la lista de abajo."
 
 #: main.c:68 timezone.c:77
 msgid "Timezone"
-msgstr ""
+msgstr "Zona horaria"
 
 #: main.c:71 networking.c:110 networking.c:115 networking.c:447
 msgid "Networking"
-msgstr ""
+msgstr "Networking"
 
 #: main.c:72 misc.c:147
 msgid "ISDN"
-msgstr ""
+msgstr "RDSI"
 
 #: main.c:73
 msgid "'root' password"
-msgstr ""
+msgstr "Contraseña de 'root'"
 
 #: main.c:74
 msgid "'admin' password"
-msgstr ""
+msgstr "Contraseña de 'admin'"
 
 #: main.c:90
 msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
-msgstr ""
+msgstr "<Tab>/<Alt-Tab> entre elementos | <Space> seleccionar"
 
 #: main.c:97
 msgid "Section menu"
-msgstr ""
+msgstr "Menú de las secciones"
 
 #: main.c:98
 msgid "Select the item you wish to configure."
-msgstr ""
+msgstr "Seleccione el elemento que desea configurar."
 
 #: main.c:99
 msgid "Quit"
-msgstr ""
+msgstr "Salir"
 
 #: main.c:172
 msgid "Setup is complete."
-msgstr ""
+msgstr "La instalación está completa."
 
 #: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
 msgid "Warning"
-msgstr ""
+msgstr "Advertencia"
 
 #: main.c:175
 msgid ""
 "Initial setup was not entirely complete. You must ensure that Setup is "
 "properly finished by running setup again at the shell."
-msgstr ""
+msgstr "La instalación inicial no ha sido completada enteramente. Debe asegurarse que está correctamente finalizada ejecutando la instalación en el shell."
 
 #: misc.c:62
 #, c-format
 msgid "Unable to write %s/main/hostname.conf"
-msgstr ""
+msgstr "No se puede escribir %s/main/hostname.conf"
 
 #: misc.c:71
 msgid "Unable to open main hosts file."
-msgstr ""
+msgstr "No se puede abrir archivo principal host."
 
 #: misc.c:76
 msgid "Unable to write /etc/hosts."
-msgstr ""
+msgstr "No se puede escribir /etc/hosts."
 
 #: misc.c:117
 msgid "Unable to write /etc/hosts.deny."
-msgstr ""
+msgstr "No se puede escribir /etc/hosts.deny."
 
 #: misc.c:125
 msgid "Unable to write /etc/hosts.allow."
-msgstr ""
+msgstr "No se puede escribir /etc/hosts.allow."
 
 #: misc.c:136
 msgid "Unable to set hostname."
-msgstr ""
+msgstr "No se puede establecer el nombre del host."
 
 #: misc.c:147
 msgid "Scanning and configuring ISDN devices."
-msgstr ""
+msgstr "Escaneando y configurando los dispositivos RDSI."
 
 #: misc.c:148
 msgid "Unable to scan for ISDN devices."
-msgstr ""
+msgstr "Incapaz de buscar los dispositivos RDSI."
 
 #: netstuff.c:86
 #, c-format
 msgid "Interface - %s"
-msgstr ""
+msgstr "Interfaz - %s"
 
 #: netstuff.c:91
 #, c-format
 msgid "Enter the IP address information for the %s interface."
-msgstr ""
+msgstr "Introduzca la información de la dirección IP para la interfaz %s."
 
 #: netstuff.c:103
 msgid "Static"
-msgstr ""
+msgstr "Estático"
 
 #: netstuff.c:104
 msgid "DHCP"
-msgstr ""
+msgstr "DHCP"
 
 #: netstuff.c:105
 msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
-msgstr ""
+msgstr "PPP DIALUP (PPPoE, modem, ATM ...)"
 
 #: netstuff.c:113
 msgid "DHCP Hostname:"
-msgstr ""
+msgstr "Nombre del host DHCP:"
 
 #: netstuff.c:115
 msgid "Force DHCP MTU:"
-msgstr ""
+msgstr "Forzar DHCP MTU:"
 
 #: netstuff.c:134
 msgid "IP address:"
-msgstr ""
+msgstr "Dirección IP:"
 
 #: netstuff.c:146
 msgid "Network mask:"
-msgstr ""
+msgstr "Máscara de red:"
 
 #: netstuff.c:173 networking.c:749
 msgid "The following fields are invalid:"
-msgstr ""
+msgstr "Los siguientes campos son inválidos:"
 
 #: netstuff.c:183
 msgid "IP address"
-msgstr ""
+msgstr "Dirección IP"
 
 #: netstuff.c:189
 msgid "Network mask"
-msgstr ""
+msgstr "Máscara de red"
 
 #: netstuff.c:198
 msgid "DHCP hostname"
-msgstr ""
+msgstr "Nombre del host DHCP"
 
 #: netstuff.c:396 netstuff.c:709
 msgid "Unset"
-msgstr ""
+msgstr "No definido"
 
 #: netstuff.c:669
 #, c-format
 msgid "Please choose a networkcard for the following interface - %s."
-msgstr ""
+msgstr "Por favor elija una tarjeta de red para la siguiente interfaz - %s."
 
 #: netstuff.c:672
 msgid "Extended Network Menu"
-msgstr ""
+msgstr "Menú Extendido de Red"
 
 #: netstuff.c:673 networking.c:520
 msgid "Select"
-msgstr ""
+msgstr "Seleccionar"
 
 #: netstuff.c:673
 msgid "Identify"
-msgstr ""
+msgstr "Identificar"
 
 #: netstuff.c:678
 msgid "Device Identification"
-msgstr ""
+msgstr "Identificación del dispositivo"
 
 #: netstuff.c:678
 msgid "The lights on the selected port should flash now for 10 seconds..."
-msgstr ""
+msgstr "Las luces en el puerto seleccionado deben parpadear ahora durante 10 segundos ..."
 
 #: netstuff.c:679
 msgid "Identification is not supported by this interface."
-msgstr ""
+msgstr "La identificación no es compatible con esta interfaz."
 
 #: netstuff.c:691
 msgid "There are no unassigned interfaces on your system."
-msgstr ""
+msgstr "No hay interfaces no asignadas en el sistema."
 
 #: netstuff.c:732
 #, c-format
 msgid "Do you really want to remove the assigned %s interface?"
-msgstr ""
+msgstr "¿Realmente desea eliminar la interfaz asignada %s?"
 
 #: netstuff.c:755
 msgid "Select network driver"
-msgstr ""
+msgstr "Seleccionar controlador de red"
 
 #: netstuff.c:755
 msgid "Set additional module parameters"
-msgstr ""
+msgstr "Establecer parámetros de los módulos adicionales"
 
 #: netstuff.c:762
 msgid "Loading module..."
-msgstr ""
+msgstr "Leyendo módulo..."
 
 #: netstuff.c:777
 msgid "Unable to load driver module."
-msgstr ""
+msgstr "No se puede cargar el módulo controlador."
 
 #: netstuff.c:780
 msgid "Module name cannot be blank."
-msgstr ""
+msgstr "Nombre del módulo no puede estar en blanco."
 
 #: networking.c:110
 msgid "Stopping network..."
-msgstr ""
+msgstr "Deteniendo la red..."
 
 #: networking.c:115
 msgid "Restarting network..."
-msgstr ""
+msgstr "Reiniciando la red..."
 
 #: networking.c:146
 msgid "No GREEN interface assigned."
-msgstr ""
+msgstr "No asignada la interfaz GREEN."
 
 #: networking.c:152
 msgid "Missing an IP address on GREEN."
-msgstr ""
+msgstr "Falta la dirección IP en GREEN."
 
 #: networking.c:163
 msgid "Error"
-msgstr ""
+msgstr "Error"
 
 #: networking.c:163
 msgid "Ignore"
-msgstr ""
+msgstr "Ignorar"
 
 #: networking.c:164
 msgid "No RED interface assigned."
-msgstr ""
+msgstr "No asignada la interfaz RED."
 
 #: networking.c:173
 msgid "Missing an IP address on RED."
-msgstr ""
+msgstr "Falta la dirección IP en RED."
 
 #: networking.c:183
 msgid "No ORANGE interface assigned."
-msgstr ""
+msgstr "No asignada la interfaz ORANGE."
 
 #: networking.c:189
 msgid "Missing an IP address on ORANGE."
-msgstr ""
+msgstr "Falta la dirección IP en ORANGE."
 
 #: networking.c:199
 msgid "No BLUE interface assigned."
-msgstr ""
+msgstr "No asignada la interfaz BLUE."
 
 #: networking.c:205
 msgid "Missing an IP address on BLUE."
-msgstr ""
+msgstr "Falta la dirección IP en BLUE."
 
 #: networking.c:217
 msgid "Misssing DNS."
-msgstr ""
+msgstr "Falta DNS."
 
 #: networking.c:224
 msgid "Missing Default Gateway."
-msgstr ""
+msgstr "Falta Puerta de Enlace predeterminada."
 
 #: networking.c:237 networking.c:304
 msgid "Network configuration type"
-msgstr ""
+msgstr "Tipo de configuración de red"
 
 #: networking.c:238 networking.c:409
 msgid "Drivers and card assignments"
-msgstr ""
+msgstr "Asignación de controladores y tarjetas"
 
 #: networking.c:239 networking.c:640
 msgid "Address settings"
-msgstr ""
+msgstr "Configuración de dirección"
 
 #: networking.c:240 networking.c:743
 msgid "DNS and Gateway settings"
-msgstr ""
+msgstr "Configuración de DNS y Puerta de Enlace"
 
 #: networking.c:260
 msgid "When configuration is complete, a network restart will be required."
-msgstr ""
+msgstr "Cuando haya finalizado la configuración, será necesario el reinicio de la red."
 
 #: networking.c:267
 #, c-format
@@ -439,15 +441,15 @@ msgid ""
 "Current config: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "Configuración actual: %s\n\n%s"
 
 #: networking.c:268
 msgid "Network configuration menu"
-msgstr ""
+msgstr "Menú de la configuración de red"
 
 #: networking.c:269 networking.c:520 networking.c:642
 msgid "Done"
-msgstr ""
+msgstr "Hecho"
 
 #: networking.c:300
 #, c-format
@@ -456,7 +458,7 @@ msgid ""
 "list those interfaces which have ethernet attached. If you change this "
 "setting, a network restart will be required, and you will have to "
 "reconfigure the network driver assignments."
-msgstr ""
+msgstr "Seleccione la configuración de la red para %s. La lista de los siguientes tipos de configuración tienen que tener una conexión ethernet. Si cambia esta configuración, se requiere un reinicio de la red, y tendrá que volver a configurar las asignaciones de controlador de red."
 
 #: networking.c:307
 #, c-format
@@ -464,35 +466,35 @@ msgid ""
 "Not enough netcards for your choice.\n"
 "\n"
 "Needed: %d - Available: %d\n"
-msgstr ""
+msgstr "No hay suficientes tarjetas de red para su elección.\n\nNecesarias: %d - Disponibles: %d\n"
 
 #: networking.c:359
 msgid ""
 "Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
 "\n"
-msgstr ""
+msgstr "Configurar los controladores de red y la interfaz que se ha asignado a cada tarjeta. La configuración actual es la siguiente:\n\n"
 
 #: networking.c:408
 msgid "Do you wish to change these settings?"
-msgstr ""
+msgstr "¿Desea cambiar esta configuración?"
 
 #: networking.c:447
 msgid "Restarting non-local network..."
-msgstr ""
+msgstr "Reiniciando redes no locales..."
 
 #: networking.c:464
 msgid ""
 "Please choose the interface you wish to change.\n"
 "\n"
-msgstr ""
+msgstr "Por favor, elija la interfaz que desea cambiar.\n\n"
 
 #: networking.c:519
 msgid "Assigned Cards"
-msgstr ""
+msgstr "Tarjetas asignadas"
 
 #: networking.c:520
 msgid "Remove"
-msgstr ""
+msgstr "Quitar"
 
 #: networking.c:556 networking.c:649
 #, c-format
@@ -501,84 +503,84 @@ msgid ""
 "connection to the %s machine will be broken, and you will have to reconnect "
 "on the new IP. This is a risky operation, and should only be attempted if "
 "you have physical access to the machine, should something go wrong."
-msgstr ""
+msgstr "Si cambia esta dirección IP y tiene iniciada una sesión en el sistema de forma remota, la conexión a la máquina %s será cortada  y tendrá que volver a conectar en la nueva IP. Esta es una operación arriesgada, y sólo debe intentarse si tiene acceso físico a la máquina, por si algo sale mal."
 
 #: networking.c:641
 msgid "Select the interface you wish to reconfigure."
-msgstr ""
+msgstr "Seleccione la interfaz que desea reconfigurar."
 
 #: networking.c:729
 msgid "Default gateway:"
-msgstr ""
+msgstr "Puerta de Enlace predeterminada:"
 
 #: networking.c:744
 msgid ""
 "Enter the DNS and gateway information. These settings are used only with "
 "Static IP (and DHCP if DNS set) on the RED interface."
-msgstr ""
+msgstr "Introduzca la información del DNS y la Puerta de Enlace. Estos ajustes se utilizan sólo con IP estática (y DHCP si está configurado DNS) en la interfaz de RED."
 
 #: networking.c:773
 msgid "Default gateway"
-msgstr ""
+msgstr "Puerta de Enlace predeterminada"
 
 #: networking.c:780
 msgid "Secondary DNS specified without a Primary DNS"
-msgstr ""
+msgstr "DNS secundario especificado sin DNS primario"
 
 #: passwords.c:33
 msgid ""
 "Enter the 'root' user password. Login as this user for commandline access."
-msgstr ""
+msgstr "Introduzca la contraseña de 'root'. Iniciar la sesión como este usuario para el acceso de linea de comandos."
 
 #: passwords.c:38 passwords.c:61
 msgid "Setting password"
-msgstr ""
+msgstr "Configuración de la contraseña"
 
 #: passwords.c:38
 msgid "Setting 'root' password...."
-msgstr ""
+msgstr "Configuración de la contraseña de 'root'..."
 
 #: passwords.c:39
 msgid "Problem setting 'root' password."
-msgstr ""
+msgstr "Problema en la configuración de la contraseña de 'root'."
 
 #: passwords.c:53
 #, c-format
 msgid ""
 "Enter %s 'admin' user password. This is the user to use for logging into the"
 " %s web administration pages."
-msgstr ""
+msgstr "Introduzca contraseña de usuario %s 'admin'. Este es el usuario que se utiliza para iniciar sesión en las páginas de administración web de %s."
 
 #: passwords.c:60
 #, c-format
 msgid "Setting %s 'admin' user password..."
-msgstr ""
+msgstr "Configuración de la contraseña del usuario %s 'admin'..."
 
 #: passwords.c:62
 #, c-format
 msgid "Problem setting %s 'admin' user password."
-msgstr ""
+msgstr "Problemas al configurar la contraseña del usuario %s 'admin'."
 
 #: passwords.c:76
 msgid "Password:"
-msgstr ""
+msgstr "Contraseña:"
 
 #: passwords.c:77
 msgid "Again:"
-msgstr ""
+msgstr "De nuevo:"
 
 #: passwords.c:95
 msgid "Password cannot be blank."
-msgstr ""
+msgstr "La contraseña no puede estar en blanco."
 
 #: passwords.c:102
 msgid "Passwords do not match."
-msgstr ""
+msgstr "Las contraseñas no coinciden."
 
 #: passwords.c:109
 msgid "Password cannot contain spaces."
-msgstr ""
+msgstr "La contraseña no puede contener espacios."
 
 #: timezone.c:77
 msgid "Choose the timezone you are in from the list below."
-msgstr ""
+msgstr "Seleccione la zona horaria de donde se encuentra en la lista de abajo."
index 58a20083adea739fe5ebd2d46aef21940ed1a964..a825ca8023b0f3921f20ae937da01eb54115d4cf 100644 (file)
@@ -4,13 +4,13 @@
 # 
 # Translators:
 # hashem ghavami <hashem.wolf@gmail.com>, 2014
-# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014
+# Khalil Delavaran <khalil.delavaran@gmail.com>, 2014-2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-11-12 18:28+0000\n"
+"PO-Revision-Date: 2015-01-26 06:42+0000\n"
 "Last-Translator: Khalil Delavaran <khalil.delavaran@gmail.com>\n"
 "Language-Team: Persian (http://www.transifex.com/projects/p/ipfire/language/fa/)\n"
 "MIME-Version: 1.0\n"
@@ -472,7 +472,7 @@ msgstr "کارتهای شبکه برای گزینش شما کافی نیست.\n\
 msgid ""
 "Configure network drivers, and which interface each card is assigned to. The current configuration is as follows:\n"
 "\n"
-msgstr ""
+msgstr "پیکربندی راه اندازهای شبکه، که به اینترفیس هر کارت اختصاص داده شده است. پیکربندی کنونی در زیر آمده است:\n\n"
 
 #: networking.c:408
 msgid "Do you wish to change these settings?"
@@ -503,7 +503,7 @@ msgid ""
 "connection to the %s machine will be broken, and you will have to reconnect "
 "on the new IP. This is a risky operation, and should only be attempted if "
 "you have physical access to the machine, should something go wrong."
-msgstr ""
+msgstr "اگر شما این IP را تغییر دهید، و شما از راه ریموت وارد شده باشید، اتصال شما به سیستم %s شکسته می شود، و شما با IP جدید دوباره وصل شوید. این کار شما، ریسک دارد، و فقط باید دسترسی فیزیکی به سیستم داشته باشید، این کار شما اشتباه است."
 
 #: networking.c:641
 msgid "Select the interface you wish to reconfigure."
@@ -517,7 +517,7 @@ msgstr "Gateway پیش پندار:"
 msgid ""
 "Enter the DNS and gateway information. These settings are used only with "
 "Static IP (and DHCP if DNS set) on the RED interface."
-msgstr ""
+msgstr "اطلاعات gateway و DNS را بنویسید. این پیکربندی ها فقط با IP استاتیک (و DHCP اگر DNS نوشته شده باشد) بر روی اینترفیس قرمز بکار می روند."
 
 #: networking.c:773
 msgid "Default gateway"
@@ -549,7 +549,7 @@ msgstr "ایراد در پیکربندی گذواژه 'root'."
 msgid ""
 "Enter %s 'admin' user password. This is the user to use for logging into the"
 " %s web administration pages."
-msgstr ""
+msgstr "گذرواژه کاربر 'admin' %s را بنویسید. این کاربر برای ورود به برگه مدیریت وب %s می باشد."
 
 #: passwords.c:60
 #, c-format
index 18d951287f9a88e8af640e977d4fcee2778b3846..1ee909386590f8ca691a059af8777f3ebb7a0f1e 100644 (file)
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Jacques Hylkema <j.hylkema@intronics.nl>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-08-21 15:13+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-26 08:29+0000\n"
+"Last-Translator: Jacques Hylkema <j.hylkema@intronics.nl>\n"
 "Language-Team: Dutch (http://www.transifex.com/projects/p/ipfire/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,31 +20,31 @@ msgstr ""
 
 #: dhcp.c:50
 msgid "Start address:"
-msgstr ""
+msgstr "Start adres:"
 
 #: dhcp.c:51
 msgid "End address:"
-msgstr ""
+msgstr "Eind adres:"
 
 #: dhcp.c:52 networking.c:717
 msgid "Primary DNS:"
-msgstr ""
+msgstr "Primaire DNS:"
 
 #: dhcp.c:53 networking.c:723
 msgid "Secondary DNS:"
-msgstr ""
+msgstr "Secundaire DNS:"
 
 #: dhcp.c:54
 msgid "Default lease (mins):"
-msgstr ""
+msgstr "Standaard lease (minuten):"
 
 #: dhcp.c:55
 msgid "Max lease (mins):"
-msgstr ""
+msgstr "Maximum lease (minuten):"
 
 #: dhcp.c:56
 msgid "Domain name suffix:"
-msgstr ""
+msgstr "Domein naam achtervoegsel:"
 
 #: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
 #: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
@@ -51,19 +52,19 @@ msgstr ""
 #: networking.c:442 networking.c:552 networking.c:603 networking.c:610
 #: networking.c:713 timezone.c:63
 msgid "Unable to open settings file"
-msgstr ""
+msgstr "Kon instellingen bestand niet openen"
 
 #: dhcp.c:111
 msgid "DHCP server configuration"
-msgstr ""
+msgstr "DHCP server configuratie"
 
 #: dhcp.c:116
 msgid "Configure the DHCP server by entering the settings information."
-msgstr ""
+msgstr "Configureer de DHCP server door de instellingen in te voeren."
 
 #: dhcp.c:125
 msgid "Enabled"
-msgstr ""
+msgstr "Ingeschakeld"
 
 #: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
 #: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
@@ -71,229 +72,229 @@ msgstr ""
 #: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
 #: timezone.c:78
 msgid "OK"
-msgstr ""
+msgstr "Oke"
 
 #: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
 #: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
 #: networking.c:410 networking.c:560 networking.c:653 networking.c:746
 #: passwords.c:89 timezone.c:78
 msgid "Cancel"
-msgstr ""
+msgstr "Annuleren"
 
 #: dhcp.c:156
 msgid ""
 "The following fields are invalid:\n"
 "\n"
-msgstr ""
+msgstr "De volgende velden zijn ongeldig:\n\n"
 
 #: dhcp.c:159
 msgid "Start address"
-msgstr ""
+msgstr "Start adres"
 
 #: dhcp.c:165
 msgid "End address"
-msgstr ""
+msgstr "Eind adres"
 
 #: dhcp.c:173 networking.c:755
 msgid "Primary DNS"
-msgstr ""
+msgstr "Primaire DNS"
 
 #: dhcp.c:182 networking.c:764
 msgid "Secondary DNS"
-msgstr ""
+msgstr "Secundaire DNS"
 
 #: dhcp.c:189
 msgid "Default lease time"
-msgstr ""
+msgstr "Standaard lease tijd"
 
 #: dhcp.c:195
 msgid "Max. lease time"
-msgstr ""
+msgstr "Maximum lease tijd"
 
 #: domainname.c:42 main.c:70
 msgid "Domain name"
-msgstr ""
+msgstr "Domein naam"
 
 #: domainname.c:42
 msgid "Enter Domain name"
-msgstr ""
+msgstr "Voer domein naam in"
 
 #: domainname.c:48
 msgid "Domain name cannot be empty."
-msgstr ""
+msgstr "Domein naam kan niet leeg zijn."
 
 #: domainname.c:50
 msgid "Domain name cannot contain spaces."
-msgstr ""
+msgstr "Domein naam kan geen spaties bevatten."
 
 #: domainname.c:53
 msgid "Domain name may only contain letters, numbers, hyphens and periods."
-msgstr ""
+msgstr "Domein naam mag uitsluitend letters, nummers, koppeltekens en punten bevatten."
 
 #: hostname.c:46 main.c:69
 msgid "Hostname"
-msgstr ""
+msgstr "hostnaam"
 
 #: hostname.c:46
 msgid "Enter the machine's hostname."
-msgstr ""
+msgstr "Voer de hostnaam voor deze machine in."
 
 #: hostname.c:53
 msgid "Hostname cannot be empty."
-msgstr ""
+msgstr "Hostnaam kan niet leeg zijn."
 
 #: hostname.c:55
 msgid "Hostname cannot contain spaces."
-msgstr ""
+msgstr "Hostnaam kan geen spaties bevatten."
 
 #: hostname.c:58
 msgid "Hostname may only contain letters, numbers and hyphens."
-msgstr ""
+msgstr " Hostnaam mag uitsluitend letters, nummers en koppeltekens bevatten."
 
 #: keymap.c:84 main.c:67
 msgid "Keyboard mapping"
-msgstr ""
+msgstr "Toetsenbord indeling"
 
 #: keymap.c:85
 msgid "Choose the type of keyboard you are using from the list below."
-msgstr ""
+msgstr "Kies het toetsenbord type dat je gebruikt uit onderstaande lijst."
 
 #: main.c:68 timezone.c:77
 msgid "Timezone"
-msgstr ""
+msgstr "Tijdzone"
 
 #: main.c:71 networking.c:110 networking.c:115 networking.c:447
 msgid "Networking"
-msgstr ""
+msgstr "Netwerken"
 
 #: main.c:72 misc.c:147
 msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
 
 #: main.c:73
 msgid "'root' password"
-msgstr ""
+msgstr "'root' wachtwoord"
 
 #: main.c:74
 msgid "'admin' password"
-msgstr ""
+msgstr "'admin' wachtwoord"
 
 #: main.c:90
 msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
-msgstr ""
+msgstr "<Tab>/<Alt-Tab> tussen onderdelen | <Space> selecteer"
 
 #: main.c:97
 msgid "Section menu"
-msgstr ""
+msgstr "Sectie menu"
 
 #: main.c:98
 msgid "Select the item you wish to configure."
-msgstr ""
+msgstr "Selecteer het onderdeel dat je wil configureren."
 
 #: main.c:99
 msgid "Quit"
-msgstr ""
+msgstr "Stoppen"
 
 #: main.c:172
 msgid "Setup is complete."
-msgstr ""
+msgstr "Installatie is gereed."
 
 #: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
 msgid "Warning"
-msgstr ""
+msgstr "Waarschuwing"
 
 #: main.c:175
 msgid ""
 "Initial setup was not entirely complete. You must ensure that Setup is "
 "properly finished by running setup again at the shell."
-msgstr ""
+msgstr "Initiële configuratie was niet voltooid. Je moet ervoor zorgen dat de installatie wordt voltooid door 'setup' opnieuw uit te voeren vanaf de shell."
 
 #: misc.c:62
 #, c-format
 msgid "Unable to write %s/main/hostname.conf"
-msgstr ""
+msgstr "Kon %s/main/hostname.conf niet wegschrijven"
 
 #: misc.c:71
 msgid "Unable to open main hosts file."
-msgstr ""
+msgstr "Kon het hosts bestand niet openen."
 
 #: misc.c:76
 msgid "Unable to write /etc/hosts."
-msgstr ""
+msgstr "Kon /etc/hosts niet wegschrijven."
 
 #: misc.c:117
 msgid "Unable to write /etc/hosts.deny."
-msgstr ""
+msgstr "Kon /etc/hosts.deny niet wegschrijven."
 
 #: misc.c:125
 msgid "Unable to write /etc/hosts.allow."
-msgstr ""
+msgstr "Kon /etc/hosts.allow niet wegschrijven."
 
 #: misc.c:136
 msgid "Unable to set hostname."
-msgstr ""
+msgstr "Kon de hostnaam niet instellen."
 
 #: misc.c:147
 msgid "Scanning and configuring ISDN devices."
-msgstr ""
+msgstr "Scannen en configureren van ISDN apparaten."
 
 #: misc.c:148
 msgid "Unable to scan for ISDN devices."
-msgstr ""
+msgstr "Kon ISDN apparaten niet scannen."
 
 #: netstuff.c:86
 #, c-format
 msgid "Interface - %s"
-msgstr ""
+msgstr "Interface - %s"
 
 #: netstuff.c:91
 #, c-format
 msgid "Enter the IP address information for the %s interface."
-msgstr ""
+msgstr "Voer de IP adres gegevens in voor de %s interface."
 
 #: netstuff.c:103
 msgid "Static"
-msgstr ""
+msgstr "Statisch"
 
 #: netstuff.c:104
 msgid "DHCP"
-msgstr ""
+msgstr "DHCP"
 
 #: netstuff.c:105
 msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
-msgstr ""
+msgstr "PPP DIALUP (PPPoE, modem, ATM ...)"
 
 #: netstuff.c:113
 msgid "DHCP Hostname:"
-msgstr ""
+msgstr "DHCP Hostnaam:"
 
 #: netstuff.c:115
 msgid "Force DHCP MTU:"
-msgstr ""
+msgstr "Forceer DHCP MTU:"
 
 #: netstuff.c:134
 msgid "IP address:"
-msgstr ""
+msgstr "IP adres:"
 
 #: netstuff.c:146
 msgid "Network mask:"
-msgstr ""
+msgstr "Netwerk masker:"
 
 #: netstuff.c:173 networking.c:749
 msgid "The following fields are invalid:"
-msgstr ""
+msgstr "De volgende velden zijn ongeldig:"
 
 #: netstuff.c:183
 msgid "IP address"
-msgstr ""
+msgstr "IP adres"
 
 #: netstuff.c:189
 msgid "Network mask"
-msgstr ""
+msgstr "Netwerk masker"
 
 #: netstuff.c:198
 msgid "DHCP hostname"
-msgstr ""
+msgstr "DHCP hostnaam"
 
 #: netstuff.c:396 netstuff.c:709
 msgid "Unset"
@@ -302,52 +303,52 @@ msgstr ""
 #: netstuff.c:669
 #, c-format
 msgid "Please choose a networkcard for the following interface - %s."
-msgstr ""
+msgstr "Kies een netwerkkaart voor de volgende interface - %s."
 
 #: netstuff.c:672
 msgid "Extended Network Menu"
-msgstr ""
+msgstr "Uitgebreid Netwerk Menu"
 
 #: netstuff.c:673 networking.c:520
 msgid "Select"
-msgstr ""
+msgstr "Selecteer"
 
 #: netstuff.c:673
 msgid "Identify"
-msgstr ""
+msgstr "Identificeer"
 
 #: netstuff.c:678
 msgid "Device Identification"
-msgstr ""
+msgstr "Apparaat identificatie"
 
 #: netstuff.c:678
 msgid "The lights on the selected port should flash now for 10 seconds..."
-msgstr ""
+msgstr "De lampjes op de geselecteerde netwerkkaart zouden nu 10 seconden moeten flikkeren..."
 
 #: netstuff.c:679
 msgid "Identification is not supported by this interface."
-msgstr ""
+msgstr "Identificatie wordt niet ondersteund door deze netwerkkaart."
 
 #: netstuff.c:691
 msgid "There are no unassigned interfaces on your system."
-msgstr ""
+msgstr "Er zijn geen niet-toegewezen netwerkkaarten in je systeem"
 
 #: netstuff.c:732
 #, c-format
 msgid "Do you really want to remove the assigned %s interface?"
-msgstr ""
+msgstr "Wil je de toegewezen %s interface echt verwijderen?"
 
 #: netstuff.c:755
 msgid "Select network driver"
-msgstr ""
+msgstr "Selecteer netwerk stuurprogramma"
 
 #: netstuff.c:755
 msgid "Set additional module parameters"
-msgstr ""
+msgstr "Stel additionele module parameters in"
 
 #: netstuff.c:762
 msgid "Loading module..."
-msgstr ""
+msgstr "Bezig met laden van module..."
 
 #: netstuff.c:777
 msgid "Unable to load driver module."
index a16955b39a2b3a5f3c602f12f2ffdbc36d6344d2..1cb5bc6b7ae2269bc0ea66e89caa634f54863d69 100644 (file)
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Rafael Tavares <rafael@ibinetwork.com.br>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-08-21 15:13+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-22 20:19+0000\n"
+"Last-Translator: Rafael Tavares <rafael@ibinetwork.com.br>\n"
 "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/ipfire/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,27 +20,27 @@ msgstr ""
 
 #: dhcp.c:50
 msgid "Start address:"
-msgstr ""
+msgstr "Endereço de Inicial:"
 
 #: dhcp.c:51
 msgid "End address:"
-msgstr ""
+msgstr "Endereço final:"
 
 #: dhcp.c:52 networking.c:717
 msgid "Primary DNS:"
-msgstr ""
+msgstr "DNS Primário:"
 
 #: dhcp.c:53 networking.c:723
 msgid "Secondary DNS:"
-msgstr ""
+msgstr "DNS Secundário:"
 
 #: dhcp.c:54
 msgid "Default lease (mins):"
-msgstr ""
+msgstr "Tempo padrão (mins):"
 
 #: dhcp.c:55
 msgid "Max lease (mins):"
-msgstr ""
+msgstr "Tempo máximo (mins)"
 
 #: dhcp.c:56
 msgid "Domain name suffix:"
@@ -51,19 +52,19 @@ msgstr ""
 #: networking.c:442 networking.c:552 networking.c:603 networking.c:610
 #: networking.c:713 timezone.c:63
 msgid "Unable to open settings file"
-msgstr ""
+msgstr "Não foi possível abrir o arquivo de configurações"
 
 #: dhcp.c:111
 msgid "DHCP server configuration"
-msgstr ""
+msgstr "Configurar servidor DHCP"
 
 #: dhcp.c:116
 msgid "Configure the DHCP server by entering the settings information."
-msgstr ""
+msgstr "Configurar servidor DHCP digitando as informações de configuração"
 
 #: dhcp.c:125
 msgid "Enabled"
-msgstr ""
+msgstr "Habilitado"
 
 #: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
 #: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
@@ -71,14 +72,14 @@ msgstr ""
 #: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
 #: timezone.c:78
 msgid "OK"
-msgstr ""
+msgstr "Ok"
 
 #: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
 #: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
 #: networking.c:410 networking.c:560 networking.c:653 networking.c:746
 #: passwords.c:89 timezone.c:78
 msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
 
 #: dhcp.c:156
 msgid ""
@@ -88,31 +89,31 @@ msgstr ""
 
 #: dhcp.c:159
 msgid "Start address"
-msgstr ""
+msgstr "Endereço de Inicial"
 
 #: dhcp.c:165
 msgid "End address"
-msgstr ""
+msgstr "Endereço final"
 
 #: dhcp.c:173 networking.c:755
 msgid "Primary DNS"
-msgstr ""
+msgstr "DNS Primário"
 
 #: dhcp.c:182 networking.c:764
 msgid "Secondary DNS"
-msgstr ""
+msgstr "DNS Secundário"
 
 #: dhcp.c:189
 msgid "Default lease time"
-msgstr ""
+msgstr "Tempo padrão"
 
 #: dhcp.c:195
 msgid "Max. lease time"
-msgstr ""
+msgstr "Tempo máximo padrão"
 
 #: domainname.c:42 main.c:70
 msgid "Domain name"
-msgstr ""
+msgstr "Domínio "
 
 #: domainname.c:42
 msgid "Enter Domain name"
@@ -132,7 +133,7 @@ msgstr ""
 
 #: hostname.c:46 main.c:69
 msgid "Hostname"
-msgstr ""
+msgstr "Hostname"
 
 #: hostname.c:46
 msgid "Enter the machine's hostname."
@@ -152,7 +153,7 @@ msgstr ""
 
 #: keymap.c:84 main.c:67
 msgid "Keyboard mapping"
-msgstr ""
+msgstr "Selecione seu teclado"
 
 #: keymap.c:85
 msgid "Choose the type of keyboard you are using from the list below."
@@ -160,7 +161,7 @@ msgstr ""
 
 #: main.c:68 timezone.c:77
 msgid "Timezone"
-msgstr ""
+msgstr "Fuso horário "
 
 #: main.c:71 networking.c:110 networking.c:115 networking.c:447
 msgid "Networking"
@@ -168,15 +169,15 @@ msgstr ""
 
 #: main.c:72 misc.c:147
 msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
 
 #: main.c:73
 msgid "'root' password"
-msgstr ""
+msgstr "senha ´'root'"
 
 #: main.c:74
 msgid "'admin' password"
-msgstr ""
+msgstr "senha 'admin'"
 
 #: main.c:90
 msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
@@ -188,19 +189,19 @@ msgstr ""
 
 #: main.c:98
 msgid "Select the item you wish to configure."
-msgstr ""
+msgstr "Selecione um item para configurar."
 
 #: main.c:99
 msgid "Quit"
-msgstr ""
+msgstr "Sair"
 
 #: main.c:172
 msgid "Setup is complete."
-msgstr ""
+msgstr "Configuração completa."
 
 #: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
 msgid "Warning"
-msgstr ""
+msgstr "Atenção"
 
 #: main.c:175
 msgid ""
@@ -211,7 +212,7 @@ msgstr ""
 #: misc.c:62
 #, c-format
 msgid "Unable to write %s/main/hostname.conf"
-msgstr ""
+msgstr "Não foi possível salvar %s/main/hostname.conf"
 
 #: misc.c:71
 msgid "Unable to open main hosts file."
@@ -219,15 +220,15 @@ msgstr ""
 
 #: misc.c:76
 msgid "Unable to write /etc/hosts."
-msgstr ""
+msgstr "Não foi possível salvar /etc/hosts."
 
 #: misc.c:117
 msgid "Unable to write /etc/hosts.deny."
-msgstr ""
+msgstr "Não foi possível salvar /etc/hosts.deny."
 
 #: misc.c:125
 msgid "Unable to write /etc/hosts.allow."
-msgstr ""
+msgstr "Não foi possível salvar /etc/hosts.allow."
 
 #: misc.c:136
 msgid "Unable to set hostname."
@@ -244,7 +245,7 @@ msgstr ""
 #: netstuff.c:86
 #, c-format
 msgid "Interface - %s"
-msgstr ""
+msgstr "Interface - %s"
 
 #: netstuff.c:91
 #, c-format
@@ -253,15 +254,15 @@ msgstr ""
 
 #: netstuff.c:103
 msgid "Static"
-msgstr ""
+msgstr "Estático "
 
 #: netstuff.c:104
 msgid "DHCP"
-msgstr ""
+msgstr "Automático "
 
 #: netstuff.c:105
 msgid "PPP DIALUP (PPPoE, modem, ATM ...)"
-msgstr ""
+msgstr "Discador PPP (PPPoE, modem, ATM ...)"
 
 #: netstuff.c:113
 msgid "DHCP Hostname:"
@@ -273,11 +274,11 @@ msgstr ""
 
 #: netstuff.c:134
 msgid "IP address:"
-msgstr ""
+msgstr "Endereço IP:"
 
 #: netstuff.c:146
 msgid "Network mask:"
-msgstr ""
+msgstr "Mascara de rede:"
 
 #: netstuff.c:173 networking.c:749
 msgid "The following fields are invalid:"
@@ -285,11 +286,11 @@ msgstr ""
 
 #: netstuff.c:183
 msgid "IP address"
-msgstr ""
+msgstr "Endereço IP"
 
 #: netstuff.c:189
 msgid "Network mask"
-msgstr ""
+msgstr "Marcara de rede"
 
 #: netstuff.c:198
 msgid "DHCP hostname"
@@ -310,11 +311,11 @@ msgstr ""
 
 #: netstuff.c:673 networking.c:520
 msgid "Select"
-msgstr ""
+msgstr "Selecione"
 
 #: netstuff.c:673
 msgid "Identify"
-msgstr ""
+msgstr "Identifique"
 
 #: netstuff.c:678
 msgid "Device Identification"
@@ -347,7 +348,7 @@ msgstr ""
 
 #: netstuff.c:762
 msgid "Loading module..."
-msgstr ""
+msgstr "Carregando modulo..."
 
 #: netstuff.c:777
 msgid "Unable to load driver module."
@@ -359,75 +360,75 @@ msgstr ""
 
 #: networking.c:110
 msgid "Stopping network..."
-msgstr ""
+msgstr "Parando a rede..."
 
 #: networking.c:115
 msgid "Restarting network..."
-msgstr ""
+msgstr "Reiniciando a rede..."
 
 #: networking.c:146
 msgid "No GREEN interface assigned."
-msgstr ""
+msgstr "Nenhuma interface VERDE definida."
 
 #: networking.c:152
 msgid "Missing an IP address on GREEN."
-msgstr ""
+msgstr "Faltando endereço IP na interface VERDE."
 
 #: networking.c:163
 msgid "Error"
-msgstr ""
+msgstr "Erro"
 
 #: networking.c:163
 msgid "Ignore"
-msgstr ""
+msgstr "Ignorar"
 
 #: networking.c:164
 msgid "No RED interface assigned."
-msgstr ""
+msgstr "Nenhuma interface VERMELHA definida."
 
 #: networking.c:173
 msgid "Missing an IP address on RED."
-msgstr ""
+msgstr "Faltando endereço IP na interface VERMELHA."
 
 #: networking.c:183
 msgid "No ORANGE interface assigned."
-msgstr ""
+msgstr "Nenhuma interface LARANJA definida."
 
 #: networking.c:189
 msgid "Missing an IP address on ORANGE."
-msgstr ""
+msgstr "Faltando endereço IP na interface LARANJA."
 
 #: networking.c:199
 msgid "No BLUE interface assigned."
-msgstr ""
+msgstr "Nenhuma interface AZUL definida."
 
 #: networking.c:205
 msgid "Missing an IP address on BLUE."
-msgstr ""
+msgstr "Faltando endereço IP na interface AZUL."
 
 #: networking.c:217
 msgid "Misssing DNS."
-msgstr ""
+msgstr "Faltando DNS."
 
 #: networking.c:224
 msgid "Missing Default Gateway."
-msgstr ""
+msgstr "Faltando Gateway Padrão."
 
 #: networking.c:237 networking.c:304
 msgid "Network configuration type"
-msgstr ""
+msgstr "Tipo de configuração de rede"
 
 #: networking.c:238 networking.c:409
 msgid "Drivers and card assignments"
-msgstr ""
+msgstr "Definir Drivers e Placas"
 
 #: networking.c:239 networking.c:640
 msgid "Address settings"
-msgstr ""
+msgstr "Configurar endereços"
 
 #: networking.c:240 networking.c:743
 msgid "DNS and Gateway settings"
-msgstr ""
+msgstr "Configurar Gateway e DNS"
 
 #: networking.c:260
 msgid "When configuration is complete, a network restart will be required."
@@ -439,7 +440,7 @@ msgid ""
 "Current config: %s\n"
 "\n"
 "%s"
-msgstr ""
+msgstr "Configuração atual: %s\n\n%s"
 
 #: networking.c:268
 msgid "Network configuration menu"
@@ -447,7 +448,7 @@ msgstr ""
 
 #: networking.c:269 networking.c:520 networking.c:642
 msgid "Done"
-msgstr ""
+msgstr "Pronto"
 
 #: networking.c:300
 #, c-format
@@ -488,11 +489,11 @@ msgstr ""
 
 #: networking.c:519
 msgid "Assigned Cards"
-msgstr ""
+msgstr "Placas Definidas"
 
 #: networking.c:520
 msgid "Remove"
-msgstr ""
+msgstr "Remover"
 
 #: networking.c:556 networking.c:649
 #, c-format
@@ -509,7 +510,7 @@ msgstr ""
 
 #: networking.c:729
 msgid "Default gateway:"
-msgstr ""
+msgstr "Gateway padrão:"
 
 #: networking.c:744
 msgid ""
@@ -519,7 +520,7 @@ msgstr ""
 
 #: networking.c:773
 msgid "Default gateway"
-msgstr ""
+msgstr "Gateway padrão"
 
 #: networking.c:780
 msgid "Secondary DNS specified without a Primary DNS"
@@ -532,15 +533,15 @@ msgstr ""
 
 #: passwords.c:38 passwords.c:61
 msgid "Setting password"
-msgstr ""
+msgstr "Configurar senha"
 
 #: passwords.c:38
 msgid "Setting 'root' password...."
-msgstr ""
+msgstr "Configurar senha 'root'"
 
 #: passwords.c:39
 msgid "Problem setting 'root' password."
-msgstr ""
+msgstr "Problema ao configurar senha 'root'"
 
 #: passwords.c:53
 #, c-format
@@ -561,24 +562,24 @@ msgstr ""
 
 #: passwords.c:76
 msgid "Password:"
-msgstr ""
+msgstr "Senha:"
 
 #: passwords.c:77
 msgid "Again:"
-msgstr ""
+msgstr "Novamente:"
 
 #: passwords.c:95
 msgid "Password cannot be blank."
-msgstr ""
+msgstr "A senha não pode estar em branco."
 
 #: passwords.c:102
 msgid "Passwords do not match."
-msgstr ""
+msgstr "As senhas não coincidem."
 
 #: passwords.c:109
 msgid "Password cannot contain spaces."
-msgstr ""
+msgstr "A senha não pode conter espaços."
 
 #: timezone.c:77
 msgid "Choose the timezone you are in from the list below."
-msgstr ""
+msgstr "Selecione seu fuso horário na lista abaixo."
index e85d2f7bde374fb385dfc909cf41b831b0760fd1..9bf182c38860f58851f37d7c17e0c860d7b43732 100644 (file)
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Andrei Burdea <ragulka@gmail.com>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-08-21 15:13+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-20 09:08+0000\n"
+"Last-Translator: Andrei Burdea <ragulka@gmail.com>\n"
 "Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/ipfire/language/ro_RO/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,31 +20,31 @@ msgstr ""
 
 #: dhcp.c:50
 msgid "Start address:"
-msgstr ""
+msgstr "Adresa de Inceput"
 
 #: dhcp.c:51
 msgid "End address:"
-msgstr ""
+msgstr "Adresa de Final"
 
 #: dhcp.c:52 networking.c:717
 msgid "Primary DNS:"
-msgstr ""
+msgstr "Primul Server de Nume - NS1"
 
 #: dhcp.c:53 networking.c:723
 msgid "Secondary DNS:"
-msgstr ""
+msgstr "Al Doilea Server de Nume - NS2"
 
 #: dhcp.c:54
 msgid "Default lease (mins):"
-msgstr ""
+msgstr "Alocarea de baza (minute)"
 
 #: dhcp.c:55
 msgid "Max lease (mins):"
-msgstr ""
+msgstr "Alocare Maxima (minute)"
 
 #: dhcp.c:56
 msgid "Domain name suffix:"
-msgstr ""
+msgstr "Sufix Nume Domeniu"
 
 #: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
 #: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
@@ -51,19 +52,19 @@ msgstr ""
 #: networking.c:442 networking.c:552 networking.c:603 networking.c:610
 #: networking.c:713 timezone.c:63
 msgid "Unable to open settings file"
-msgstr ""
+msgstr "Fisier de setari imposibil de deschis"
 
 #: dhcp.c:111
 msgid "DHCP server configuration"
-msgstr ""
+msgstr "Conficurearea serverului DHCP"
 
 #: dhcp.c:116
 msgid "Configure the DHCP server by entering the settings information."
-msgstr ""
+msgstr "Configureaza serverul DHCP introducand informatiile de setare"
 
 #: dhcp.c:125
 msgid "Enabled"
-msgstr ""
+msgstr "Activat"
 
 #: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
 #: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
@@ -71,151 +72,151 @@ msgstr ""
 #: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
 #: timezone.c:78
 msgid "OK"
-msgstr ""
+msgstr "OK"
 
 #: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
 #: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
 #: networking.c:410 networking.c:560 networking.c:653 networking.c:746
 #: passwords.c:89 timezone.c:78
 msgid "Cancel"
-msgstr ""
+msgstr "Renunta"
 
 #: dhcp.c:156
 msgid ""
 "The following fields are invalid:\n"
 "\n"
-msgstr ""
+msgstr "Urmatoarele campuri sunt incorecte\n\n"
 
 #: dhcp.c:159
 msgid "Start address"
-msgstr ""
+msgstr "Adresa de Inceput"
 
 #: dhcp.c:165
 msgid "End address"
-msgstr ""
+msgstr "Adresa de Final"
 
 #: dhcp.c:173 networking.c:755
 msgid "Primary DNS"
-msgstr ""
+msgstr "Primul Server de Nume - NS1"
 
 #: dhcp.c:182 networking.c:764
 msgid "Secondary DNS"
-msgstr ""
+msgstr "Al Doilea Server de Nume - NS2"
 
 #: dhcp.c:189
 msgid "Default lease time"
-msgstr ""
+msgstr "Timpul pentru alocarea de baza"
 
 #: dhcp.c:195
 msgid "Max. lease time"
-msgstr ""
+msgstr "Timpul maxim pentru alocare"
 
 #: domainname.c:42 main.c:70
 msgid "Domain name"
-msgstr ""
+msgstr "Nume Domeniu"
 
 #: domainname.c:42
 msgid "Enter Domain name"
-msgstr ""
+msgstr "Introduceti Nume Domeniu"
 
 #: domainname.c:48
 msgid "Domain name cannot be empty."
-msgstr ""
+msgstr "Nume Domeniu nu poate fi gol"
 
 #: domainname.c:50
 msgid "Domain name cannot contain spaces."
-msgstr ""
+msgstr "Nume Domeniu nu poate contine spatii"
 
 #: domainname.c:53
 msgid "Domain name may only contain letters, numbers, hyphens and periods."
-msgstr ""
+msgstr "Nume Domeniu poate contine doar litere, numere, cratime sau paranteze"
 
 #: hostname.c:46 main.c:69
 msgid "Hostname"
-msgstr ""
+msgstr "Nume Gazda - HOST"
 
 #: hostname.c:46
 msgid "Enter the machine's hostname."
-msgstr ""
+msgstr "Introduceti Nume Gazda - HOST"
 
 #: hostname.c:53
 msgid "Hostname cannot be empty."
-msgstr ""
+msgstr "Nume Gazda - HOST - nu poate fi gol"
 
 #: hostname.c:55
 msgid "Hostname cannot contain spaces."
-msgstr ""
+msgstr "Nume Gazda - HOST - nu poate contine spatii"
 
 #: hostname.c:58
 msgid "Hostname may only contain letters, numbers and hyphens."
-msgstr ""
+msgstr "Nume Gazda - HOST - poate contine doar litere, numere si cratime"
 
 #: keymap.c:84 main.c:67
 msgid "Keyboard mapping"
-msgstr ""
+msgstr "Cartografiere Tastatura - tipul de tastatura"
 
 #: keymap.c:85
 msgid "Choose the type of keyboard you are using from the list below."
-msgstr ""
+msgstr "Alegeti tipul de tastatura pe care o folositi din lista urmatoare"
 
 #: main.c:68 timezone.c:77
 msgid "Timezone"
-msgstr ""
+msgstr "Fus Orar"
 
 #: main.c:71 networking.c:110 networking.c:115 networking.c:447
 msgid "Networking"
-msgstr ""
+msgstr "Retea"
 
 #: main.c:72 misc.c:147
 msgid "ISDN"
-msgstr ""
+msgstr "ISDN"
 
 #: main.c:73
 msgid "'root' password"
-msgstr ""
+msgstr "Parola pentru utilizator 'root'"
 
 #: main.c:74
 msgid "'admin' password"
-msgstr ""
+msgstr "Parola pentru utilizator 'admin'"
 
 #: main.c:90
 msgid "              <Tab>/<Alt-Tab> between elements   |  <Space> selects"
-msgstr ""
+msgstr "<Tab>/<Alt-Tab> pentru comutare intre elemente | <Space> selecteaza"
 
 #: main.c:97
 msgid "Section menu"
-msgstr ""
+msgstr "Meniu Sectiuni"
 
 #: main.c:98
 msgid "Select the item you wish to configure."
-msgstr ""
+msgstr "Selectati articolul pe care doriti sa-l configurati"
 
 #: main.c:99
 msgid "Quit"
-msgstr ""
+msgstr "Iesire"
 
 #: main.c:172
 msgid "Setup is complete."
-msgstr ""
+msgstr "Setup-ul s-a incheiat"
 
 #: main.c:174 netstuff.c:733 networking.c:560 networking.c:653
 msgid "Warning"
-msgstr ""
+msgstr "Atentie"
 
 #: main.c:175
 msgid ""
 "Initial setup was not entirely complete. You must ensure that Setup is "
 "properly finished by running setup again at the shell."
-msgstr ""
+msgstr "Setup-ul initial nu s-a finalizat. Trebuie sa va asigurati ca Setup-ul s-a incheiat corect ruland din nou operatiunea din shell."
 
 #: misc.c:62
 #, c-format
 msgid "Unable to write %s/main/hostname.conf"
-msgstr ""
+msgstr "%s/main/hostname.conf nu a putut fi scris"
 
 #: misc.c:71
 msgid "Unable to open main hosts file."
-msgstr ""
+msgstr "fisierul principal de hosts nu a putut fi deschis"
 
 #: misc.c:76
 msgid "Unable to write /etc/hosts."
index 8b7faba17ffefc1d6308e30b356aa3c2dc4d9e0c..70b0a0e62e5e8251e646e2fa769e2a89e5df3f72 100644 (file)
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# ipfire <qiwenqiu@yahoo.com.hk>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: IPFire Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-08-21 15:12+0000\n"
-"PO-Revision-Date: 2014-08-21 15:13+0000\n"
-"Last-Translator: Michael Tremer <michael.tremer@ipfire.org>\n"
+"PO-Revision-Date: 2015-01-31 09:57+0000\n"
+"Last-Translator: ipfire <qiwenqiu@yahoo.com.hk>\n"
 "Language-Team: Chinese (http://www.transifex.com/projects/p/ipfire/language/zh/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,31 +20,31 @@ msgstr ""
 
 #: dhcp.c:50
 msgid "Start address:"
-msgstr ""
+msgstr "起始地址"
 
 #: dhcp.c:51
 msgid "End address:"
-msgstr ""
+msgstr "结束地址"
 
 #: dhcp.c:52 networking.c:717
 msgid "Primary DNS:"
-msgstr ""
+msgstr "首选DNS服务器"
 
 #: dhcp.c:53 networking.c:723
 msgid "Secondary DNS:"
-msgstr ""
+msgstr "备用DNS服务器"
 
 #: dhcp.c:54
 msgid "Default lease (mins):"
-msgstr ""
+msgstr "默认租约(分钟)"
 
 #: dhcp.c:55
 msgid "Max lease (mins):"
-msgstr ""
+msgstr "最大租约(分钟)"
 
 #: dhcp.c:56
 msgid "Domain name suffix:"
-msgstr ""
+msgstr "域名后缀"
 
 #: dhcp.c:86 dhcp.c:93 dhcp.c:101 domainname.c:34 hostname.c:37 keymap.c:70
 #: misc.c:40 misc.c:52 netstuff.c:377 netstuff.c:566 netstuff.c:704
@@ -51,19 +52,19 @@ msgstr ""
 #: networking.c:442 networking.c:552 networking.c:603 networking.c:610
 #: networking.c:713 timezone.c:63
 msgid "Unable to open settings file"
-msgstr ""
+msgstr "无法打开配置文件"
 
 #: dhcp.c:111
 msgid "DHCP server configuration"
-msgstr ""
+msgstr "DHCP服务器配置"
 
 #: dhcp.c:116
 msgid "Configure the DHCP server by entering the settings information."
-msgstr ""
+msgstr "DHCP服务器配置信息"
 
 #: dhcp.c:125
 msgid "Enabled"
-msgstr ""
+msgstr "应用"
 
 #: dhcp.c:142 domainname.c:43 hostname.c:47 keymap.c:86 main.c:99 main.c:172
 #: main.c:174 netstuff.c:157 netstuff.c:733 netstuff.c:756 networking.c:163
@@ -71,14 +72,14 @@ msgstr ""
 #: networking.c:642 networking.c:653 networking.c:746 passwords.c:89
 #: timezone.c:78
 msgid "OK"
-msgstr ""
+msgstr "确定"
 
 #: dhcp.c:143 domainname.c:43 hostname.c:47 keymap.c:86 netstuff.c:158
 #: netstuff.c:673 netstuff.c:733 netstuff.c:756 networking.c:305
 #: networking.c:410 networking.c:560 networking.c:653 networking.c:746
 #: passwords.c:89 timezone.c:78
 msgid "Cancel"
-msgstr ""
+msgstr "取消"
 
 #: dhcp.c:156
 msgid ""