LINUX.ORG.RU

Сборка раст-проекта под винду из генты или как же я ненавижу винду

 , , ,


0

4

https://github.com/Vladgobelen/NSQCu/tree/main/RUST/nightwatch-updater

Не знаю каким чудом, но я написал такое. Оно собирается, и даже работает под линуксом. В теории раст кроссплатформенный и это можно собрать под винду? Может кто подсказать - как?

ИИ в расте полные нули. Спрашивал у всех доступных идеи - они бесполезны. Они даже базовых понятий раста не понимают.

Сутки уже бьюсь. С mingw доходит компиляция до последнего шага и замирает навсегда. С кросскомпиляцией компилится. Но не работает.

Куда хоть копать вообще?

Решение: собрал гитхабом

Перемещено hobbit из general

★★★★★

Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от rtxtxtrx

Докером я могу и штатно собрать. Правда от автора оно тянет федору. В этом и беда в целом. Оно там тянет итогово до 55гб всего разного. И собирает у меня больше суток. А трафик у меня очень критичен. Мне даже 2гб в сутки - слишком много.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от LightDiver

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

rtxtxtrx ★★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

https://github.com/AyuGram/AyuGramDesktop/blob/dev/docs/building-linux.md

Да вот от него инструкция же.. Вот по его сборке тянется федора, все инструменты в нее, все это там собирается. Потом собирется проект. Я где то год назад собирал, ждал больше суток. Меня потом от интернета отлучили до конца месяца за перерасход.

Клиент теперь жутко устарел, а собирать заново жаба душит.. Может под конец месяца попробовать.

Хз, может сейчас он что то и сменил, а всервно сцыкотно даже начинать.

LightDiver ★★★★★
() автор топика
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

ну через distrobox с арчем поставишь. минимальный образ арча и бинарник этого клиента меньше гига будут

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

Слушай, а насколько перспективно перебираться на вейленд? А то пилю я себе тут мини-ДЕ на расте. Панельку по типу кдешной, только не жрущую гб озу, а минималистичную чисто под себя. Может быть ВМ прикручу свой по типу Kwin, может сам квин. Но что лучше использвоать вэйленд или x11?

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от LightDiver

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ayugram-desktop-bin

нейронка его в ebuild конвертировала:

# Copyright 2023 TheAirBlow
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop xdg

DESCRIPTION="Desktop Telegram client with good customization and Ghost mode built by Andontie"
HOMEPAGE="https://github.com/AyuGram/AyuGramDesktop"
SRC_URI="https://aur.andontie.net/x86_64/ayugram-desktop-${PV}-1-x86_64.pkg.tar.zst -> ${P}.tar.zst"
LICENSE="GPL-3.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""

RDEPEND="
    app-text/hunspell
    media-video/ffmpeg
    media-libs/hicolor-icon-theme
    app-arch/lz4
    app-arch/minizip
    media-libs/openal
    dev-qt/qtimageformats:6
    dev-qt/qtsvg:6
    dev-qt/qtwayland:6
    dev-libs/xxhash
    media-libs/rnnoise
    media-video/pipewire
    x11-libs/libXtst
    x11-libs/libXrandr
    x11-libs/libXcomposite
    x11-libs/libXdamage
    dev-cpp/abseil-cpp
    dev-libs/libdispatch
    dev-libs/openssl
    dev-libs/protobuf
    dev-libs/glib:2
    dev-libs/libsigc++:3
    media-libs/openh264
"

DEPEND="${RDEPEND}"
BDEPEND="dev-util/chrpath"

S="${WORKDIR}"

src_install() {
    # Install binary
    exeinto /usr/bin
    doexe usr/bin/ayugram-desktop

    # Remove RPATH
    chrpath --delete "${D}/usr/bin/ayugram-desktop"

    # Install desktop file
    insinto /usr/share/applications
    doins usr/share/applications/com.ayugram.desktop.desktop

    # Install icons
    insinto /usr/share/icons/hicolor
    doins -r usr/share/icons/hicolor/*

    # Install metainfo
    insinto /usr/share/metainfo
    doins usr/share/metainfo/com.ayugram.desktop.metainfo.xml

    # Install DBus service
    insinto /usr/share/dbus-1/services
    doins usr/share/dbus-1/services/com.ayugram.desktop.service
}

поправь

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

о_О как я сам то не додумался? Попробую.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от rtxtxtrx

Короче, хз что я починил. Пытался заюзать mold вместо ld, он не захотел работать. Долго нудно возвращал обратно ld, перенес сборку в озу точно. И вух:

Finished `release` profile [optimized] target(s) in 1m 57s

Все заработало внезапно. И я не понимаю что именно сделал и что починил. Ну, теперь можно заняться аюграмом.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от LightDiver

ayugram-desktop-bin. -bin в AUR означает, что это собранный пакет, те нужно недостающие зависимости прописать чтобы все запустилось

rtxtxtrx ★★★
()
Ответ на: комментарий от LightDiver

Китайская невросеть может врать.

ChatGPT:

# Maintainer: TheAirBlow <theairblow@gmail.com>
EAPI=8

DESCRIPTION="Desktop Telegram client with good customization and Ghost mode built by Andontie AUR"
HOMEPAGE="https://github.com/AyuGram/AyuGramDesktop"
SRC_URI="https://aur.andontie.net/x86_64/ayugram-desktop-${PV}-1-x86_64.pkg.tar.zst"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""

RDEPEND="
    app-text/hunspell
    media-video/ffmpeg
    x11-themes/hicolor-icon-theme
    app-arch/lz4
    app-arch/minizip
    media-libs/openal
    dev-qt/qtimageformats:6
    dev-qt/qtsvg:6
    dev-qt/qtwayland:6
    dev-libs/xxhash
    media-libs/rnnoise
    media-video/pipewire
    x11-libs/libXtst
    x11-libs/libXrandr
    x11-libs/libXcomposite
    x11-libs/libXdamage
    dev-cpp/abseil-cpp
    sys-libs/libdispatch
    dev-libs/openssl
    dev-libs/protobuf
    dev-libs/glib
    dev-cpp/libsigc++:3
    kde-frameworks/kcoreaddons
    dev-lang/ada
    media-libs/openh264
"
DEPEND="${RDEPEND}
    dev-util/chrpath
"
BDEPEND=""

src_unpack() {
    mkdir "${WORKDIR}/ayugram"
    tar -I zstd -xvf "${DISTDIR}/ayugram-desktop-${PV}-1-x86_64.pkg.tar.zst" -C "${WORKDIR}/ayugram"
}

src_install() {
    insinto /
    doins -r "${WORKDIR}/ayugram/usr"

    # Remove RPATH information
    chrpath --delete "${ED}/usr/bin/ayugram-desktop"

    # Fix permissions
    fperms 0755 /usr/bin/ayugram-desktop

    # Ensure proper directory structure
    dodir /usr/share/icons/hicolor
    local size
    for size in 16 32 48 64 128 256 512; do
        insinto "/usr/share/icons/hicolor/${size}x${size}/apps"
        doins "${WORKDIR}/ayugram/usr/share/icons/hicolor/${size}x${size}/apps/ayugram.png"
    done
}

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

Да твой тоже косячный:

sys-libs/libdispatch

Разделы по звизде пошли у половины пакетов. Надо вручную перебирать. На самом деле: dev-libs/libdispatch

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от LightDiver

так они должны ставиться, если в едилде прописаны. или он не так работает? сотри все эти зависимости. если у тебя ауеграм работает, то они и так стоят

rtxtxtrx ★★★
()
Ответ на: комментарий от LightDiver

Я не пользовался github workflows, но в gitlab есть похожий функционал, и там можно запускать сборку на любых облачных машинах (предварительно установив там gitlab-runner, конечно) https://gitlab.com/gitlab-org/gitlab-runner

Может, будет полезно. Может, запустить в облаке какой-нибудь windows server или типа того. Или другую версию Linux.

Естественно, все эти бесплатные сборщики используются самые дешёвые виды виртуалок, и всё это будет медленно. Для pet project самое то, для чего-то серьёзнее, конечно, нужны процессоры помощнее и памяти побольше.

BattleCoder ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Не, так не работает. Они все нихера не понимают что таке ебилды и как они работают. Несколько часов тестов. Тупо не понимабт путей.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Это не своп. Это zram. Оно сжато в озу и физического свопа нет вообще. Очень удобная штука.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от rtxtxtrx

Это нельзя использовать в любом случае. Я тут пробил, оно собрано с крайне нестабильными версиями библиотек. Если я попробую переосбрать так систему, положу все к хренам. Нужно всетаки собирать нормально.

calculate portage # rm -f /usr/lib64/libjpeg.so.8
calculate portage # rm -f /usr/lib64/libopenh264.so.7
calculate portage # rm -f /usr/lib64/libswresample.so.5
calculate portage # rm -f /usr/lib64/libswscale.so.8
calculate portage # rm -f /usr/lib64/libswscale.so.8
calculate portage # rm -f /usr/lib64/libavutil.so.59
calculate portage # rm -f /usr/lib64/libavformat.so.61
calculate portage # rm -f /usr/lib64/libavcodec.so.61

Пример

LightDiver ★★★★★
() автор топика

бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как растамыши едят растакактус.

alysnix ★★★
()
Ответ на: комментарий от alysnix

Чем тебе он не нравится то? Проблема была в генте, а раст прекрасен даже на фоне си. Ты посмотри какие модули, инструменты, синтаксис. Ну он же реально классный, это ж ванлав.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Там все есть. Конфигурацию описываешь и собирает. Я вон под андроид почти собрал, пока не забанили.

А сначала свой проект собирал автоматом под мак, винду, линукс. Потом мак убрал, потом линукс. Оставил винду для юзверей.

Но учти, там 33 часа сборки в месяц.

LightDiver ★★★★★
() автор топика
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

а раст прекрасен даже на фоне си

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

А по фактам то что будет? Учти, у меня опыта си - три скрипта без знания устройства переменных и 4 суток раста. Мне нравятся оба, но раст прямо аж зашел гораздо лучше.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от hobbit

там в той же папке лежит конфиг для мака:

name: mac
on:
  push:
    branches:
      - master
  pull_request:

jobs:
  test:
    # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners#supported-runners-and-hardware-resources
    runs-on: macos-latest
    name: (${{ matrix.target }}, ${{ matrix.cfg_release_channel }})
    env:
      CFG_RELEASE_CHANNEL: ${{ matrix.cfg_release_channel }}
    strategy:
      fail-fast: false
      matrix:
        target: [
          x86_64-apple-darwin, # <- aarch64-apple-darwin 
        ]
        cfg_release_channel: [nightly, stable]

    steps:
    - name: checkout
      uses: actions/checkout@v4

      # Run build
    - name: install rustup
      run: |
        curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh
        sh rustup-init.sh -y --default-toolchain none
        rustup target add ${{ matrix.target }}

    - name: Build and Test
      run: ./ci/build_and_test.sh
rtxtxtrx ★★★
()
Ответ на: комментарий от LightDiver

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

rtxtxtrx ★★★
()
Ответ на: комментарий от rtxtxtrx

Собрать можно с нужными версиями. Никс избыточен, я смотрел. В моих условиях ограниченного трафика - особенно. Тут никс для меня вообщ смертелен - у меня тупо нет столько трафика, я в нем даже ось обновлять не смогу.

И как раз подход генты - это и есть нормальная ось, более стабильная. А вот арчик нестабильными версиями напрягает.

LightDiver ★★★★★
() автор топика
Последнее исправление: LightDiver (всего исправлений: 1)

как же я ненавижу винду

Надеюсь ваша программа содержит троян активирующийся исключительно под винду и устанавливающий вместо неё Линукс? Иначе плохо ненавидите.

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

Я ее тихо ненавижу, пассивно, понимая полную необходимость пилить под нее софт. Просто по факту ее существования в моей жизни.

Но каждое столкновение с ней это сравнимо с катастрофой локального масштаба почему то.

LightDiver ★★★★★
() автор топика
Ответ на: комментарий от LightDiver

И тут я в очередной раз понял, что я, зарабатывающий деньги написанием софта под линукс – счастливый человек…

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Ну еще бы. 1% времени и затрат усилий составляет написание кода, работающего сразу на линуксе, а еще 99% - подогнать и заставить работать на нюансах и исключениях винды.

LightDiver ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.