ALT Linux Distributions development
 help / color / mirror / Atom feed
* [devel-distro] I: mkimage-profiles 1.1.64
@ 2015-04-20 19:50 Michael Shigorin
  2015-04-20 20:18 ` [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64) Michael Shigorin
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2015-04-20 19:50 UTC (permalink / raw)
  To: devel-distro

    	Здравствуйте.
За эти три недели наконец-то была доведена до включения одна из
разрабатывавшихся с прошлого года экспериментальных веток, целью
которой являлся LiveCD на манер Ubuntu Privacy Remix (без доступа
к локальным несъёмным дискам и сетевым устройствам -- впрочем,
пока и без надобности в криптографии на флэшках).

Поскольку "лобовая" реализация подразумевала выкидывание большей
части sub.in/stage1/modules (profiles/modules в терминах m-p-d),
то её включение в основную ветку было невозможно; впрочем, нужда
в более мелкой порезке этого списка возникла достаточно давно,
начиная от доработок для загрузки с infiniband (далеко не всем
критичной) или же с CIFS (а это было критично sin@) и заканчивая
небольшими дистрибутивами вроде Antique, для которых может быть
крайне желательно не включать, например, мегабайты сетевых и
рейдовых модулей в первую стадию.

На сейчас вариант по умолчанию эквивалентен старому (забирается
список features.in/stage2/stage1/modules.d/10-stage2, в который
был переименован sub.in/stage1/modules "как есть), но возможно
отказаться от избыточных модулей, перечислив вручную списки,
содержащие то, что нужно оставить -- как в live-privacy:

  @$(call set,STAGE1_MODLISTS,stage2-ata stage2-drm stage2-hid)
  @$(call add,STAGE1_MODLISTS,stage2-mmc stage2-usb)

Далее предполагается осторожный отход от монолитного списка
по умолчанию, а также оптимизация порезанных кусочков (этому
сильно способствует то, что в ядре за последние пару лет была
неплохо утрясена структура драйверов и появились всевозможные
префиксы вроде kernel/drivers/net/ethernet/).  Но не спеша.


В качестве подчинённых изменений получилась фича memclean,
занимающаяся добавлением и включением libzmalloc.

Пользователям фичи live просьба обратить внимание на переезд
зависимости на use/deflogin/live из use/live в use/live/base
(надо было выделить use/live/.base без аккаунтов по умолчанию)
-- что-то может сломаться, особенно если его не было в основном
mkimage-profiles; о всех таких случаях просьба сообщать.

Также были учтены замечания и предложения добравшегося до m-p
cas@ -- вывод make help теперь не пытается быть излишне
услужливым в плане колоннок в случае, когда выводим не на tty
(а, например, в | grep); если была по ошибке запрошена цель,
соответствующая лишь конфигурации, но не построению образа
(например, make distro/icewm вместо make distro/icewm.iso),
то сборка по крайней мере вывалится с внятной диагностикой.

Любителям собирать несколько образов сразу, особенно если
по cron, может прийтись по вкусу новая переменная QUIET.

Благодаря трудам zerg@ добавлена начальная поддержка sddm.


В общем, 43 files changed, 575 insertions(+), 234 deletions(-)

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


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

* [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-20 19:50 [devel-distro] I: mkimage-profiles 1.1.64 Michael Shigorin
@ 2015-04-20 20:18 ` Michael Shigorin
  2015-04-22 15:09   ` Sergey V Turchin
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2015-04-20 20:18 UTC (permalink / raw)
  To: devel-distro

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

On Mon, Apr 20, 2015 at 10:50:53PM +0300, I wrote:
> За эти три недели наконец-то была доведена до включения одна из
> разрабатывавшихся с прошлого года экспериментальных веток

На самом деле была подготовлена ещё одна штука
(про архитектурно-зависимые пакеты в списках),
но попросту забыл в финальный вариант забрать;
прилагаю коммит заодно с документацией, вкратце:

-@I586_ONLY@haspd
-@X86_64_ONLY@i586-haspd
+haspd@i586 i586-haspd@x86_64

(скриптик для обработки списков там же в doc/archdep.txt)

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

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info

[-- Attachment #2: 0001-pkg.in-lists-archdep-suffices-for-pkglists.patch --]
[-- Type: text/x-patch, Size: 4223 bytes --]

>From ac5dbb4bba5b802be4a8df4d7f7c3202fe51259b Mon Sep 17 00:00:00 2001
From: Michael Shigorin <mike@altlinux.org>
Date: Thu, 22 Jan 2015 18:27:07 +0300
Subject: [PATCH] pkg.in/lists: archdep suffices for pkglists

This is an initial implementation of architecture dependent
contents handling for package lists more or less in the vein
of mkimage-profiles-desktop's one *but* using suffix part to
filter words in or out *not* prefix part to replace it with
a comment marker (thus filtering out lines).

The syntax should be pretty obvious:

  a b@i586 c@x86_64

will get "a b" given ARCH=i586 and "a c" given ARCH=x86_64;
please see doc/archdep.txt for a more elaborate description
and a conversion script.
---
 doc/archdep.txt               | 46 +++++++++++++++++++++++++++++++++++++++++++
 doc/mkimage-profiles.asciidoc |  2 ++
 lib/profile.mk                |  1 +
 pkg.in/lists/Makefile         | 11 ++++++++++-
 4 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 doc/archdep.txt

diff --git a/doc/archdep.txt b/doc/archdep.txt
new file mode 100644
index 0000000..25927ce
--- /dev/null
+++ b/doc/archdep.txt
@@ -0,0 +1,46 @@
+== Архитектурно-зависимые фрагменты ==
+
+=== Makefile ===
+
+Достаточно воспользоваться ifeq/ifneq, сравнивая $(ARCH) с нужным:
+
+  ifeq (x86_64,$(ARCH))
+  EFI_LISTS := $(call tags,base efi)
+  endif
+
+При необходимости сравнить со списком ("любой x86") можно сделать так:
+
+  ifeq (,$(filter-out i586 x86_64,$(ARCH)))
+  use/x11/xorg: use/x11 use/x11/intel use/firmware
+  else
+  use/x11/xorg: use/x11
+  endif
+
+В рецептах (shell-часть Makefile) используйте $(ARCH) или $$ARCH.
+
+=== скрипты ===
+
+В скриптовых хуках ({image-,}scripts.d/*) проверяйте $GLOBAL_ARCH.
+
+=== списки пакетов ===
+
+Бывает так, что в списке пакетов есть смысл упоминать какой-либо из них
+только для определённой архитектуры (например, wine или steam); в таких
+случаях можно воспользоваться механизмом подстановки, который пословно
+обрабатывает списки и в случае наличия суффикса @ARCH оставляет только
+слова, в которых этот суффикс соответствует заданной архитектуре сборки.
+
+Например, для Simply Linux в mkimage-profiles-desktop есть строчки:
+
+@I586_ONLY@haspd
+@X86_64_ONLY@i586-haspd
+
+В случае mkimage-profiles они должны выглядеть так:
+
+haspd@i586
+i586-haspd@x86_64
+
+Для преобразования можно воспользоваться следующей командой:
+
+sed -r -e 's/@I586_ONLY@([^\t ]+)/\1@i586/g' \
+       -e 's/@X86_64_ONLY@([^\t ]+)/\1@x86_64/g'
diff --git a/doc/mkimage-profiles.asciidoc b/doc/mkimage-profiles.asciidoc
index 8feb97d..a280122 100644
--- a/doc/mkimage-profiles.asciidoc
+++ b/doc/mkimage-profiles.asciidoc
@@ -42,6 +42,8 @@ include::features.txt[]
 
 include::pkglists.txt[]
 
+include::archdep.txt[]
+
 = Каталоги =
 
 include::../conf.d/README[]
diff --git a/lib/profile.mk b/lib/profile.mk
index 762f8be..05a2352 100644
--- a/lib/profile.mk
+++ b/lib/profile.mk
@@ -98,6 +98,7 @@ profile/bare: profile/init
 ifeq (,$(REPO:altlinux%=))
 	@$(call set,IMAGE_INIT_LIST,+branding-$$(BRANDING)-release)
 endif
+	@$(call xport,ARCH)
 	@mp-commit "$(BUILDDIR)" "image configuration defaults set"
 
 # put the derived SUBPROFILE_DIRS here to get it logged in clear text by the way
diff --git a/pkg.in/lists/Makefile b/pkg.in/lists/Makefile
index 485d3d0..1759e9c 100644
--- a/pkg.in/lists/Makefile
+++ b/pkg.in/lists/Makefile
@@ -18,7 +18,7 @@ include $(BUILDDIR)/distcfg.mk
 SUFFIX := pkg/lists
 TARGET := $(BUILDDIR)/$(SUFFIX)
 
-all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups
+all: | $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups grep-archdep
 	@mp-commit "$(TARGET)" "requested $(SUFFIX) copied over"
 
 # env | sort -u | grep _LISTS | xargs -r cp -t
@@ -33,6 +33,15 @@ copy-groups:
 		cp -at $(TARGET) -- $(THE_GROUPS) $(MAIN_GROUPS); \
 	fi
 
+grep-archdep: a = $(ARCH)
+grep-archdep: s = [:space:]
+grep-archdep:
+	# xargs -L 1024 -n 1024 ? -- breaks -I
+	@find $(TARGET) -type f \
+	| xargs -I '__' sh -c '\
+		sed -rni "s/\\<([^@ ]*)\\>|\\<([^@ ]*)@$a\\>/\\1\\2/pg" __; \
+		sed -i -r "s/\\<([^@ ]*)@[^@ ]+\\> *//g" __'
+
 # do beforehand as foreach gets expanded before recipe execution
 $(TARGET):
 	@mkdir -p $(TARGET)
-- 
2.1.4


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

* Re: [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-20 20:18 ` [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64) Michael Shigorin
@ 2015-04-22 15:09   ` Sergey V Turchin
  2015-04-22 15:32     ` Michael Shigorin
  0 siblings, 1 reply; 7+ messages in thread
From: Sergey V Turchin @ 2015-04-22 15:09 UTC (permalink / raw)
  To: devel-distro

On Monday 20 April 2015 23:18:04 Michael Shigorin wrote:
> On Mon, Apr 20, 2015 at 10:50:53PM +0300, I wrote:
> > За эти три недели наконец-то была доведена до включения одна из
> > разрабатывавшихся с прошлого года экспериментальных веток
> 
> На самом деле была подготовлена ещё одна штука
> (про архитектурно-зависимые пакеты в списках),
> но попросту забыл в финальный вариант забрать;
> прилагаю коммит заодно с документацией, вкратце:
> 
> -@I586_ONLY@haspd
> -@X86_64_ONLY@i586-haspd
> +haspd@i586 i586-haspd@x86_64
Давно использую свой вариант, который позволяет короче:
@X86_32_USE@haspd

http://git.altlinux.org/people/zerg/packages/?p=mkimage-profiles-desktop.git;a=commit;h=0681ef96537f2ea9ee08e9e29847baa728c270bb

http://git.altlinux.org/people/zerg/packages/?p=mkimage-profiles-desktop.git;a=commit;h=baa131a306c29793b1b4176eb1f0697163f5ec32


[...]

-- 
Regards, Sergey.       ALT Linux, http://www.altlinux.ru/

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

* Re: [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-22 15:09   ` Sergey V Turchin
@ 2015-04-22 15:32     ` Michael Shigorin
  2015-04-23 10:39       ` Sergey V Turchin
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2015-04-22 15:32 UTC (permalink / raw)
  To: devel-distro

On Wed, Apr 22, 2015 at 06:09:44PM +0300, Sergey V Turchin wrote:
> > +haspd@i586 i586-haspd@x86_64
> Давно использую свой вариант, который позволяет короче:
> @X86_32_USE@haspd

Резонно; подумаю в эту сторону, главное тут понять,
какие буковки бы хотелось в итоге видеть в списке :)

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


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

* Re: [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-22 15:32     ` Michael Shigorin
@ 2015-04-23 10:39       ` Sergey V Turchin
  2015-04-23 10:44         ` Michael Shigorin
  0 siblings, 1 reply; 7+ messages in thread
From: Sergey V Turchin @ 2015-04-23 10:39 UTC (permalink / raw)
  To: devel-distro

On Wednesday 22 April 2015 18:32:39 Michael Shigorin wrote:

[...]
> какие буковки бы хотелось в итоге видеть в списке :)
Для некоторого количества точно останется необходимость
package@ONLY_ARCH
Еще можно подумать, как указать, если собираем для arm(для x86 тоже это 
собираем), а пакет есть только для i586, x86_64 и x86_64-i586.

-- 
Regards, Sergey.       ALT Linux, http://www.altlinux.ru/

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

* Re: [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-23 10:39       ` Sergey V Turchin
@ 2015-04-23 10:44         ` Michael Shigorin
  2015-04-23 10:45           ` Sergey V Turchin
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2015-04-23 10:44 UTC (permalink / raw)
  To: devel-distro

On Thu, Apr 23, 2015 at 01:39:13PM +0300, Sergey V Turchin wrote:
> Еще можно подумать, как указать, если собираем для arm (для x86
> тоже это собираем), а пакет есть только для i586, x86_64 и
> x86_64-i586.

Пока из таких целей были только тарболы с чрутами; можно сделать
@x86, если понадобится, а при первом столкновении решается так:

# при ARCH==arhm не попадут
пакет@i586
пакет@x86_64

Записал.

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


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

* Re: [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64)
  2015-04-23 10:44         ` Michael Shigorin
@ 2015-04-23 10:45           ` Sergey V Turchin
  0 siblings, 0 replies; 7+ messages in thread
From: Sergey V Turchin @ 2015-04-23 10:45 UTC (permalink / raw)
  To: devel-distro

On Thursday 23 April 2015 13:44:18 Michael Shigorin wrote:
> On Thu, Apr 23, 2015 at 01:39:13PM +0300, Sergey V Turchin wrote:
> > Еще можно подумать, как указать, если собираем для arm (для x86
> > тоже это собираем), а пакет есть только для i586, x86_64 и
> > x86_64-i586.
> 
> Пока из таких целей были только тарболы с чрутами; можно сделать
> @x86, если понадобится, а при первом столкновении решается так:
> 
> # при ARCH==arhm не попадут
> пакет@i586
> пакет@x86_64
Это понятно. Я имел ввиду, одной строкой это сделать.

-- 
Regards, Sergey.       ALT Linux, http://www.altlinux.ru/

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

end of thread, other threads:[~2015-04-23 10:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-20 19:50 [devel-distro] I: mkimage-profiles 1.1.64 Michael Shigorin
2015-04-20 20:18 ` [devel-distro] [PATCH] archdep pkglists (вдогонку к 1.1.64) Michael Shigorin
2015-04-22 15:09   ` Sergey V Turchin
2015-04-22 15:32     ` Michael Shigorin
2015-04-23 10:39       ` Sergey V Turchin
2015-04-23 10:44         ` Michael Shigorin
2015-04-23 10:45           ` Sergey V Turchin

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/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-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

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


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