This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via de0ccf8f8c9fc6b695f45a3fdcf0a85c3b3d5299 (commit) via b6301464d409c186ea2ae9a13bbe46251e833c85 (commit) via 92b6fbcf20bc5c002fda3a8ea71316951044b899 (commit) via 93cad66b4e1c28f9642f64bdc9600d89ec1b9555 (commit) via db5b0f969331bcc3945b32a4595b8484da1dc8fb (commit) via 976a7b26bfbb556d947444d53933feb9cf0febee (commit) via 49ecf41801b38269fa46b69893126c9c94791eb0 (commit) via 7e6be0de5b5fc7cac28b7236533ce22ec99dcb6d (commit) via 9c47987e25af93f88bfddc38c84da045dda2273d (commit) via e21cef27840dbca07a4fea3e677ab422c4a90b45 (commit) via 8d903f6db9a2c942d523a9a376d29f8800800639 (commit) via 026413980f8baf88787e33b938592b1533d16812 (commit) via 40a8ea817a29e83d88a2e8c608dd0b87fb350913 (commit) via 4165a41e84fd426e8ee58999fbef1af56d544302 (commit) via ae2b566f90c3314cbe162343b84cbfe25e0babdd (commit) via e2e0f6991b6432f7dbdd2b41468e949acca3bbe6 (commit) via 6d3eb05e5c4c172153f60f924b2467dc7cc301f1 (commit) via fe875de81331d600a78df66e92ac6647d5e91578 (commit) via ffeb717f2d6f456a0f572ae843d8db53f061062c (commit) via 7726e3a66bf397742a346512922ef67184d8f483 (commit) via f8cdaa1084caefafca126ca7e50600f8fbc4a1bb (commit) via 1b34f6cd64a7344220e69822175b26849caaa823 (commit) via 325a846a10e80385e12f08c72bfda19690c0aa5d (commit) via 7ae2d8a2a4448ae06437fd80e794c00a4303f56e (commit) via 12f74b8f919f264e24778c9d31dc74cd90a82cda (commit) via 08215cb5d8012ba9ae0918c251be3f904e0c1aef (commit) via 893ef99ed42b905c9c4500ab75604abd00f70ab5 (commit) via a5b2c82327f2e4697393afd1221ccd866e554248 (commit) via a762fcd0370069d7ce00627d5288a7d4a633329f (commit) via 518520ae274e447fe5f020b3b4bf0dd23e28957a (commit) via 68846b73457f99caf34b4023410ee17fcd73bdcc (commit) via 7db4c67f8162c2cdadab69207c1931dcb0abd783 (commit) via d595016bfba0c3b7b2b91c449fdbabb95b0b3974 (commit) via d1b89a12f9d067c5983c410641b11fe7c195a4c9 (commit) via d47c2aaec838991b27e02dd03855828b7c716ce1 (commit) via b3a774e2f61a37199b8e5ef6e0ce1dc191762479 (commit) via 2d6f40d6d9d63bf4d7b71876cff22350c07b4ac4 (commit) via 2fdba16c8805d41d0843fa1d0069b2830bad664d (commit) via 494a93987e44c75e5638f6b2fb3ead03fc7005cf (commit) via 0309f656fd6406257d11483874cefabcc0060e64 (commit) via c1000c2cd4a7fb0ea38ed9c4772207a38819c070 (commit) via 511f9a88e7b92135083492e43ee80e7d1e5a8d94 (commit) from 60620d3d4385628f9c5c7725d042b742940bbb28 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit de0ccf8f8c9fc6b695f45a3fdcf0a85c3b3d5299 Merge: 60620d3 b630146 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 4 13:24:05 2015 +0100
Merge branch 'master' into next
Conflicts: make.sh
-----------------------------------------------------------------------
Summary of changes: config/etc/modprobe.d/btmrvl_sdio.conf | 2 + config/firewall/rules.pl | 19 +- .../kernel/kernel.config.armv5tel-ipfire-kirkwood | 26 +- config/kernel/kernel.config.armv5tel-ipfire-multi | 49 +-- config/kernel/kernel.config.armv5tel-ipfire-rpi | 6 +- config/kernel/kernel.config.i586-ipfire | 5 +- config/kernel/kernel.config.i586-ipfire-pae | 8 +- config/lib/firmware/brcm/brcmfmac4329-sdio.txt | 68 ++++ config/lib/firmware/brcm/brcmfmac4330-sdio.txt | 122 ++++++++ config/lib/firmware/brcm/brcmfmac43362-sdio.txt | 58 ++++ config/rootfiles/common/armv5tel/initscripts | 2 + config/rootfiles/common/armv5tel/linux-kirkwood | 19 ++ config/rootfiles/common/armv5tel/linux-multi | 34 +- config/rootfiles/common/armv5tel/linux-rpi | 3 + config/rootfiles/common/armv5tel/swconfig | 1 + config/rootfiles/common/armv5tel/util-linux | 2 +- config/rootfiles/common/crda | 6 +- config/rootfiles/common/i586/util-linux | 2 +- config/rootfiles/common/stage2 | 9 +- config/rootfiles/core/86/exclude | 5 +- .../rootfiles/core/86/filelists/armv5tel/swconfig | 1 + config/rootfiles/core/86/filelists/files | 4 + .../rootfiles/core/86/filelists/updated-firmwares | 3 + config/rootfiles/core/86/update.sh | 72 ++--- html/cgi-bin/wlanap.cgi | 4 +- lfs/backports | 8 + lfs/fping | 8 +- lfs/glibc | 13 +- lfs/hostapd | 2 +- lfs/initscripts | 6 +- lfs/linux | 26 +- lfs/mtr | 8 +- lfs/pound | 6 +- lfs/stage2 | 3 +- lfs/strongswan | 1 + lfs/{linux-firmware => swconfig} | 11 +- make.sh | 3 +- src/initscripts/init.d/collectd | 7 +- src/initscripts/init.d/hostapd | 18 +- src/initscripts/init.d/leds | 11 + src/initscripts/init.d/swconfig | 79 +++++ src/installer/main.c | 2 +- src/installer/po/es.po | 136 ++++---- src/installer/po/fa.po | 22 +- src/installer/po/hr.po | 44 +-- src/installer/po/{ja_JP.po => jv.po} | 6 +- src/installer/po/nl.po | 135 ++++---- src/installer/po/pl.po | 49 +-- src/installer/po/{sr.po => ru_RU.po} | 4 +- src/installer/po/{ja_JP.po => su.po} | 4 +- src/patches/glibc/glibc-rh1019916.patch | 39 +++ ...glibc-rh1091162.patch => glibc-rh1027101.patch} | 0 src/patches/glibc/glibc-rh1027261.patch | 28 ++ src/patches/glibc/glibc-rh1032628.patch | 166 ++++++++++ ...glibc-rh1098050.patch => glibc-rh1044628.patch} | 0 src/patches/glibc/glibc-rh1111460.patch | 341 +++++++++++++++++++++ src/patches/glibc/glibc-rh1139571.patch | 154 ++++++++++ src/patches/glibc/glibc-rh1154563.patch | 333 ++++++++++++++++++++ src/patches/glibc/glibc-rh1170121.patch | 163 ++++++++++ src/patches/glibc/glibc-rh1183533.patch | 210 +++++++++++++ src/patches/glibc/glibc-rh995972.patch | 246 +++++++++++++++ src/patches/linux-3.14.x-update_banana_dts.patch | 301 ++++++++++++++++++ .../strongswan-5.1.2-5.2.1_modp_custom.patch | 164 ++++++++++ src/setup/po/es.po | 264 ++++++++-------- src/setup/po/fa.po | 12 +- src/setup/po/nl.po | 159 +++++----- src/setup/po/pt_BR.po | 159 +++++----- src/setup/po/ro_RO.po | 97 +++--- src/setup/po/zh.po | 31 +- 69 files changed, 3307 insertions(+), 702 deletions(-) create mode 100644 config/etc/modprobe.d/btmrvl_sdio.conf create mode 100644 config/lib/firmware/brcm/brcmfmac4329-sdio.txt create mode 100644 config/lib/firmware/brcm/brcmfmac4330-sdio.txt create mode 100644 config/lib/firmware/brcm/brcmfmac43362-sdio.txt create mode 100644 config/rootfiles/common/armv5tel/swconfig create mode 120000 config/rootfiles/core/86/filelists/armv5tel/swconfig copy lfs/{linux-firmware => swconfig} (93%) create mode 100644 src/initscripts/init.d/swconfig copy src/installer/po/{ja_JP.po => jv.po} (97%) copy src/installer/po/{sr.po => ru_RU.po} (98%) copy src/installer/po/{ja_JP.po => su.po} (98%) create mode 100644 src/patches/glibc/glibc-rh1019916.patch rename src/patches/glibc/{glibc-rh1091162.patch => glibc-rh1027101.patch} (100%) create mode 100644 src/patches/glibc/glibc-rh1027261.patch create mode 100644 src/patches/glibc/glibc-rh1032628.patch rename src/patches/glibc/{glibc-rh1098050.patch => glibc-rh1044628.patch} (100%) create mode 100644 src/patches/glibc/glibc-rh1111460.patch create mode 100644 src/patches/glibc/glibc-rh1139571.patch create mode 100644 src/patches/glibc/glibc-rh1154563.patch create mode 100644 src/patches/glibc/glibc-rh1170121.patch create mode 100644 src/patches/glibc/glibc-rh1183533.patch create mode 100644 src/patches/glibc/glibc-rh995972.patch create mode 100644 src/patches/linux-3.14.x-update_banana_dts.patch create mode 100644 src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch
Difference in files: diff --git a/config/etc/modprobe.d/btmrvl_sdio.conf b/config/etc/modprobe.d/btmrvl_sdio.conf new file mode 100644 index 0000000..66cd021 --- /dev/null +++ b/config/etc/modprobe.d/btmrvl_sdio.conf @@ -0,0 +1,2 @@ +# seems to crash often +blacklist btmrvl_sdio diff --git a/config/firewall/rules.pl b/config/firewall/rules.pl index a475e2d..97b8897 100755 --- a/config/firewall/rules.pl +++ b/config/firewall/rules.pl @@ -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);
diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index fbfc05c..18ffcd7 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -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 diff --git a/config/kernel/kernel.config.armv5tel-ipfire-multi b/config/kernel/kernel.config.armv5tel-ipfire-multi index 8249d2c..e3fa93e 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-multi +++ b/config/kernel/kernel.config.armv5tel-ipfire-multi @@ -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 diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index b02167d..17a7305 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -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 diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 5869b88..87687d9 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -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
# diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index 54cfb06..c5a437a 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -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 index 0000000..3832006 --- /dev/null +++ b/config/lib/firmware/brcm/brcmfmac4329-sdio.txt @@ -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 index 0000000..c5c2611 --- /dev/null +++ b/config/lib/firmware/brcm/brcmfmac4330-sdio.txt @@ -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 index 0000000..d967bfe --- /dev/null +++ b/config/lib/firmware/brcm/brcmfmac43362-sdio.txt @@ -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 diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index e529e66..6347caf 100755 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -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 diff --git a/config/rootfiles/common/armv5tel/linux-kirkwood b/config/rootfiles/common/armv5tel/linux-kirkwood index 50ac434..f5ae585 100644 --- a/config/rootfiles/common/armv5tel/linux-kirkwood +++ b/config/rootfiles/common/armv5tel/linux-kirkwood @@ -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 diff --git a/config/rootfiles/common/armv5tel/linux-multi b/config/rootfiles/common/armv5tel/linux-multi index eee6ad2..fa07629 100644 --- a/config/rootfiles/common/armv5tel/linux-multi +++ b/config/rootfiles/common/armv5tel/linux-multi @@ -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 diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi index ee74ac3..dbde8c0 100644 --- a/config/rootfiles/common/armv5tel/linux-rpi +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -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 index 0000000..720791e --- /dev/null +++ b/config/rootfiles/common/armv5tel/swconfig @@ -0,0 +1 @@ +usr/bin/swconfig diff --git a/config/rootfiles/common/armv5tel/util-linux b/config/rootfiles/common/armv5tel/util-linux index 0f36409..2675dd0 100644 --- a/config/rootfiles/common/armv5tel/util-linux +++ b/config/rootfiles/common/armv5tel/util-linux @@ -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 diff --git a/config/rootfiles/common/crda b/config/rootfiles/common/crda index 74f0850..1e6f602 100644 --- a/config/rootfiles/common/crda +++ b/config/rootfiles/common/crda @@ -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 diff --git a/config/rootfiles/common/i586/util-linux b/config/rootfiles/common/i586/util-linux index 34c87f2..9b8d484 100644 --- a/config/rootfiles/common/i586/util-linux +++ b/config/rootfiles/common/i586/util-linux @@ -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 diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 9a4d8ed..663aef5 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -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 diff --git a/config/rootfiles/core/86/exclude b/config/rootfiles/core/86/exclude index 18e9b4d..37c2aaa 100644 --- a/config/rootfiles/core/86/exclude +++ b/config/rootfiles/core/86/exclude @@ -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 index 0000000..e5606ed --- /dev/null +++ b/config/rootfiles/core/86/filelists/armv5tel/swconfig @@ -0,0 +1 @@ +../../../../common/armv5tel/swconfig \ No newline at end of file diff --git a/config/rootfiles/core/86/filelists/files b/config/rootfiles/core/86/filelists/files index dcdb65c..9a07cbc 100644 --- a/config/rootfiles/core/86/filelists/files +++ b/config/rootfiles/core/86/filelists/files @@ -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 diff --git a/config/rootfiles/core/86/filelists/updated-firmwares b/config/rootfiles/core/86/filelists/updated-firmwares index 6a7a43c..f923b15 100644 --- a/config/rootfiles/core/86/filelists/updated-firmwares +++ b/config/rootfiles/core/86/filelists/updated-firmwares @@ -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 diff --git a/config/rootfiles/core/86/update.sh b/config/rootfiles/core/86/update.sh index bdb96fc..ab72e68 100644 --- a/config/rootfiles/core/86/update.sh +++ b/config/rootfiles/core/86/update.sh @@ -24,15 +24,6 @@ . /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 diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index c78a3c4..ec9022d 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -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; } diff --git a/lfs/backports b/lfs/backports index cd48700..0eebe81 100644 --- a/lfs/backports +++ b/lfs/backports @@ -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
diff --git a/lfs/fping b/lfs/fping index 6418686..11939b6 100644 --- 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)
diff --git a/lfs/glibc b/lfs/glibc index df3e392..11d374e 100644 --- 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 diff --git a/lfs/hostapd b/lfs/hostapd index c381a0a..74c2ae8 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -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 = ""
diff --git a/lfs/initscripts b/lfs/initscripts index 4894710..f656c72 100755 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -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 diff --git a/lfs/linux b/lfs/linux index 5b0de46..6ae69ed 100644 --- 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 # @@ -24,11 +24,11 @@
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 ca08396..abb6e8e 100644 --- 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)
diff --git a/lfs/pound b/lfs/pound index 20e807d..a0f6f29 100644 --- 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)
diff --git a/lfs/stage2 b/lfs/stage2 index 19d9553..895ee15 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -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 diff --git a/lfs/strongswan b/lfs/strongswan index b2be4c1..eb9cf46 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -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 index 0000000..81e0b9f --- /dev/null +++ b/lfs/swconfig @@ -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 ec88aba..42655ab 100755 --- 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() { diff --git a/src/initscripts/init.d/collectd b/src/initscripts/init.d/collectd index 7de005e..96bd126 100644 --- a/src/initscripts/init.d/collectd +++ b/src/initscripts/init.d/collectd @@ -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 diff --git a/src/initscripts/init.d/hostapd b/src/initscripts/init.d/hostapd index 8f59a7f..1e7cec4 100644 --- a/src/initscripts/init.d/hostapd +++ b/src/initscripts/init.d/hostapd @@ -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 ;; diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds index faa7650..9f7323f 100644 --- a/src/initscripts/init.d/leds +++ b/src/initscripts/init.d/leds @@ -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 index 0000000..be4604d --- /dev/null +++ b/src/initscripts/init.d/swconfig @@ -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 + diff --git a/src/installer/main.c b/src/installer/main.c index c97776d..358b2c4 100644 --- a/src/installer/main.c +++ b/src/installer/main.c @@ -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 { diff --git a/src/installer/po/es.po b/src/installer/po/es.po index d58cee8..725ebef 100644 --- a/src/installer/po/es.po +++ b/src/installer/po/es.po @@ -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/)%5Cn" "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 "Sí"
#: 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." diff --git a/src/installer/po/fa.po b/src/installer/po/fa.po index 67d4d26..231adf4 100644 --- a/src/installer/po/fa.po +++ b/src/installer/po/fa.po @@ -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/)%5Cn" "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 diff --git a/src/installer/po/hr.po b/src/installer/po/hr.po index 3b67c36..3638f10 100644 --- a/src/installer/po/hr.po +++ b/src/installer/po/hr.po @@ -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/)%5Cn" "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 index 0000000..333dea3 --- /dev/null +++ b/src/installer/po/jv.po @@ -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/)%5Cn" +"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 "" diff --git a/src/installer/po/nl.po b/src/installer/po/nl.po index 41908ac..009e9c4 100644 --- a/src/installer/po/nl.po +++ b/src/installer/po/nl.po @@ -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/)%5Cn" "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." diff --git a/src/installer/po/pl.po b/src/installer/po/pl.po index 4abe195..056eea1 100644 --- a/src/installer/po/pl.po +++ b/src/installer/po/pl.po @@ -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/)%5Cn" "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 index 0000000..83ee576 --- /dev/null +++ b/src/installer/po/ru_RU.po @@ -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/)%5Cn" +"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 index 0000000..758c337 --- /dev/null +++ b/src/installer/po/su.po @@ -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/)%5Cn" +"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 index 0000000..f67af90 --- /dev/null +++ b/src/patches/glibc/glibc-rh1019916.patch @@ -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-rh1027101.patch b/src/patches/glibc/glibc-rh1027101.patch new file mode 100644 index 0000000..7825682 --- /dev/null +++ b/src/patches/glibc/glibc-rh1027101.patch @@ -0,0 +1,58 @@ +commit 362b47fe09ca9a928d444c7e2f7992f7f61bfc3e +Author: Maxim Kuvyrkov maxim@kugelworks.com +Date: Tue Dec 24 09:44:50 2013 +1300 + + Fix race in free() of fastbin chunk: BZ #15073 + + Perform sanity check only if we have_lock. Due to lockless nature of fastbins + we need to be careful derefencing pointers to fastbin entries (chunksize(old) + in this case) in multithreaded environments. + + The fix is to add have_lock to the if-condition checks. The rest of the patch + only makes code more readable. + + * malloc/malloc.c (_int_free): Perform sanity check only if we + have_lock. + +diff --git a/malloc/malloc.c b/malloc/malloc.c +index b1668b5..5e419ad 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -3783,25 +3783,29 @@ _int_free(mstate av, mchunkptr p, int have_lock) + fb = &fastbin (av, idx); + + #ifdef ATOMIC_FASTBINS +- mchunkptr fd; +- mchunkptr old = *fb; ++ /* Atomically link P to its fastbin: P->FD = *FB; *FB = P; */ ++ mchunkptr old = *fb, old2; + unsigned int old_idx = ~0u; + do + { +- /* Another simple check: make sure the top of the bin is not the +- record we are going to add (i.e., double free). */ ++ /* Check that the top of the bin is not the record we are going to add ++ (i.e., double free). */ + if (__builtin_expect (old == p, 0)) + { + errstr = "double free or corruption (fasttop)"; + goto errout; + } +- if (old != NULL) ++ /* Check that size of fastbin chunk at the top is the same as ++ size of the chunk that we are adding. We can dereference OLD ++ only if we have the lock, otherwise it might have already been ++ deallocated. See use of OLD_IDX below for the actual check. */ ++ if (have_lock && old != NULL) + old_idx = fastbin_index(chunksize(old)); +- p->fd = fd = old; ++ p->fd = old2 = old; + } +- while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd); ++ while ((old = catomic_compare_and_exchange_val_rel (fb, p, old2)) != old2); + +- if (fd != NULL && __builtin_expect (old_idx != idx, 0)) ++ if (have_lock && old != NULL && __builtin_expect (old_idx != idx, 0)) + { + errstr = "invalid fastbin entry (free)"; + goto errout; diff --git a/src/patches/glibc/glibc-rh1027261.patch b/src/patches/glibc/glibc-rh1027261.patch new file mode 100644 index 0000000..8599cf0 --- /dev/null +++ b/src/patches/glibc/glibc-rh1027261.patch @@ -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 index 0000000..6140c19 --- /dev/null +++ b/src/patches/glibc/glibc-rh1032628.patch @@ -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-rh1044628.patch b/src/patches/glibc/glibc-rh1044628.patch new file mode 100644 index 0000000..e5ff3ca --- /dev/null +++ b/src/patches/glibc/glibc-rh1044628.patch @@ -0,0 +1,28 @@ +commit cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a +Author: Siddhesh Poyarekar siddhesh@redhat.com +Date: Thu May 15 12:33:11 2014 +0530 + + Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849) + + getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6 + queries. For AF_UNSPEC however, an older change + (a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to + that the returned error was EAI_NONAME. + + This patch fixes the check so that a non-authoritative not-found is + returned as EAI_AGAIN to the user instead of EAI_NONAME. + +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 6258330..8f392b9 100644 +--- a/sysdeps/posix/getaddrinfo.c ++++ b/sysdeps/posix/getaddrinfo.c +@@ -867,8 +867,7 @@ gaih_inet (const char *name, const struct gaih_service *service, + if (status != NSS_STATUS_TRYAGAIN + || rc != ERANGE || herrno != NETDB_INTERNAL) + { +- if (status == NSS_STATUS_TRYAGAIN +- && herrno == TRY_AGAIN) ++ if (herrno == TRY_AGAIN) + no_data = EAI_AGAIN; + else + no_data = herrno == NO_DATA; diff --git a/src/patches/glibc/glibc-rh1091162.patch b/src/patches/glibc/glibc-rh1091162.patch deleted file mode 100644 index 7825682..0000000 --- a/src/patches/glibc/glibc-rh1091162.patch +++ /dev/null @@ -1,58 +0,0 @@ -commit 362b47fe09ca9a928d444c7e2f7992f7f61bfc3e -Author: Maxim Kuvyrkov maxim@kugelworks.com -Date: Tue Dec 24 09:44:50 2013 +1300 - - Fix race in free() of fastbin chunk: BZ #15073 - - Perform sanity check only if we have_lock. Due to lockless nature of fastbins - we need to be careful derefencing pointers to fastbin entries (chunksize(old) - in this case) in multithreaded environments. - - The fix is to add have_lock to the if-condition checks. The rest of the patch - only makes code more readable. - - * malloc/malloc.c (_int_free): Perform sanity check only if we - have_lock. - -diff --git a/malloc/malloc.c b/malloc/malloc.c -index b1668b5..5e419ad 100644 ---- a/malloc/malloc.c -+++ b/malloc/malloc.c -@@ -3783,25 +3783,29 @@ _int_free(mstate av, mchunkptr p, int have_lock) - fb = &fastbin (av, idx); - - #ifdef ATOMIC_FASTBINS -- mchunkptr fd; -- mchunkptr old = *fb; -+ /* Atomically link P to its fastbin: P->FD = *FB; *FB = P; */ -+ mchunkptr old = *fb, old2; - unsigned int old_idx = ~0u; - do - { -- /* Another simple check: make sure the top of the bin is not the -- record we are going to add (i.e., double free). */ -+ /* Check that the top of the bin is not the record we are going to add -+ (i.e., double free). */ - if (__builtin_expect (old == p, 0)) - { - errstr = "double free or corruption (fasttop)"; - goto errout; - } -- if (old != NULL) -+ /* Check that size of fastbin chunk at the top is the same as -+ size of the chunk that we are adding. We can dereference OLD -+ only if we have the lock, otherwise it might have already been -+ deallocated. See use of OLD_IDX below for the actual check. */ -+ if (have_lock && old != NULL) - old_idx = fastbin_index(chunksize(old)); -- p->fd = fd = old; -+ p->fd = old2 = old; - } -- while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd); -+ while ((old = catomic_compare_and_exchange_val_rel (fb, p, old2)) != old2); - -- if (fd != NULL && __builtin_expect (old_idx != idx, 0)) -+ if (have_lock && old != NULL && __builtin_expect (old_idx != idx, 0)) - { - errstr = "invalid fastbin entry (free)"; - goto errout; diff --git a/src/patches/glibc/glibc-rh1098050.patch b/src/patches/glibc/glibc-rh1098050.patch deleted file mode 100644 index e5ff3ca..0000000 --- a/src/patches/glibc/glibc-rh1098050.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a -Author: Siddhesh Poyarekar siddhesh@redhat.com -Date: Thu May 15 12:33:11 2014 +0530 - - Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849) - - getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6 - queries. For AF_UNSPEC however, an older change - (a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to - that the returned error was EAI_NONAME. - - This patch fixes the check so that a non-authoritative not-found is - returned as EAI_AGAIN to the user instead of EAI_NONAME. - -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index 6258330..8f392b9 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -867,8 +867,7 @@ gaih_inet (const char *name, const struct gaih_service *service, - if (status != NSS_STATUS_TRYAGAIN - || rc != ERANGE || herrno != NETDB_INTERNAL) - { -- if (status == NSS_STATUS_TRYAGAIN -- && herrno == TRY_AGAIN) -+ if (herrno == TRY_AGAIN) - no_data = EAI_AGAIN; - else - no_data = herrno == NO_DATA; diff --git a/src/patches/glibc/glibc-rh1111460.patch b/src/patches/glibc/glibc-rh1111460.patch new file mode 100644 index 0000000..1a4315d --- /dev/null +++ b/src/patches/glibc/glibc-rh1111460.patch @@ -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 index 0000000..b1320a7 --- /dev/null +++ b/src/patches/glibc/glibc-rh1139571.patch @@ -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 index 0000000..22821b1 --- /dev/null +++ b/src/patches/glibc/glibc-rh1154563.patch @@ -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 index 0000000..1accbf3 --- /dev/null +++ b/src/patches/glibc/glibc-rh1170121.patch @@ -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 index 0000000..9263cd5 --- /dev/null +++ b/src/patches/glibc/glibc-rh1183533.patch @@ -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 index 0000000..0178bca --- /dev/null +++ b/src/patches/glibc/glibc-rh995972.patch @@ -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 index 0000000..309416b --- /dev/null +++ b/src/patches/linux-3.14.x-update_banana_dts.patch @@ -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 = <®_vmmc3>; ++ bus-width = <4>; ++ non-removable; ++ status = "okay"; ++ }; ++ ++ usbphy: phy@01c13400 { ++ usb1_vbus-supply = <®_usb1_vbus>; ++ usb2_vbus-supply = <®_usb2_vbus>; ++ status = "okay"; ++ }; ++ ++ ehci0: usb@01c14000 { ++ status = "okay"; ++ }; ++ ++ ohci0: usb@01c14400 { ++ status = "okay"; ++ }; ++ ++ ahci: sata@01c18000 { ++ target-supply = <®_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 = <®_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 index 0000000..df2cb09 --- /dev/null +++ b/src/patches/strongswan-5.1.2-5.2.1_modp_custom.patch @@ -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 + diff --git a/src/setup/po/es.po b/src/setup/po/es.po index 53fa0b3..060dd2d 100644 --- a/src/setup/po/es.po +++ b/src/setup/po/es.po @@ -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/)%5Cn" "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." diff --git a/src/setup/po/fa.po b/src/setup/po/fa.po index 58a2008..a825ca8 100644 --- a/src/setup/po/fa.po +++ b/src/setup/po/fa.po @@ -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/)%5Cn" "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 diff --git a/src/setup/po/nl.po b/src/setup/po/nl.po index 18d9512..1ee9093 100644 --- a/src/setup/po/nl.po +++ b/src/setup/po/nl.po @@ -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/)%5Cn" "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." diff --git a/src/setup/po/pt_BR.po b/src/setup/po/pt_BR.po index a16955b..1cb5bc6 100644 --- a/src/setup/po/pt_BR.po +++ b/src/setup/po/pt_BR.po @@ -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/)%5Cn" "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." diff --git a/src/setup/po/ro_RO.po b/src/setup/po/ro_RO.po index e85d2f7..9bf182c 100644 --- a/src/setup/po/ro_RO.po +++ b/src/setup/po/ro_RO.po @@ -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/)%5Cn" "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." diff --git a/src/setup/po/zh.po b/src/setup/po/zh.po index 8b7faba..70b0a0e 100644 --- a/src/setup/po/zh.po +++ b/src/setup/po/zh.po @@ -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/)%5Cn" "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 ""
hooks/post-receive -- IPFire 2.x development tree