LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

Наконец-то нормальный способ (кросс-)компиляции под старые glibc

Форум — Development

Делюсь находкой: в языке программирования zig есть встроенный кросс-компилятор C и C++ под разные архитектуры, а также возможность указания версии символов glibc (от 2.16: Debian 8+, Ubuntu 13.10+, CentOS 7, Fedora 18+).

zig cc / zig c++ обечпечивает режим совместимости с вызовом cc и cpp.

Иными словами, этими командами можно безболезненно:

  1. Кросс-компилировать (и архитектуры, и ОС, т.е. под Windows и macOS из Linux) без заморочек с sysroot’ами
  2. Собирать современный код (C23, C++23) под дистрибутивы последних 10 лет выпуска

Ранее для этого либо собирали кросс-компилятор со старым glibc, либо использовали различные костыли по замене хедеров glibc (bingcc, glibc_version_header), либо патчили, либо собирали на старых ОС вроде CentOS 7 (благо там можно установить свежие компиляторы).

Теперь же можно:

$ gcc -o hello_gcc hello.c
$ nm -D hello_gcc
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -o hello_zig hello.c
$ nm -D hello_zig
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -target x86_64-linux-gnu.2.16 -o hello_zig hello.c
$ nm -D hello_zig
                 U __libc_start_main@GLIBC_2.2.5 ←←← минимум glibc 2.2.5
                 U puts@GLIBC_2.2.5

# И даже под Windows @ ARM64
$ zig cc -target aarch64-windows -o hello_zig hello.c
$ file hello_zig
hello_zig: PE32+ executable for MS Windows 6.00 (console), ARM64, 7 sections

# Или вообще с musl libc
$ zig cc -target aarch64-linux-musl -o hello_zig hello.c
$ file hello_zig
hello_zig: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, with debug_info, not stripped

 , , ,

ValdikSS
()

Type-script(?) фреймворк для bakend-less решения

Форум — Web-development

Коллеги! Хочу странноватого…

Есть система которая генерирует некоторое количество html-ных отчетов и иной мета-информации. После генерации эта информация остается неизменной. Хочется положить все это на сервер статическим контентом, и на основании какого-то фреймворка написать поделку которая на стороне браузера все это красивенько визуализирует. Со всякими свистеоками-перделками.

Я вебом лет 20 не занимался, сильно отстал от жизни. На какой framework смотреть в первую очередь? Слышал я слово Vue.js но совершенно не представляю, от той ли задачи это слово.

Подскажите плиз, куда копать

 ,

shaplov
()

docker-compose iptables проблема

Форум — Development

Я создал небольшой docker-compose.yml:

services:
  db:
    image: postgres
    restart: always
    shm_size: 128mb
    environment:
      POSTGRES_PASSWORD: "1234"
      POSTGRES_USER: furniture
      POSTGRES_DATABASE: furniture
    volumes:
      - ./migrations:/docker-entrypoint-initdb.d
    ports:
      - "5432:5432"

Здесь стоит сказать что я использую void linux и установил docker через xbps. Запускаю я его как sudo sv start docker или sudo dockerd (результат тот же)

Запускаю следующие команды:

docker-compose build
docker-compose up

И получаю вывод от второй команды:

[+] Running 1/1
 ✘ Network desks-site_default  Error                                                                                          0.0s
failed to create network desks-site_default: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-8536537f1c60 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

 , , , ,

zane
()

GNOME в Винде! Встречайте!

Форум — Desktop

Я даже не знаю: это Новость или просто обсудить.

А вы додумались бы до такого?

Seelen

Бог с ним, что есть сходство с GNOME, по сути это браузер развернутый по F11 поверх dwm.exe.

Долго смотреть не стал: поклацал поверхностно, увидел список процессов и удалил.

З.Ы. Смотрел это поделие в VirtualBox на 11 Винде. Почему не Electron?

 ,

TechnoMag
()

установка VMware workstation на trixie testing

Форум — Linux-install

Необходимо установить VMware workstation на ноуте с trixie testing. Делал по инструкции:

  1. накатил sudo apt install build-essential linux-headers-$(uname -r)

  2. установил собственно VMware workstation sudo ./VMware-Workstation-Full-17.6.4-24832109.x86_64.bundle инсталлятор отработал и я получил Installation was successful.

  3. далее в мануалах надо запустить свежеустановленную VMware. Но у меня она требует компиляции дополнительных модулей, компиляция аварийно завершается и я далее посылвем к логам. Разрулить эти логи для меня слишком сложная задача. Понял только, что при компиляции возникают fatal error… и compilation terminated.

Что можно попытаться сделать?

 , ,

miron_g
()

Операционная надежность

Форум — Admin

Добрый день, коллеги. Предстоящие задачи по оченььь отказоустойчивости со стороны дисковой подсистемы, может направите с панамкой в нужном направлении. Тупо берем общую задачу, размышляем в общем. Астра линукс скорее всего. На сервере имеются 2 диска, 1 диск под ОС Debian, 2 диск для бэкапа. как при плановой перезагрузке клонировать диск 1 на диск 2 без внешнего вмешательства, только средствами ОС Debian на диске 1. Для надежности. Понимаю про зеркала на серваках, но хотелось бы провентилировать вопрос без зеркал, так сказать хотя бы для общего развития, не известно чего там еще выдумают. Прошу понимания. К конфигурации не придираться, это все виртуально грубо говоря, понятно что там не 2 диска.

UPD: Вот я и хотел услышать разные варианты сообщества. Астра да, без нее уже никуда, как говориться. Я приблизительно понял, что лучше зеркалить на 2+ диска. UPD01: Скрипты в initramfs не вариант?

 ,

promka
()

В Сбербанке началось массовое сокращение IT-специалистов, которое объясняют внедрением ИИ

Форум — Talks

https://3dnews.ru/1130548/v-sberbanke-nachalos-massovoe-sokrashchenie-itspetsialistov-kotoroe-obyasnyayut-vnedreniem-ii

В Сбербанке проходит сокращение IT-специалистов, которое коснулось как головного офиса, так и дочерних предприятий банка, сообщил ресурс CNews со ссылкой на сотрудников кредитного учреждения. Эту информацию подтвердил один из топ-менеджеров дочернего предприятия банка.

Ранее о сокращениях сообщил Telegram-канал «Профсоюз работников IT», указав что будет уволено 20–25 % IT-персонала. По данным Telegram-канала, первая волна увольнений прошла летом, вторая идёт сейчас, и ожидается третья волна в конце года.

 ,

grim
()

Интересные технологии монтажа внутри ноутбуков

Форум — Talks

У меня у ребёнка есть нежно любимый мной Lenovo Yoga 530-14ARR, райзен, два слота для RAM, место под 2280 NVME - согласитесь, есть за что любить.

Ребёнок за 3 года роняния, стучания и т.п. раздолбал поддон и топкейс - половина футорок отвалилась от пластика, и перетёр каким-то хреном шлейф клавиатуры.

Теперь ненависть к Lenovo:

1. Если футорка отвалилась под петлёй, хрен вывернешь винт (там на фиксаторе резьбы). Пришлось доламывать поддон, гнуть несущую пластину топкейса, чтобы схватить её тонкогубцами - монтажный пинцет с круглыми концами с насечкой не держал.

2. Смысла покупать новую клавиатуру и менять НЕТ, я в итоге купил на разборке топкейс в явно лучшем состоянии в сборе - этот всё равно раздолбан: клавиатура крепится к топкейсу парой десятков пластиковых штырей, торчащих из топкейса, слегка расплавленных, как пластиковые заклёпки - их нужно, сцуко, по одному прогреть и осторожно сдёрнуть клавиатуру, чтобы было на что крепить новую. Но это не всё, клавиатура находится под несущей стальной пластиной топкейса, которая, сцуко, крепится таким же образом, но заклёпок в 2 раза больше. Ничего не имею против несущей пластины, намертво приделанной к топ-кейсу, но делать несъёмную клавиатуру ради симпотного дизайна «островная заподлицо» - это ППЦ. У меня в старом Yoga 13 просто отщёлкивается, замена клавиатуры - 5 минут.

Ладно, берём клавиатуру с таким же дизайном, да и весь бук-трансформер - ASUS VivoBook Flip. Та же несущая пластина - НА ВИНТАХ. Расстояния между клавишами меньше, но в топ-кейсе между «островов» маленькие отверстия под клипсы (как в автомобильных кузовных деталей, но малюсенькие), а в клавиатуре - сами клипсы! Т.е. клавиатура сдохла, её снимаешь, клипсы могут сломаться, но это не важно, ставишь новую с новыми клипсами.

У меня всё. Жизнь боль. Всем не распаянной RAM и буков на винтах.

 , , , слесарка

Shadow
()

ZSWAP мешает спать?

Форум — Desktop

Надоело испытывать лаги в дискорде, когда делаю ALT+TAB. HPET показывает, что у меня 340 мегабайт чего-то ушло в своп. Вместо того, чтобы искать способ это что-то из него выгнать, я вспомнил про то, как кто-то мне предлагал ZSWAP. Где-то на арчвики, я читал, что включение ZSWAP убивает гибернацию, и что приложухи из ОЗУ не смогут выгрузиться в ZSWAP(но могут в SWAP), если я закрою крышку ноутбука. Можно как-то так, чтобы и сон остался, и ZSWAP работал?

 , ,

Tyse_EX
()

Lua Shell

Форум — Development

Контест этого топика: Леннарт теперь до эмуляторов терминала добрался (комментарий)

@EXL:

Лучше бы Lennart взялся за Bash.

@wandrien:

Там только выкинуть целиком. Я вот хочу попытаться для lua сделать обвязку для скриптинга уровня оболочки. Подобные либы на Lua есть, но качество и объем фич мне не нравится. Надо лучше. Тебе бы был интересен такой проект?


Итак, вот моя идея в общих чертах. Составные части, на которых основываться:

https://github.com/BanceDev/lush
Низкое качество сборочного скрипта. Вероятно, и кода тоже. Интересует идея в первую очередь.

https://github.com/mna/luashell
Ключевое, что нам нужно. Взять за основу. Но:

  • Нужны полнофункциональные средства перенаправления ввода-вывода, заменить эту часть API. Под капотом, вероятно. придётся делать полноценную обработку fork - настройка процесса - exec.
  • test() должен быть вменяемый, а не парсить строку по пробелам. Просто алиас для sh.cmd("test", ...).exec()
  • Форк процесса без exec в качестве элемента пайплайна на уровне API
  • Как расширение предыдущего - обёртка а ля sh.echo("text").

В качестве базового API взять https://25thandclement.com/~william/projects/lunix.html вместо https://github.com/luaposix/luaposix

Также рассмотреть для включения и/или как источник идей:


Общая идея:

  • Lua + lunix — получаем возможность писать на Луа «приложения как на Си под libc».
  • Сверху на это - форкнутый и допиленный luashell. Это ключевое.
  • Далее QoL вещи: lua-path, argparse, функции для парсинга и форматирвоания времени, функции для JSON.
  • Далее - разработать интерактивный режим для использования в качестве командной оболочки.

Продукт компилируется в статический бинарь с musl и/или cosmopolitan libc и получаем «вечный» shell. При этом весьма компактный.

 , , ,

wandrien
()

Генераторы SQL и ORM в разработке

Форум — Development

Люди добрые, скажите, а squirrel еще используется при работе с БД, ну или какие аналоги сейчас популярны у крупных компаний чтобы не было «фе» с их стороны? Как сейчас в целом с этим?

Я тут squirrel потыкал и обнаружил, что он уже на два года просроченный - это нормально или мне стоит посмотреть на более свежие альтернативы? Или вообще туда не смотреть?

 , ,

LongLiveUbuntu
()

Леннарт теперь до эмуляторов терминала добрался

Форум — Talks

После очередного обновления systemd я обнаружил, что при входе в учетную запись рута под одним из эмуляторов терминала отображается вот такая абракадабра:

]8003;start=18dcf83c-b8a1-49a6-a824-d7a793edfd2c;user=root;hostname=aquila;machineid=609fc63f07736a785af67b1600000438;bootid=6bd8c743-1bf9-4965-88f0-5326eca7fc15;pid=661805;type=shell;cwd=/root[root@aquila ~]# 

Конкретно у меня - проблема со старой версией vte, на которой работают эмуляторы терминала, собранные под gtk2.

Поиск виновника привёл меня к следующим файлам:

/usr/lib/systemd/profile.d/70-systemd-shell-extra.sh
/usr/lib/systemd/profile.d/80-systemd-osc-context.sh

Потом к этому багрепорту: https://github.com/systemd/systemd/issues/39133

К этому: https://bugs.kde.org/show_bug.cgi?id=500842

И наконец к сути: https://github.com/systemd/systemd/blob/main/docs/OSC_CONTEXT.md

Машинный перевод для тех, кто плохо понимает английский: https://translate.google.com/?sl=en&tl=ru&text=https%3A%2F%2Fgithub.com%2Fsystemd%2Fsystemd%2Fblob%2Fmain%2Fdocs%2FOSC_CONTEXT.md&op=translate

В целом идея мне показалась не особо полезной, но направление мысли мне понравилось. Более содержательное общение приложения с эмулятором терминала - это хорошо. Я всегда приветствую развитие протоколов обмена обмена данными с терминалом.

 , , ,

wandrien
()

Количество исходных пакетов в Arch

Форум — Talks

Не знаю, зачем вам эта информация, но вот вам статистика:

В Arch сейчас 12196 исходных пакетов - рецептов сборки.

Из них 249 пакетов имеют префикс lib32- - относятся к поддержке 32-битного юзерспейса.

Количество пакетов, имеющих префикс конкретного ЯП:

   1840 python-
   1170 haskell-
    635 perl-
     60 cargo-
     30 ocaml-

P.S.: Статистика построена на основе этого оглавления, по которому работает билд-ферма: https://gitlab.archlinux.org/archlinux/packaging/state

 

wandrien
()

Как работает Iso файл для установки

Форум — General

Я пишу свой дистрибутив на основе LFS. Идея заключается в том, что у системы будет необычный установщик, в него можно будет отправить файл для декларативной установки или сгенерировать этот файл. Хотелось бы объединить пакетный менеджер NIX и LFS,т.е. во время установки после разметки дискового пространства, часть этого пространства использоваться для создания там раздела с временной системой, на которую будет ставится ядро, кампилятор и копироваться все файлы и скрипты (в LFS это называется хост системой), после чего система будет компилироваться на компьютере пользователя из исходного кода (т.е. сам LFS), после чего раздел с хостом будет удалятся, а основной раздел продливаться, пользователь перед компиляцией может добавить параметры к каждому пакету. В целом это должно быть, что-то вроде автоматизированного LFS с декларативной идеей как у NIX. (я уточню, что разумеется пакетный менеджер NIX будет модифицироваться для более удобного управления и все пакеты nix будут компилироваться из исходного кода)

Всё предыдущее объяснение нужно было, только для понимания чего я хочу от установщика. меня интересует как работает установщик linux в формате iso файла, я не нашел хорошего объяснения, но как я понял iso - это вид архива внутри, которого лежит универсальное упрощенное ядро, скрипт установщика, загрузчик и файлы для установки. Меня интересует где я могу взять шаблон iso файла установщика, т.е. загрузчик, ядро и пример где находятся файлы и как выглядит скрипт установки. И более четкое объяснение как работает установщик linux.

 , , ,

sxfgh
()

OpenSUSE Leap 16

Форум — General

Там Сусю новую выпустили, изменений много. Я последние несколько лет использовал этот дистрибутив из-за как раз полнейшей стабильности и отсутствия значительных перемен, а тут наворотили что-то, мне кажется, чересчур.
Кто-нибудь использует и уже пробовал обновляться?

Не нашёл подробного списка изменений, но примерно так:

новый инсталлятор
Xorg -> Wayland
PulseAudio -> PipeWire
Yast похоже отправлен на кладбище

 

vvvv
()

Хочу статистику по портам ip для приложения

Форум — Admin

Хочу узнать на каких портах udp/tcp ipv4/ipv6 приложения больше трафика. Как это сделать?

 

ext4
()

debian13, генератор ifup@ сервисов

Форум — General

Не могу найти кто генерирует эти сервисы. wiki.debian.org у меня прилёг, интернет пишет «удалите /etc/network/interfaces» и это работает, но интересно понять кто из файла сервисы генерирует.

По логам загрузки явно не вижу виновника.

Грубо говоря мои действия:

  • ставлю debian13
  • systemctl disable networking
  • reboot
  • и после загрузки висит активный ifup@ens3

Дополнительно пробовал: systemctl mask ifupdown-pre ifupdown-wait-online networking

Не вижу больше в пакете networking чего-то явно относящегося с systemd что бы поднимало интерфейс.

 , ,

Flotsky
()

muffin и wine

Форум — Desktop

Давно ли в wine сломали обход композитора muffin? сколько сборок wine/proton не пробовал всё равно статтерит в полноэкранных играх без vsync.

 , , ,

moonson
()

проблема с запуском appimage на арче

Форум — General

я только не давно начал использовать арч и у меня возникла проблема с запуском апп имеджей,при попытке запуска какого либо апп имеджа пишет


AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information

там есть ссылка на гитхаб, но я там посмотрел и так нечего не понял, буду очень признателен если поможете решить проблему

 ,

lyn
()

Выбор дистрибутива для ноутбука 2014г i7 и дискретная nvidia

Форум — Linux-install

Собственно вопрос - что встанет без особых проблем с зелеными драйверами? Debian-based или arch-based дистрибутивы лучше будут ставится/работать на таком железе?

 

alex_nef
()

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