LINUX.ORG.RU

Сообщения punya

 

Пробелы иногда быстрее, чем табуляции

Форум — Talks

Новый виток холивара пробелы vs табуляции открывает джаваскриптовый движок firefox. Нашел тут бажок https://bugzilla.mozilla.org/show_bug.cgi?id=1154339

 ,

punya ()

Сертификаты от Linux Foundation

Форум — Talks

на выбор 2 экзамена по $50

  • сисадмин
  • инженер

http://training.linuxfoundation.org/certification

 ,

punya ()

Red Hat хочет стандартизировать Linux для ARM-серверов

Форум — Talks

Red Hat разработала версию операционной системы Linux, которая может быть использована для тестирования чипов и связанного с ними аппаратного обеспечения на базе 64-битной архитектуры ARMv8-A. Эксперты отмечают, что к концу года на рынке появятся компактные серверы, работающие на базе чипов ARM и предназначенные для хостинга.

 ,

punya ()

В Firefox появилась возможность использовать relative на ячейках таблицы

Новости — Mozilla
Группа Mozilla

Закрыт знаменитый баг возрастом 14 лет. Теперь можно использовать position : relative; display : table-cell на блоке и position : absolute на любом из его потомоков.

Пример

Фикс должен быть доступен в следующем релизе.

>>> Подробности

 , ,

punya ()

Firefox избавился от знаменитого бага

Форум — Talks

https://bugzilla.mozilla.org/show_bug.cgi?id=63895

Мозилла пофиксила свой уникальный баг с position relative для table-cell, который висел 14 лет. Даже как-то грустно прощаться с дедовскими костылями. =(

 

punya ()

Мини-ПК Cloudsto Evo с Ubuntu 12.10

Форум — Talks

В британской сети розничной торговли Cloudsto появился настольный мини-ПК Cloudsto Evo, в котором в качестве операционной системы используется дистрибутив Linux Ubuntu 12.10 LTS.

RK3188, Mali 400, 1 Гб ОЗУ, 8 Гб флеш ПЗУ.

Цена 5500 руб

http://www.3dnews.ru/820408

 , ,

punya ()

Перемещение pthread_mutex_t в памяти

Форум — Development

На просторах интернетов нашел информацию, что pthread_mutex_t нельзя перемещать в памяти, когда он используется. Но у меня не получается это воспроизвести

#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
    pthread_mutex_t * mutex_1 = malloc ( sizeof ( pthread_mutex_t ) );
    pthread_mutex_t * mutex_2 = malloc ( sizeof ( pthread_mutex_t ) );
    pthread_mutex_t * mutex_3 = malloc ( sizeof ( pthread_mutex_t ) );

    if ( mutex_1 == NULL || mutex_2 == NULL || mutex_3 == NULL || pthread_mutex_init ( mutex_1, NULL ) != 0 ) {
        free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
        return 1;
    }

    memmove ( mutex_2, mutex_1, sizeof ( pthread_mutex_t ) );
    if ( pthread_mutex_lock ( mutex_2 ) != 0 ) {
        free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
        return 2;
    }

    memmove ( mutex_3, mutex_2, sizeof ( pthread_mutex_t ) );
    if ( pthread_mutex_unlock ( mutex_3 ) != 0 || pthread_mutex_destroy ( mutex_3 ) != 0 ) {
        free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
        return 3;
    }

    free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
    return 0;
}
gcc -O0 -g -std=gnu99 main.c -o main && ./main ; echo $?
>> 0
clang -O0 -g -std=c99 -fsanitize=thread -fno-omit-frame-pointer main.c -o main && ./main ; echo $?
>>
ThreadSanitizer WARNING: unlock of unlocked mutex 0x7d0c0000ef70
    #0 pthread_mutex_unlock <null>:0 (main+0x00000006321c)
    #1 main /home/puchuu/temp/main.c:24 (main+0x0000000a04f5)

0

Где найти конкретную информацию почему нельзя перемещать мьютекс? А можно ли перемещать спинлоки и семафоры?

ЗЫ точное воспроизведение неспособности мьютекса быть перемещенным - очень важно. Программа проверки может отдать сборочной системе флаг типа MUTEX_NOT_MOVABLE и программист может принять решение о костыле.

 ,

punya ()

LGPLv3 + static link exception

Форум — General

нашел COPYING.LESSER с интересным дополнением

                            STATIC LINK EXCEPTION

As a special exception, the Authors give you permission to link this library with
independent modules to produce an executable, regardless of the license terms
of these independent modules, and to copy and distribute the resulting
executable under terms of your choice, provided that you also meet, for each
linked independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from or based on
this library. If you modify this library, you must extend this exception to your
version of the library.

Note: this exception relieves you of any obligations under sections 4 and 5
of this license, and section 6 of the GNU General Public License.

Не делает ли это лицензию ничтожной? Есть ли у кого практика использования такой лицензии?

 

punya ()

без ресемплинга нельзя?

Форум — Desktop

app-emulation/emul-linux-x86-soundlibs посоветовал мне юзать пульсу. ну думаю - пора ставить.

открываю документ. Называется «страничка для аудиофила», рекламируются xonar-ы и при этом рассказывается про ресемплинг. охлол

Вопрос #1 : почему до сих пор не появилась функция отключения ресемплинга? чтобы аудио плеер смог монополизировать доступ к звуковому девайсу - нужно сначала убить пульсу. это жэсточайшэ неудобно. почему в pavucontrol возле приложения не предусмотрена такая кнопка «bit-perfect», которая перенаправит звук с этого приложения прямо на звуковуху, заглушив все остальные?

=Enhancements= PulseAudio could be enhanced to make some of this a bit easier. It could open a channel for each sample rate to provide bit-perfect playback of any sample of audio media.

Вопрос #2 : что это такое и как это сделать?

Перемещено mono из talks

 

punya ()

Библиотека для репликации данных

Форум — Talks

Практически каждая СУБД умеет выполнять репликацию данных между удаленными копиями БД. Для этой функциональности они имеют свои велосипеды. Погуглив я не нашел ни одной попытки запилить общую библиотеку для реализации хотябы частного случая репликации. Плохо гуглил?

 ,

punya ()

Вынести некоторые опции из юзов в переменную окружения

Форум — General

Рассмотрим пример. eix qemu-user:

Installed versions : (QEMU_USER_TARGETS="arm -alpha -armeb -cris -i386 -m68k -microblaze -microblazeel -mips -mips64 -mipsel -ppc -ppc64 -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32 -x86_64")
хочется узнать, каким образом сделан этот «QEMU_USER_TARGETS».

меняем qemu-user-9999.ebuild. дописываем кусочек кода

src_unpack() {
        for target in ${IUSE_USER_TARGETS}; do
                use "qemu_user_targets_${target}" && echo "! ${target}"
        done
}
sudo ebuild qemu-user-9999.ebuild manifest
QEMU_USER_TARGETS="arm mips" sudo -E ebuild qemu-user-9999.ebuild unpack
sudo ebuild qemu-user-9999.ebuild clean
USE="qemu_user_targets_arm qemu_user_targets_mips" sudo -E ebuild qemu-user-9999.ebuild unpack

в обоих случаях получаем

! arm
! mips

создаем program-1.ebuild

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI="5"

DESCRIPTION=""
HOMEPAGE=""

LICENSE=""
SLOT="0"
KEYWORDS=""

RDEPEND=""
DEPEND=""

IUSE="use1 use2"
IUSE_FEATURES="feature1 feature2"

for feature in ${IUSE_FEATURES};
do
        IUSE="${IUSE} program_features_${feature}"
done

src_unpack() {
        for feature in ${IUSE_FEATURES};
        do
                use "program_features_${feature}" && echo "! ${feature}"
        done
}

и делаем тоже самое

sudo ebuild program-1.ebuild manifest
USE="program_features_feature1" sudo -E ebuild program-1.ebuild unpack
sudo ebuild program-1.ebuild clean
PROGRAM_FEATURES="feature1" sudo -E ebuild program-1.ebuild unpack

! feature1

работает только c USE=«program_features_feature1». не понятно.

Перемещено Pinkbyte из development

 ,

punya ()

трактовка llvm патентов

Форум — Talks

Искал патенты, которые получило яблоко конкретно относительно LLVM (Low Level Virtual Machine), а не (Low level Virtual Memory) и нашел 2 весьма интересных экземпляра.

WO2010075099A2 WO2012015671A1

Любой фронтенд javascript -> llvm попадает на 1-ый и 2-ой патенты. Любой фронтенд интерпретируемого языка -> llvm попадает на 2-ой патент.

Правильно ли я все понял? Если да, то чего люди так радуются llvm? Их же изо всех сил пытаются нагнуть.

 , ,

punya ()

openwrt vs free space

Форум — Talks

Пытался поставить nano. Не смогло установится. пакеты terminfo, libncurces начали ставится и не хватило места. Теперь я хочу удалить эти пакеты, но их нет в списке установленных. «opkg remove libncurces --autoremove» не хочет работать. Потроха этих пакетов успешно загадили свободное место. Никакого «opkg cleanup» нету и что теперь делать?

 ,

punya ()

Chroot mips (TL-WDR4310) hang

Форум — Linux-hardware

Пытаюсь сделать минимальный рабочий chroot для роутера. Для начала сделал для арма. В 2 словах:

crossdev -t armv7a-hardfloat-linux-gnueabi --b 2.23.2 --k 3.10 --l 2.17 --g 4.8.1-r1
sudo armv7a-hardfloat-linux-gnueabi -av bash sys-kernel/linux-headers sys-libs/uclibc sys-devel/gcc
sudo cp /usr/bin/qemu-static-arm /usr/armv7a-hardfloat-linux-gnueabi
chroot /usr/armv7a-hardfloat-linux-gnueabi
и все прекрасно работает. внутри можно выполнить «gcc -v» и «exit».

Но вот с роутером что-то не чисто. На нем стоит openwrt 12.09 (и подцеплен веник по usb). Ни один готовый stage3 для mips не работает. Симптом следующий : chroot повисает и bash ест 100% проца.

Делаю тулчеин:

USE="-nptl -nls" sudo -E crossdev -t mips-linux-uclibc --b 2.23.2 --g 4.8.1-r1 --k 3.3 --l 0.9.33.2-r6
компилирую dhrystone.c > копирую на роутер > выполняю. таким методом научного тыка определяю CFLAGS
CFLAGS="-O2 -pipe -mips32r2 -mdsp"
И кое-что меня насторожило. Если собрать с «Ofast» то бинарник при выполнении повисает намертво как и bash из готовых stage3.

Опять собираю «gcc», «uclibc», «linux-headers», «uclibc». Копирую это хозяйство на роутер. И так же chroot виснет! вот strace

Я пробовал bash, tcsh, ash, менял CFLAGS, переделывать все полностью с softfloat, hardfloat. Никакого толку. Может проблема в ядре openwrt?

С какой стороны вообще такую проблему укусить?

 , ,

punya ()

Grub2 соотношение между номером hdX и sdX

Форум — Linux-hardware

обновил я grub2, сделал

grub2-mkconfig -o /boot/grub2/grub.conf
и перезагрузился. увидел командную строку вместо списка ядер. Оказалось, что в /boot/grub2/grub.cfg
set root='hd3,msdos1'
а в командной строке заработало так
set root='hd0,msdos1'
я заменил в конфиге hd3 на hd0 но это коряво. как сделать так, чтобы в следующий раз grub2-mkconfig сработал правильно?

ЗЫ в системе загрузочный диск sdd

 

punya ()

steam не подает признаков жизни

Форум — Games

ноут amd e-350 & ati hd 6470 mobile. дай думаю установить стим. добавил оверлей steam

games-util/steam-games-meta USE="-s3tc -steamgames_defenders_quest -steamgames_dwarfs -steamgames_journey_down -steamgames_shatter -steamgames_tf2 -steamgames_trine2 -steamgames_unwritten_tales -testdeps" VIDEO_CARDS="fglrx radeon -intel -nouveau -nvidia"
app-emulation/steam-runtime-bin
games-util/steam-launcher USE="-steamruntime"
games-util/steam-client-meta USE="flash -trayicon" VIDEO_CARDS="-intel"
games-util/steam-meta USE="-steamruntime"
интересное из make.conf
CFLAGS="-O2 -pipe -march=native"
ABI_X86="64 32"
ати-блоб рабочий.

запускаю - он скачал 160 метров и распаковал в .local/share/Steam/. затем выдал следующий лог

Running Steam on gentoo  64-bit
STEAM_RUNTIME is disabled by the user
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
unlinked 1 orphaned pipes
removing stale semaphore last operated on by process 12075 with name 0eBlobRegistryMutex_8BC1CDCB2B32F1B67AC1011B2ED94BEE
removing stale semaphore last operated on by process 12075 with name 0eBlobRegistrySignal_8BC1CDCB2B32F1B67AC1011B2ED94BEE
removing stale semaphore last operated on by process 12075 with name 0emSteamEngineInstance
removing stale semaphore last operated on by process 12075 with name 0eSteamEngineLock
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.
[0909/170503:ERROR:object_proxy.cc(239)] Failed to call method: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided by any .service files
[0909/170503:WARNING:proxy_service.cc(958)] PAC support disabled because there is no system implementation
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)

** (steam:13521): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: The name org.freedesktop.NetworkManager was not provided by any .service files

** (steam:13521): WARNING **: _nm_remote_settings_ensure_inited: (NMRemoteSettings) error initializing: The name org.freedesktop.NetworkManager was not provided by any .service files
и повис. в /var/log/messages ничего нет. процесс потребляет 4% проца. висит соединение с сервером стима. никакого окна не показывает.

я почитал про каждый варнинг. по идее в них нет ничего страшного. по крайней мере у других людей после этих варнингов стим показывает свое окно.

через 2-3 минуты он упал

/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp (723) : Assertion Failed: Stalled cross-thread pipe
/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp (723) : Fatal assert failed: /home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp, line 723.  Application exiting.

Assert( Assertion Failed: Stalled cross-thread pipe ):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp:723

Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Uploading dump (out-of-process) [proxy '']
/tmp/dumps/crash_20130909171230_9.dmp
_ExitOnFatalAssert

как это чудо вообще можно подебажить? как добавить вербозности?

ЗЫ пробовал добавлять steamruntime и ставил STEAM_RUNTIME=1 или 0. все тоже самое. от этого не зависит

 , , ,

punya ()

linux-headers radix-tree.h?

Форум — Development

Почему в linux-headers нету /usr/include/linux/radix-tree.h? Файл есть только в версиях

2.6.17-r2 2.6.17-r1 2.6.17-r0 2.6.11-r3 2.6.11-r2 2.6.8.1-r4 2.6.8.1-r2
Какой в этом смысл?

Перемещено mono из talks

 

punya ()

sd hc капец

Форум — Linux-hardware

Померла флешка sd hc в фотике

dd if=/dev/zero of=/dev/sdc
> dd: writing to ‘/dev/sdc’: Input/output error
sd 11:0:0:0: [sdc] Media Changed
sd 11:0:0:0: [sdc]  
Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE
sd 11:0:0:0: [sdc]  
Sense Key : Unit Attention [current] 
Info fld=0x0
sd 11:0:0:0: [sdc]  
Add. Sense: Not ready to ready change, medium may have changed
sd 11:0:0:0: [sdc] CDB: 
Write(10): 2a 00 00 00 93 30 00 00 40 00
end_request: I/O error, dev sdc, sector 37680
quiet_error: 50 callbacks suppressed
Buffer I/O error on device sdc, logical block 4710
lost page write due to I/O error on sdc
Buffer I/O error on device sdc, logical block 4711
lost page write due to I/O error on sdc

Купить новую не могу т.к. в нахожусь в отпуске в пансионате. Никак нельзя флешку попробовать починить?

 

punya ()

recvmsg vs netlink

Форум — Development
char buffer[100];
iov.iov_base = buffer;
iov.iov_len  = sizeof ( buffer );

ssize_t length;
bool done = false;
while ( true ) {
    length = recvmsg ( socket_fd, &messages, 0 );
    if ( length == -1 ) {
        return false;
    } else if ( length == 0 ) {
        break;
    }

    struct nlmsghdr * message;
    for ( message = ( struct nlmsghdr * ) buffer; NLMSG_OK ( message, length ); message = NLMSG_NEXT ( message, length ) ) {
        switch ( message->nlmsg_type ) {
        case NLMSG_DONE:
            printf ( "%s\n", "done" );
            done = true;
            break;
        default:
            printf ( "code %d\n", message->nlmsg_type );
            break;
        }
    }
    if ( done ) {
        break;
    }
}

используя метод научного тыка находим:

  • 20 <= размер буфера < 68 - прочитан done
  • 68 <= размер буфера < 148 - прочитано одно сообщение и done
  • 148 <= размер буфера < inf - прочитано два сообщения и done

вот это прикол. зачем он отбрасывает нужные сообщения. почему оно не кидает ошибку EMSGSIZE. идем в ман:

Если сообщение слишком длинное и не поместилось в предоставленный буфер, лишние байты могут быть отброшены, в зависимости от типа сокета, на котором принимаются сообщения.

для netlink доступно 2 варианта создания сокетов:

socket ( AF_NETLINK, SOCK_RAW,   NETLINK_ROUTE )
socket ( AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE )
и в обоих случаях сообщения отбрасываются.

я же не ванга. откуда я узнаю сколько сообщений мне придет?

Огромные фиксированные буферы - не хочу. Читать обычным read-ом?

 , ,

punya ()

so_bindtodevice root only

Форум — Development

Хочется получать данные с сервера через конкретный сетевой интерфейс. Именно чтобы клиент использовал свои сетевые интерфейсы.

       ->
       ->
клиент -> облачко <- server
       ->
       ->

Насколько я понимаю единственный вариант - SO_BINDTODEVICE. Можно ли создать группу пользователей, которые могут использовать SO_BINDTODEVICE?

ЗЫ «тупа nexthop или ему подобных» не предлагать. предложение может иметь любую свою логику получения/отправки данных

 , ,

punya ()

RSS подписка на новые темы