ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Сборка пакетов с Rust (проблема Vendor)
@ 2024-06-11  4:00 Ruslandh
  2024-06-11  4:18 ` Andrey Savchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Ruslandh @ 2024-06-11  4:00 UTC (permalink / raw)
  To: ALT Linux Team development discussions


[-- Attachment #1.1.1: Type: text/plain, Size: 1060 bytes --]

Сборка пакетов с Rust

Я тут собираю пакет asusct, который использует rust,
и у меня возник один вопрос
Для сборки пакетов, он использует vendor, которые качаются из 
источников, определённых разработчиком пакета.

Мне это явно не нравится, так как я не могу физически проконтролировать 
код этих вендоров, причём каждый раз и для каждого пакета под Rust эти 
исходники качаются заново.

Нельзя-ли сделать так, чтобы необходимые вендоры брались с 
ftp.altlinux.org для всех Rust пакетов и чтобы они обновлялись вместе с 
собранными пакетами ?


---------------------------------------------------
С уважением, Хихин Руслан

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 657 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Сборка пакетов с Rust (проблема Vendor)
  2024-06-11  4:00 [devel] Сборка пакетов с Rust (проблема Vendor) Ruslandh
@ 2024-06-11  4:18 ` Andrey Savchenko
  2024-06-11  4:37   ` Ruslandh
  2024-06-11  4:39   ` Ruslandh
  2024-06-11  5:07 ` Ruslandh
  2024-06-11 12:01 ` Alexey V. Vissarionov
  2 siblings, 2 replies; 6+ messages in thread
From: Andrey Savchenko @ 2024-06-11  4:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1837 bytes --]

Добрый день!

On Tue, 11 Jun 2024 07:00:25 +0300 Ruslandh wrote:
> Сборка пакетов с Rust
> 
> Я тут собираю пакет asusct, который использует rust,
> и у меня возник один вопрос
> Для сборки пакетов, он использует vendor, которые качаются из 
> источников, определённых разработчиком пакета.
> 
> Мне это явно не нравится, так как я не могу физически проконтролировать 
> код этих вендоров, причём каждый раз и для каждого пакета под Rust эти 
> исходники качаются заново.
> 
> Нельзя-ли сделать так, чтобы необходимые вендоры брались с 
> ftp.altlinux.org для всех Rust пакетов и чтобы они обновлялись вместе с 
> собранными пакетами ?

Боюсь, что в общем случае это невозможно, поскольку разным пакетам
будут нужны разные версии одних и тех же vendor. Просто
зеркалировать всё подряд тоже никакого смысла нет, т.к. ничем не
отличается от прямого вендорения с точки зрения контроля кода.

Вариантом решения может быть опакечивание (части) нужных вам
зависимостей отдельными пакетами — сейчас Rust поддерживает DSO.
Но это долгий и сложный путь.

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Сборка пакетов с Rust (проблема Vendor)
  2024-06-11  4:18 ` Andrey Savchenko
@ 2024-06-11  4:37   ` Ruslandh
  2024-06-11  4:39   ` Ruslandh
  1 sibling, 0 replies; 6+ messages in thread
From: Ruslandh @ 2024-06-11  4:37 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1.1: Type: text/plain, Size: 581 bytes --]

11.06.2024 07:18, Andrey Savchenko пишет:
> Боюсь, что в общем случае это невозможно, поскольку разным пакетам
> будут нужны разные версии одних и тех же vendor.

А вот это тоже мне не нравится ;-)
Это как сказать - разным пакетам требуются разные версии одних  и тех-же 
библиотек.


---------------------------------------------------
С уважением, Хихин Руслан


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 657 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Сборка пакетов с Rust (проблема Vendor)
  2024-06-11  4:18 ` Andrey Savchenko
  2024-06-11  4:37   ` Ruslandh
@ 2024-06-11  4:39   ` Ruslandh
  1 sibling, 0 replies; 6+ messages in thread
From: Ruslandh @ 2024-06-11  4:39 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1.1: Type: text/plain, Size: 663 bytes --]

11.06.2024 07:18, Andrey Savchenko пишет:
> Вариантом решения может быть опакечивание (части) нужных вам
> зависимостей отдельными пакетами — сейчас Rust поддерживает DSO.
> Но это долгий и сложный путь.

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

---------------------------------------------------
С уважением, Хихин Руслан


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 657 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Сборка пакетов с Rust (проблема Vendor)
  2024-06-11  4:00 [devel] Сборка пакетов с Rust (проблема Vendor) Ruslandh
  2024-06-11  4:18 ` Andrey Savchenko
@ 2024-06-11  5:07 ` Ruslandh
  2024-06-11 12:01 ` Alexey V. Vissarionov
  2 siblings, 0 replies; 6+ messages in thread
From: Ruslandh @ 2024-06-11  5:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions


[-- Attachment #1.1.1: Type: text/plain, Size: 521 bytes --]

11.06.2024 07:00, Ruslandh пишет:
> Сборка пакетов с Rust
  Вот список каталогов Vendor - здесь-же полная отдельная среда сборки, 
включая  даже такие пакеты, которые качаются системы - тут вам и alsa и 
xorg, и чего только нет, и так для каждого пакета.

---------------------------------------------------
С уважением, Хихин Руслан


[-- Attachment #1.1.2: files.txt --]
[-- Type: text/plain, Size: 9777 bytes --]

ab_glyph
ab_glyph_rasterizer
accesskit
accesskit_atspi_common
accesskit_consumer
accesskit_macos
accesskit_unix
accesskit_windows
accesskit_winit
addr2line
adler
ahash
aho-corasick
allocator-api2
alsa
alsa-sys
android-activity
android-activity-0.5.2
android-properties
android_system_properties
android-tzdata
anstream
anstyle
anstyle-parse
anstyle-query
anstyle-wincon
anyhow
arrayref
arrayvec
ash
as-raw-xcb-connection
async-broadcast
async-channel
async-executor
async-fs
async-fs-1.6.0
async-io
async-io-1.13.0
async-lock
async-lock-2.8.0
async-net
async-process
async-process-1.8.1
async-recursion
async-signal
async-task
async-trait
atomic-polyfill
atomic_refcell
atomic-waker
atspi
atspi-common
atspi-connection
atspi-proxies
autocfg
auto_enums
az
backtrace
bare-metal
bare-metal-0.2.5
base64
base64-0.21.7
basic-toml
bindgen
bindgen-0.64.0
bit_field
bitfield
bitfield-0.13.2
bitflags
bitflags-1.3.2
block
block2
block2-0.3.0
block-buffer
blocking
block-sys
bondrewd
bondrewd-derive
bumpalo
by_address
bytemuck
bytemuck_derive
byteorder
bytes
byte-slice-cast
calloop
calloop-wayland-source
cast
cbindgen
cc
cesu8
cexpr
cfg_aliases
cfg_aliases-0.1.1
cfg-expr
cfg-if
cgl
chrono
clang-sys
clap
clap_builder
clap_derive
clap_lex
clipboard-win
clru
cocoa
cocoa-foundation
codemap
codemap-diagnostic
colorchoice
color_quant
combine
concurrent-queue
condtype
console_error_panic_hook
const-cstr
const_format
const_format_proc_macros
convert_case
convert_case-0.4.0
copypasta
coreaudio-rs
coreaudio-sys
core-foundation
core-foundation-sys
core-graphics
core-graphics-0.22.3
core-graphics-types
core-isa-parser
core-text
core-text-19.2.0
cortex-m
cortex-m-rt
cortex-m-rt-macros
countme
cpal
cpp
cpp_build
cpp_common
cpp_macros
cpufeatures
crc32fast
crc-any
critical-section
crossbeam-channel
crossbeam-deque
crossbeam-epoch
crossbeam-queue
crossbeam-utils
crossterm
crossterm_winapi
crunchy
crypto-common
css-color-parser2
ctor
cursor-icon
darling
darling_core
darling_macro
dasp_sample
data-url
debug-helper
defmt
defmt-macros
defmt-parser
defmt-rtt
derivative
derive_more
derive_utils
digest
dirs-next
dirs-sys-next
dispatch
display-interface
display-interface-spi
dissimilar
divan
divan-macros
dlib
document-features
downcast-rs
drm
drm-0.9.0
drm-ffi
drm-ffi-0.5.0
drm-fourcc
drm-sys
drm-sys-0.4.0
dwrote
either
embedded-alloc
embedded-display-controller
embedded-dma
embedded-graphics
embedded-graphics-core
embedded-graphics-core-0.3.3
embedded-hal
embedded-io
embedded-storage
embedded-time
encoding_rs
enum-as-inner
enumflags2
enumflags2_derive
env_filter
env_logger
equivalent
errno
esp32s2
esp32s2-hal
esp32s3
esp32s3-hal
esp-alloc
esp-backtrace
esp-backtrace-0.9.0
esp-hal-common
esp-hal-procmacros
esp-println
esp-println-0.7.1
esp-synopsys-usb-otg
euclid
event-listener
event-listener-2.5.3
event-listener-3.1.0
event-listener-4.0.3
event-listener-strategy
event-listener-strategy-0.4.0
exr
fastrand
fastrand-1.9.0
fdeflate
femtovg
ffmpeg-next
ffmpeg-sys-next
field-offset
files.txt
filetime
flate2
float-cmp
float-cmp-0.8.0
float-ord
flume
fnv
fontconfig-parser
fontdb
fontdue
font-kit
foreign-types
foreign-types-0.3.2
foreign-types-macros
foreign-types-shared
foreign-types-shared-0.1.1
form_urlencoded
freetype
freetype-sys
frunk
frunk_core
frunk_derives
frunk_proc_macro_helpers
ft5336
fugit
futures
futures-channel
futures-core
futures-executor
futures-io
futures-lite
futures-lite-1.13.0
futures-macro
futures-sink
futures-task
futures-util
gbm
gbm-sys
gcd
generativity
generic-array
gethostname
gethostname-0.3.0
getrandom
gettext-rs
gettext-sys
gif
gimli
gio-sys
gl_generator
glib
glib-macros
glib-sys
glob
glow
glutin
glutin_egl_sys
glutin_glx_sys
glutin_wgl_sys
glutin-winit
gobject-sys
gstreamer
gstreamer-app
gstreamer-app-sys
gstreamer-audio
gstreamer-audio-sys
gstreamer-base
gstreamer-base-sys
gstreamer-sys
gstreamer-video
gstreamer-video-sys
h2
half
hash32
hashbrown
hashbrown-0.12.3
heapless
heck
heck-0.4.1
hermit-abi
hex
home
http
httparse
http-body
httpdate
humantime
hyper
hyper-tls
iana-time-zone
iana-time-zone-haiku
icrate
icrate-0.0.4
ident_case
idna
image
imagesize
imgref
indexmap
indexmap-1.9.3
indoc
inotify
inotify-sys
input
input-sys
instant
integer-sqrt
io-lifetimes
ipnet
is_terminal_polyfill
itertools
itertools-0.10.5
itoa
java-locator
jni
jni-sys
jobserver
jpeg-decoder
js-sys
khronos_api
kqueue
kqueue-sys
kurbo
lazy-bytes-cast
lazycell
lazy_static
lebe
libc
libloading
libloading-0.7.4
libm
libredox
libredox-0.0.2
libseat
libseat-sys
libudev-sys
linereader
linked-hash-map
linked_hash_set
linked_list_allocator
linux-raw-sys
linux-raw-sys-0.3.8
linux-raw-sys-0.4.13
litrs
locale_config
lock_api
log
lru
lsp-server
lsp-types
lyon_algorithms
lyon_extra
lyon_geom
lyon_path
mach2
malloc_buf
memchr
memmap2
memmap2-0.8.0
memoffset
memoffset-0.7.1
metal
micromath
mime
minijinja
minimal-lexical
minipng
miniz_oxide
mio
mipidsi
muldiv
mutex-trait
napi
napi-build
napi-derive
napi-derive-backend
napi-sys
native-tls
nb
nb-0.1.3
ndk
ndk-0.8.0
ndk-context
ndk-sys
ndk-sys-0.5.0+25.2.9519653
nix
nix-0.26.4
nom
notify
num
num-complex
num_cpus
num-derive
num_enum
num_enum-0.5.11
num_enum_derive
num_enum_derive-0.5.11
num-integer
num-iter
num-rational
num-rational-0.3.2
num-traits
objc
objc2
objc2-0.4.1
objc2-encode
objc2-encode-3.0.0
objc_exception
objc-foundation
objc_id
objc-sys
object
oboe
oboe-sys
once_cell
openssl
openssl-macros
openssl-probe
openssl-sys
option-operations
orbclient
ordered-stream
owned_ttf_parser
panic-probe
parking
parking_lot
parking_lot_core
paste
pathfinder_geometry
pathfinder_simd
peeking_take_while
percent-encoding
pico-args
pin-project
pin-project-internal
pin-project-lite
pin-utils
pin-weak
pio
piper
pkg-config
plotters
plotters-backend
plotters-bitmap
png
polib
polling
polling-2.8.0
portable-atomic
ppv-lite86
pretty-hex
prettyplease
proc-macro2
proc-macro-crate
proc-macro-crate-1.3.1
proc-macro-crate-2.0.0
proc-macro-error
proc-macro-error-attr
ptr_meta
ptr_meta_derive
pyo3
pyo3-build-config
pyo3-ffi
pyo3-macros
pyo3-macros-backend
qoi
qttypes
quick-xml
quote
r0
rand
rand_chacha
rand_core
raw-window-handle
raw-window-handle-0.5.2
rayon
rayon-core
redox_syscall
redox_syscall-0.3.5
redox_syscall-0.4.1
redox_users
regex
regex-automata
regex-lite
regex-syntax
reqwest
resvg
rgb
ring
ringbuf
rowan
roxmltree
rp2040-boot2
rp2040-hal
rp2040-hal-macros
rp2040-pac
rp-pico
rustc-demangle
rustc-hash
rustc_version
rustc_version-0.2.3
rustix
rustix-0.37.27
rustls
rustls-pemfile
rustls-pki-types
rustls-webpki
rustversion
rustybuzz
ryu
same-file
schannel
scoped-tls
scoped-tls-hkt
scopeguard
sctk-adwaita
security-framework
security-framework-sys
semver
semver-0.9.0
semver-parser
send_wrapper
serde
serde_derive
serde_json
serde_repr
serde_spanned
serde_urlencoded
serde-wasm-bindgen
sha1
shared-bus
shlex
signal-hook
signal-hook-mio
signal-hook-registry
simd-adler32
simplecss
siphasher
skia-bindings
skia-safe
slab
slotmap
smallvec
smart-default
smithay-client-toolkit
smithay-clipboard
smol
smol_str
socket2
socket2-0.4.10
softbuffer
spin
spin_on
st7789
stable_deref_trait
static_assertions
stm32h7
stm32h7xx-hal
strict-num
strsim
strum
strum-0.24.1
strum-0.25.0
strum_macros
strum_macros-0.24.3
strum_macros-0.25.3
subtle
svgtypes
syn
syn-1.0.109
sync_wrapper
system-configuration
system-configuration-sys
system-deps
tar
target-lexicon
temp-dir
tempfile
termcolor
terminal_size
text-size
thiserror
thiserror-impl
thread_local
tiff
tiny-skia
tiny-skia-path
tinyvec
tinyvec_macros
tiny-xlib
tokio
tokio-macros
tokio-native-tls
tokio-util
toml
toml-0.5.11
toml_datetime
toml_edit
toml_edit-0.19.15
toml_edit-0.20.7
toml_edit-0.21.1
tower-service
tracing
tracing-attributes
tracing-core
try-lock
tt21100
ttf-parser
ttf-parser-0.17.1
ttf-parser-0.20.0
typenum
ucs2
udev
uds_windows
uefi
uefi-macros
uefi-services
unicode-bidi
unicode-bidi-mirroring
unicode-ccc
unicode-ident
unicode-linebreak
unicode-normalization
unicode-properties
unicode-script
unicode-segmentation
unicode-vo
unicode-xid
unindent
untrusted
ureq
url
usb-device
usvg
utf8parse
vcell
vcpkg
version_check
version-compare
vk-parse
void
volatile-register
vulkano
waker-fn
walkdir
want
wasi
wasm-bindgen
wasm-bindgen-backend
wasm-bindgen-futures
wasm-bindgen-macro
wasm-bindgen-macro-support
wasm-bindgen-shared
wasm-streams
wayland-backend
wayland-client
wayland-csd-frame
wayland-cursor
wayland-protocols
wayland-protocols-plasma
wayland-protocols-wlr
wayland-scanner
wayland-sys
webpki-roots
web-sys
web-time
web-time-0.2.4
weer_api
weezl
which
which-4.4.2
winapi
winapi-i686-pc-windows-gnu
winapi-util
winapi-wsapoll
winapi-x86_64-pc-windows-gnu
windows
windows_aarch64_gnullvm
windows_aarch64_gnullvm-0.42.2
windows_aarch64_gnullvm-0.48.5
windows_aarch64_msvc
windows_aarch64_msvc-0.42.2
windows_aarch64_msvc-0.48.5
windows-core
windows-core-0.52.0
windows_i686_gnu
windows_i686_gnu-0.42.2
windows_i686_gnu-0.48.5
windows_i686_gnullvm
windows_i686_msvc
windows_i686_msvc-0.42.2
windows_i686_msvc-0.48.5
windows-implement
windows-interface
windows-result
windows-sys
windows-sys-0.45.0
windows-sys-0.48.0
windows-targets
windows-targets-0.42.2
windows-targets-0.48.5
windows_x86_64_gnu
windows_x86_64_gnu-0.42.2
windows_x86_64_gnu-0.48.5
windows_x86_64_gnullvm
windows_x86_64_gnullvm-0.42.2
windows_x86_64_gnullvm-0.48.5
windows_x86_64_msvc
windows_x86_64_msvc-0.42.2
windows_x86_64_msvc-0.48.5
winit
winnow
winnow-0.5.40
winreg
winsafe
wio
x11-clipboard
x11-dl
x11rb
x11rb-0.12.0
x11rb-protocol
x11rb-protocol-0.12.0
xattr
xcursor
xdg-home
xkbcommon
xkbcommon-dl
xkeysym
xml-rs
xmlwriter
xshell
xshell-macros
xtensa-atomic-emulation-trap
xtensa-lx
xtensa-lx-rt
xtensa-lx-rt-proc-macros
yeslogic-fontconfig-sys
zbus
zbus_macros
zbus_names
zerocopy
zerocopy-derive
zeroize
zune-inflate
zvariant
zvariant_derive
zvariant_utils

[-- Attachment #1.1.3: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 657 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel] Сборка пакетов с Rust (проблема Vendor)
  2024-06-11  4:00 [devel] Сборка пакетов с Rust (проблема Vendor) Ruslandh
  2024-06-11  4:18 ` Andrey Savchenko
  2024-06-11  5:07 ` Ruslandh
@ 2024-06-11 12:01 ` Alexey V. Vissarionov
  2 siblings, 0 replies; 6+ messages in thread
From: Alexey V. Vissarionov @ 2024-06-11 12:01 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Good ${greeting_time}!

On 2024-06-11 07:00:25 +0300, Ruslandh wrote:

 > Я тут собираю пакет asusct, который использует rust,
 > и у меня возник один вопрос Для сборки пакетов, он
 > использует vendor, которые качаются из источников,
 > определённых разработчиком пакета.
 > Мне это явно не нравится, так как я не могу физически
 > проконтролировать код этих вендоров, причём каждый раз
 > и для каждого пакета под Rust эти исходники качаются
 > заново.

Так делать точно не надо. На данный момент лучшим способом
мне видится скачивание всех нужных исходников, сборка из
них какого-то %name-build-deps.noarch.rpm и добавление его
в сборочные зависимости - во всяком случае, это позволило
объехать ситуацию, когда сборка пакета пыталась начаться с
git submodule update --init

А при сборке основного пакета затаскиваем эти исходники к
себе в каталог: cp -Ra /usr/src/%name-build-deps/* deps/

 > Нельзя-ли сделать так, чтобы необходимые вендоры брались
 > с ftp.altlinux.org для всех Rust пакетов и чтобы они
 > обновлялись вместе с собранными пакетами ?

Бесполезно.


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-06-11 12:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-11  4:00 [devel] Сборка пакетов с Rust (проблема Vendor) Ruslandh
2024-06-11  4:18 ` Andrey Savchenko
2024-06-11  4:37   ` Ruslandh
2024-06-11  4:39   ` Ruslandh
2024-06-11  5:07 ` Ruslandh
2024-06-11 12:01 ` Alexey V. Vissarionov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git