Compare commits

...

203 Commits
0.6.1 ... 0.7.5

Author SHA1 Message Date
artoo
21a5c7e916 Merge pull request #57 from artix-linux/devel
Devel
2018-03-05 17:15:21 +01:00
udeved
62810d1d85 rm lists, pipelines 2018-03-05 17:09:19 +01:00
udeved
865bd20674 buildtree: add -z switch to skip arch sync 2018-03-04 23:13:41 +01:00
artoo
b46b5c626e Merge pull request #54 from artix-linux/devel
Devel
2018-02-21 01:11:10 +01:00
udeved
9ac4576666 upd missing pkgs list 2018-02-21 01:07:17 +01:00
udeved
a88f196217 commitpkh: clean up 2018-02-21 01:06:48 +01:00
udeved
c0e8ef4c26 buildiso: default to linux kernel 2018-02-19 23:59:39 +01:00
artoo
02b28e82ef Merge pull request #53 from artix-linux/devel
upd missing build deps
2018-02-17 21:58:53 +01:00
udeved
fb6d1d4c1b upd missing build deps 2018-02-17 21:58:09 +01:00
artoo
9fc3fbd14d Merge pull request #52 from artix-linux/devel
Devel
2018-02-17 21:57:15 +01:00
udeved
72f2781cb9 buildtree: fix new imports that don't exist 2018-02-17 21:54:59 +01:00
udeved
9ddd73c8b4 buildtree: use find_tree() to determine the git repo 2018-02-17 12:59:17 +01:00
udeved
3c92d5c87a mkchrootpkg: place comments for workarounds 2018-02-17 12:58:31 +01:00
artoo
bc8f17cc86 Merge pull request #51 from artix-linux/devel
commitpkg: revert to pull before push if rebase default
2018-02-17 03:18:58 +01:00
udeved
1ceb6926e9 commitpkg: revert to pull before push if rebase default 2018-02-17 03:17:46 +01:00
artoo
4d3a993a72 Merge pull request #50 from artix-linux/devel
Devel
2018-02-17 02:56:20 +01:00
udeved
a52bdc9799 commitpkg: fix git_tree display 2018-02-17 02:38:27 +01:00
udeved
b62e90f778 mkchroot & chroot-run: set chroot version with makefile 2018-02-17 02:19:51 +01:00
udeved
5d2fda793d mkchroot: set static chroot version 2018-02-17 02:08:15 +01:00
udeved
550663cfd1 commitpkg, buildtree: clean up code 2018-02-17 02:05:13 +01:00
artoo
6c117fb97d Merge pull request #49 from artix-linux/devel
Devel
2018-02-17 00:23:00 +01:00
udeved
7e6d832314 commitpkg: improve git_tree handling; add error handling 2018-02-17 00:16:34 +01:00
udeved
6fc7b124fc update missing pkgs list 2018-02-16 20:56:59 +01:00
udeved
a011005901 deploypkg: check per pkg & sig 2018-02-16 20:56:41 +01:00
udeved
5da4fea263 chroot-run: bind mount /etc/hosts 2018-02-16 20:19:30 +01:00
udeved
e1b8a0493b commitpkg: add a check to pull if changes before push 2018-02-15 23:22:22 +01:00
udeved
8fe1e82226 util-msg: fix msg_row 2018-02-15 22:43:25 +01:00
udeved
aa8725518b commitpkg: fix it 2018-02-15 22:39:28 +01:00
artoo
fc5a446784 Merge pull request #46 from artix-linux/devel
Devel
2018-02-15 21:54:21 +01:00
udeved
64ce7c3bd6 commitpkg: restore 2018-02-15 21:13:46 +01:00
udeved
8e3a7d98f9 commitpkg: fix 2018-02-15 21:02:02 +01:00
udeved
c4e47b6513 upd missing pkgs list 2018-02-15 20:48:35 +01:00
udeved
b17e93d37f commitpkg: fix moving 2018-02-15 20:48:35 +01:00
udeved
f2e575a37c upd missing pkgs list 2018-02-15 20:47:44 +01:00
udeved
706fa58ddd commitpkg: fix moving 2018-02-15 20:47:17 +01:00
udeved
de4652ac94 merge branch 'devel' into artix-linux/master 2018-02-15 13:21:03 +01:00
udeved
cd37fde7ca fixes 2018-02-15 12:59:18 +01:00
udeved
0f3b352020 rm blacklist 2018-02-15 12:58:53 +01:00
udeved
c60dabdf6b buildtree: remove import lists 2018-02-13 22:33:12 +01:00
udeved
208b751142 buildtree: filter away artix packages on -d 2018-02-13 21:45:43 +01:00
udeved
bfc8b8ce80 mkchrootpkg: use en locale 2018-02-13 21:11:47 +01:00
artoo
87185b7d99 Devel (#44)
* artools-0.7 rm old

* start 0.7

* Makefile: rm old sym

* commitpkg: init pretend switch

* commitpkg: fix to_new()

* deploypkg: add sign switch

* jenkinsfile: use signing on build success

* commitpkg: add a commit option for imported pkgs

* buildtree: patch linux package

* jenkinsfiles fixes

* update example jenkinsfile

* commitpkg: simplify usage

* update example pipelines

* update example jenkinsfile

* commitpkg: fix trunk release

* update jenkinsfile

* import linux and linux-lts

* buildtree: import and compare all artix git repos

* buildtree: add single package import
commitpkg: clean up

* buildtree: add git tree vars

* buildtree: write patches in patchdir

* jenkinsfiles update

* buildtree, commitpkg: small fixes

* buildtree: show artix repo in compare

* nkchrootpkg: use env in chroot to set env vars

* buildtree, commitpkg: fixes

* update imports

* buildtree: simplify show_artix_repo()

* mkchrootpkg: clean up _chrootbuild

* buildtree: add downgrades switch

* buildtree: use patch_pkg()

* commitpkg: add a remove switch for commitpkg mode

* commitpkg: fix remove option

* update imports

* buildtree: enable importing new packages in trunk
commitpkg: cosmetics in display_settings()

* update imports
2018-02-13 20:38:15 +01:00
udeved
6cfbc8b97e update imports 2018-02-13 20:32:16 +01:00
udeved
4f454f4ec4 buildtree: enable importing new packages in trunk
commitpkg: cosmetics in display_settings()
2018-02-13 20:31:57 +01:00
udeved
478e8fbba3 update imports 2018-02-13 19:51:49 +01:00
udeved
fc41bd7be4 commitpkg: fix remove option 2018-02-13 19:51:25 +01:00
udeved
b9eeec876b commitpkg: add a remove switch for commitpkg mode 2018-02-13 16:38:25 +01:00
udeved
ce6d6d093e buildtree: use patch_pkg() 2018-02-13 16:37:42 +01:00
udeved
996deb8924 buildtree: add downgrades switch 2018-02-13 00:09:35 +01:00
udeved
63af5c762f mkchrootpkg: clean up _chrootbuild 2018-02-12 20:39:11 +01:00
udeved
9eef1c3a05 buildtree: simplify show_artix_repo() 2018-02-12 13:38:06 +01:00
udeved
95858019e9 update imports 2018-02-12 11:57:21 +01:00
udeved
e1a9f2a1b3 buildtree, commitpkg: fixes 2018-02-12 11:53:49 +01:00
udeved
238302d3ce nkchrootpkg: use env in chroot to set env vars 2018-02-12 11:53:16 +01:00
udeved
73d7fd28af buildtree: show artix repo in compare 2018-02-11 22:34:19 +01:00
udeved
4d834ddaaa buildtree, commitpkg: small fixes 2018-02-11 19:40:56 +01:00
udeved
027e29e025 jenkinsfiles update 2018-02-11 19:40:28 +01:00
udeved
5fbf1f7d43 buildtree: write patches in patchdir 2018-02-11 17:38:50 +01:00
udeved
88b0206121 Merge branch 'devel' of github.com:artix-linux/artools into devel 2018-02-11 17:37:23 +01:00
udeved
d71af677f5 buildtree: add git tree vars 2018-02-11 12:54:32 +01:00
udeved
63ef4ee33b buildtree: add single package import
commitpkg: clean up
2018-02-11 11:23:47 +01:00
udeved
0b2e104504 buildtree: import and compare all artix git repos 2018-02-11 01:14:17 +01:00
udeved
3a7881d5c5 import linux and linux-lts 2018-02-11 00:39:28 +01:00
udeved
74dd869dc2 update jenkinsfile 2018-02-11 00:37:48 +01:00
udeved
718d4062b0 commitpkg: fix trunk release 2018-02-10 23:29:32 +01:00
udeved
66e9fa4caa update example jenkinsfile 2018-02-10 23:28:55 +01:00
udeved
f728680c28 update example pipelines 2018-02-10 21:07:23 +01:00
udeved
3a0746a358 commitpkg: simplify usage 2018-02-10 21:06:58 +01:00
udeved
5da701a318 update example jenkinsfile 2018-02-10 16:14:56 +01:00
udeved
45b1a95332 jenkinsfiles fixes 2018-02-10 12:36:05 +01:00
udeved
450b51ea71 buildtree: patch linux package 2018-02-10 10:53:39 +01:00
udeved
aa71c050b2 commitpkg: add a commit option for imported pkgs 2018-02-10 02:25:57 +01:00
udeved
e4966f2351 jenkinsfile: use signing on build success 2018-02-10 02:25:57 +01:00
udeved
894054d3cd deploypkg: add sign switch 2018-02-10 02:25:57 +01:00
udeved
969ce59e3d commitpkg: fix to_new() 2018-02-10 02:25:57 +01:00
udeved
94ec82f2d5 commitpkg: init pretend switch 2018-02-10 02:25:57 +01:00
udeved
58a043a35c Makefile: rm old sym 2018-02-10 02:25:57 +01:00
udeved
0cfdb6b8df start 0.7 2018-02-10 02:25:57 +01:00
udeved
bc5f417a90 artools-0.7 rm old 2018-02-10 02:25:57 +01:00
artoo
371f93ea7f Merge pull request #41 from artix-linux/devel
Devel
2018-02-08 23:21:22 +01:00
udeved
3fb842f36a buildtree2: rm leftover help msg 2018-02-08 23:20:36 +01:00
udeved
78fbb97bd9 buildtree2: fix comparing 2018-02-08 23:07:45 +01:00
udeved
23d75a7c12 buildtree2, buildtree: disable bash patching 2018-02-08 22:23:19 +01:00
udeved
8626be9c0b update import lists 2018-02-08 22:22:25 +01:00
udeved
557aac62e4 buildpkg2: reduce chroots used 2018-02-08 22:02:08 +01:00
udeved
f261bb9e5b update example jenkinsfile 2018-02-08 22:01:42 +01:00
udeved
3281655692 update pacman.conf files 2018-02-08 22:01:20 +01:00
udeved
dfd3961d9c mkchrootpkg, chroot-run: arch patches 2018-02-08 21:22:08 +01:00
udeved
0939e6d5a2 buildtree2: fixes 2018-02-08 10:57:33 +01:00
udeved
a9652ed8cf buildtree2: rm trunk only 2018-02-07 21:19:25 +01:00
udeved
c6d43721cb buildtree: use new patch 2018-02-07 21:15:34 +01:00
udeved
b4900e760d artix bash patch: use no path 2018-02-07 21:15:06 +01:00
udeved
346e05d943 update packages import list 2018-02-07 20:54:52 +01:00
udeved
c786e6900f buildpkg2: fix syntax 2018-02-07 20:40:53 +01:00
udeved
d42bfb6893 deploypkg2: rm move() 2018-02-07 20:15:19 +01:00
udeved
40be81f3f3 update jenkinsfile examples 2018-02-07 20:11:26 +01:00
udeved
db8ba96909 buildtree2: sync all repos in one go 2018-01-31 01:36:48 +01:00
udeved
5750465180 buildtree2: reimplement comparing 2018-01-31 00:51:33 +01:00
udeved
be3720cd56 Merge branch 'devel' of github.com:artix-linux/artools into devel 2018-01-30 12:37:54 +01:00
udeved
2d042b1545 update example pipelines & bash patch 2018-01-30 12:04:41 +01:00
udeved
a66c12ebc1 buildtree2: fixes 2018-01-30 12:03:40 +01:00
udeved
28c7ea361c buildtree2, buildpkg2: rm pkg move; use pacman-default.conf in stable repos 2018-01-29 18:17:44 +01:00
udeved
40e3623b3a basestrap, mkchroot: arch patches 2018-01-29 18:16:03 +01:00
udeved
0cd6b45f04 Merge branch 'master' of github.com:artix-linux/artools into devel 2018-01-27 13:52:29 +01:00
udeved
2d998df432 buildtree2: small var renaming 2018-01-27 12:17:00 +01:00
udeved
d10dbed4b2 mkchrootpkg: backport arch patches 2018-01-27 04:52:12 +01:00
udeved
f74dd7654a buildtree2: default to rebase pulls 2018-01-27 04:51:36 +01:00
udeved
313db49bba deploypkg2 & buildtree2 fixes 2018-01-27 03:35:31 +01:00
udeved
0235f2f9cd update example jenkinsfile 2018-01-27 03:34:46 +01:00
udeved
e08c5a9659 util:: make sure that makepkg.conf is always parsed as text 2018-01-25 17:20:09 +01:00
udeved
c38319b40c fix example pipelines 2018-01-25 13:40:59 +01:00
udeved
c7d07f4408 update example pipelines 2018-01-25 11:51:04 +01:00
udeved
cf5239b814 buildtree2: fixes 2018-01-25 11:50:36 +01:00
udeved
d77b860628 buildtree2: add move_pkg() to standardize commit messages for repo move 2018-01-24 22:32:44 +01:00
udeved
4a53b6dfd1 add old import lists 2018-01-24 21:35:05 +01:00
udeved
88a3135dc2 deploypkg2: fix moving 2018-01-24 21:13:37 +01:00
udeved
b72dcdae89 update pipeline files 2018-01-24 21:13:09 +01:00
udeved
9e7b0aba10 add pipelines 2018-01-23 09:36:18 +01:00
udeved
9d32b0ca9e deploypkg2: fix 2018-01-23 09:35:57 +01:00
artoo
e496c4d3dd Merge pull request #40 from artix-linux/gitsubtree
Gitsubtree
2018-01-23 00:27:28 +01:00
udeved
146021408d util-pkg-tree: use new unified patch 2018-01-23 00:26:48 +01:00
udeved
c40ec0eca2 make pkg tools work with arch structure 2018-01-23 00:18:14 +01:00
udeved
fbba7656f9 util-pkg-tree: host tree fixes 2018-01-22 12:44:24 +01:00
udeved
a2c90b7613 buildtree2: add options to handle subtrees 2018-01-21 15:33:40 +01:00
udeved
925f5e197a upd Makefile 2018-01-17 20:24:08 +01:00
udeved
7a2170ea14 buildpkg2, buildtree2 fixes 2018-01-17 20:23:56 +01:00
udeved
f81910a891 data: readd old pac conf 2018-01-17 20:23:25 +01:00
udeved
b731228828 wip buildpkg,buildtree,deploypkg 2018-01-16 22:19:25 +01:00
udeved
b82294fcb9 install old scripts 2018-01-16 22:18:40 +01:00
udeved
2b4b3107bf add separate scripts to keeep old scripts working, first test 2018-01-15 01:15:41 +01:00
udeved
a906875af7 Merge branch 'devel' of github.com:artix-linux/artools into gitsubtree 2018-01-15 00:36:25 +01:00
udeved
4b4e07e743 buildiso: rename enable_live array 2018-01-15 00:34:26 +01:00
udeved
2127988036 builldiso: rm openrc specific services array; use services array 2018-01-15 00:22:48 +01:00
udeved
710a8dc57f first changes to adopt new git subtree 2018-01-15 00:15:56 +01:00
artoo
16fd97e2d3 Merge pull request #36 from artix-linux/devel
Devel
2018-01-08 16:50:56 +01:00
udeved
25808c8034 util-iso-publish: fix webseed url 2018-01-08 16:50:09 +01:00
udeved
d87aade54b imports: add argon2 2018-01-08 16:49:43 +01:00
udeved
37aa3c1c65 findupdate: fix path 2017-12-27 15:37:51 +01:00
udeved
c870472267 util-pkg-tree: sed the kernel modules
update galaxy imports
2017-12-20 15:51:30 +01:00
udeved
563e2bbc4a util-iso-yaml: always write unpack 2017-12-19 15:29:05 +01:00
udeved
6463779536 buildiso,deployiso: make iso pool configurable 2017-12-19 00:50:48 +01:00
udeved
8b98c6cac9 buildiso:
* remove netinstall switch
* iso grub accepts now unpack=yes to disable netinstall and to unsquash images
2017-12-19 00:33:45 +01:00
udeved
a47c8e1a44 Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-12-18 20:19:53 +01:00
udeved
c7cf6c05a0 update import lists 2017-12-18 20:19:35 +01:00
udeved
5c4406a19a base: add opentmpfiles 2017-12-18 20:19:04 +01:00
udeved
5a1105302a buidiso: add option to add custom kernel args 2017-12-17 17:09:03 +01:00
udeved
6a376c8b65 data: update base profile 2017-12-13 22:55:37 +01:00
udeved
bfbbd12316 util-iso*:
* clean up;
* worth to consider a kernel paramater which runs in live session to set unsquash in calamares optionally
2017-12-13 22:45:13 +01:00
udeved
c51d75acf0 buildiso: reiplement configuring calamares image unsquashing 2017-12-13 16:02:22 +01:00
udeved
11ea38fe32 deploypkg: fix find_cached_package() and clean up 2017-12-10 19:23:32 +01:00
udeved
55b9b69859 Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-12-10 18:19:48 +01:00
udeved
d2ae040e45 deploypkg: temporarily disable switch for pushing to GH 2017-12-10 18:19:37 +01:00
udeved
691c401251 util-pkg: try to fix find_cached_package() 2017-12-10 14:29:38 +01:00
udeved
8861b9c8f8 util-pkg-tree: fix show_version_table() 2017-12-09 21:45:43 +01:00
udeved
c74dda6e53 update world import list and comment packages bumped out of cycle 2017-12-07 19:47:07 +01:00
udeved
da54be8ea2 buildtree: show src and dest import path 2017-12-07 19:46:29 +01:00
udeved
6551d66a99 update world imports 2017-11-30 19:00:25 +01:00
udeved
8ed2464c5f Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-11-30 18:44:09 +01:00
udeved
f2006adfaa adopt new multilib toolchain 2017-11-30 18:43:46 +01:00
udeved
fe3bd6296f buildpkg: add multilib chroot switch 2017-11-28 20:19:51 +01:00
udeved
4ac466a83e util-yaml: drop linux.preset 2017-11-27 22:18:44 +01:00
udeved
c76a29eaf7 buildiso, buildpkg: use case statement to easily add staging on demand 2017-11-27 22:06:25 +01:00
udeved
4b7ff99b98 remove i686 config 2017-11-27 21:48:34 +01:00
udeved
e034e965d3 fstabgen: arch backport 2017-11-27 21:47:34 +01:00
udeved
e4bb309841 buildiso, buildpkg, deployiso: remove i686 config files and assume x86_64 default
* arch merged lib32 toolchain in core toolchain builds, we need to see where lib32 ends up on arch
* arch has new lib in testing not in multilib
the multilib-devel group seems to be scrapped
2017-11-27 20:41:39 +01:00
udeved
7d207257f7 util-iso-profile: readd audio group to addGroups 2017-11-27 20:38:15 +01:00
udeved
ec10df53b8 update import lists 2017-11-23 17:37:38 +01:00
udeved
d32d254632 util-pkg-publish: print info msgs for checks 2017-11-15 01:01:02 +01:00
udeved
793721249a world import: add python packages 2017-11-15 00:44:03 +01:00
udeved
acd9ee7e28 util-pkg-publish: add some checks of the deployed package 2017-11-15 00:43:20 +01:00
udeved
c9337155e1 Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-11-14 23:19:59 +01:00
udeved
8f1da6d4fb update world import list 2017-11-14 23:19:38 +01:00
udeved
1ab0e41426 update system import list 2017-11-14 14:41:19 +01:00
udeved
6f01896066 impoet list: add glade 2017-11-14 00:28:20 +01:00
udeved
cba60d97c6 update world import list 2017-11-13 15:56:59 +01:00
nous
4ba2a309c0 added dovecot, pigeonhole then sorted list 2017-11-13 00:01:06 +02:00
nous
6193ad59b2 add libidn2 2017-11-12 23:58:10 +02:00
udeved
b2c1c3288b update import lists 2017-11-07 16:47:19 +01:00
udeved
84242b79d0 update world and galaxy import lists 2017-11-07 11:23:43 +01:00
udeved
6039f88715 update world import list 2017-11-06 22:42:52 +01:00
udeved
54cb15f3a2 update import lists 2017-11-06 18:14:18 +01:00
artoo
13f63047a2 Merge pull request #34 from artix-linux/devel
Devel
2017-11-05 23:24:34 +01:00
udeved
7cc0c0c86a buildtree: default to system repo 2017-11-05 23:23:58 +01:00
udeved
327be3b735 update world and galaxy import lists 2017-11-05 23:20:34 +01:00
udeved
6e20fc6d07 update import lists 2017-11-05 08:08:59 +01:00
udeved
8436f0cafb update import list 2017-11-03 22:32:53 +01:00
udeved
1ded762a78 use makepkg library instead of local function copies 2017-11-03 18:41:21 +01:00
udeved
f3ac8b8679 mkchrootpkg: move init_variables() to be part of main() 2017-11-03 18:39:58 +01:00
udeved
622f426686 util-pkg-tree: use find to delete patches 2017-10-21 14:20:00 +02:00
udeved
07ee48ff72 buildtree: add patches repo subdir 2017-10-21 13:45:30 +02:00
udeved
1728682147 buildiso: use strong hash algo for sfs checksums 2017-10-21 13:45:01 +02:00
udeved
710d615cbb libs: rm global log_dir and tmp_dir 2017-10-15 18:57:05 +02:00
udeved
a305eac6ce deployiso: fix uplimit 2017-10-15 17:50:58 +02:00
udeved
b964b729cc util-pkg-tree: rm useless if 2017-10-14 10:29:17 +02:00
udeved
6d5b4d45dd buildtree: small fixes 2017-10-14 10:27:45 +02:00
artoo
a98a7b5100 Merge pull request #33 from artix-linux/devel
Devel
2017-10-11 21:57:15 +02:00
udeved
3c80f711da util-pkg-tree: clean up import 2017-10-10 20:02:33 +02:00
udeved
501272464b buildtree: sync repos in loop 2017-10-10 02:39:57 +02:00
udeved
c6ddda2773 Merge branch 'devel' of github.com:artix-linux/artools into devel 2017-10-10 02:09:32 +02:00
udeved
2bed948636 buildtree: remove repo loop; add repository optarg 2017-10-10 02:09:03 +02:00
udeved
98c1d950f8 util-pkg-publish: handle llvm case 2017-10-07 17:47:16 +02:00
udeved
6941b3ce3b signfile: remove hellhound 2017-10-07 17:46:37 +02:00
udeved
1972ee936e update import list 2017-10-06 20:08:36 +02:00
48 changed files with 1134 additions and 1399 deletions

View File

@@ -1,4 +1,6 @@
Version=0.6
Version=0.7
Chroot_version=0.7
PREFIX = /usr/local
SYSCONFDIR = /etc
@@ -22,31 +24,40 @@ LIBS_BASE = \
lib/util-fstab.sh
SHARED_BASE = \
$(wildcard data/pacman-*.conf)
LIST_IMPORT = \
$(wildcard data/import.list.d/*.list)
$(wildcard data/pacman*.conf)
BIN_PKG = \
bin/checkpkg \
bin/lddd \
bin/finddeps \
bin/findupdates \
bin/find-libdeps \
bin/mkchrootpkg \
bin/buildpkg \
bin/buildtree \
bin/deploypkg
bin/deploypkg \
bin/commitpkg
LIBS_PKG = \
$(wildcard lib/util-pkg*.sh)
SHARED_PKG = \
$(wildcard data/makepkg-*.conf)
data/makepkg.conf
PATCHES = \
$(wildcard data/patches/*.patch)
COMMITPKG_SYMS = \
extrapkg \
corepkg \
testingpkg \
stagingpkg \
communitypkg \
community-testingpkg \
community-stagingpkg \
multilibpkg \
multilib-testingpkg \
multilib-stagingpkg
BIN_ISO = \
bin/buildiso \
bin/deployiso
@@ -55,8 +66,7 @@ LIBS_ISO = \
$(wildcard lib/util-iso*.sh)
SHARED_ISO = \
data/mkinitcpio.conf \
data/linux.preset
data/mkinitcpio.conf
CPIOHOOKS = \
$(wildcard initcpio/hooks/*)
@@ -89,7 +99,8 @@ all: $(BIN_BASE) $(BIN_PKG) $(BIN_ISO)
edit = sed -e "s|@datadir[@]|$(DESTDIR)$(PREFIX)/share/artools|g" \
-e "s|@sysconfdir[@]|$(DESTDIR)$(SYSCONFDIR)/artools|g" \
-e "s|@libdir[@]|$(DESTDIR)$(PREFIX)/lib/artools|g" \
-e "s|@version@|${Version}|"
-e "s|@version@|${Version}|" \
-e "s|@chroot_version@|${Chroot_version}|"
%: %.in Makefile
@echo "GEN $@"
@@ -115,16 +126,13 @@ install_base:
install -m0644 ${SHARED_BASE} $(DESTDIR)$(PREFIX)/share/artools
install_pkg:
install -dm0755 $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d
install -m0644 ${LIST_IMPORT} $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_PKG} $(DESTDIR)$(PREFIX)/bin
ln -sf buildpkg $(DESTDIR)$(PREFIX)/bin/buildpkg-testing
ln -sf find-libdeps $(DESTDIR)$(PREFIX)/bin/find-libprovides
for l in ${COMMITPKG_SYMS}; do ln -sf commitpkg $(DESTDIR)$(PREFIX)/bin/$$l; done
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_PKG} $(DESTDIR)$(PREFIX)/lib/artools
@@ -154,7 +162,7 @@ install_iso:
install -dm0755 $(DESTDIR)$(PREFIX)/bin
install -m0755 ${BIN_ISO} $(DESTDIR)$(PREFIX)/bin
ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-testing
ln -sf buildiso $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
install -dm0755 $(DESTDIR)$(PREFIX)/lib/artools
install -m0644 ${LIBS_ISO} $(DESTDIR)$(PREFIX)/lib/artools
@@ -177,10 +185,9 @@ uninstall_base:
for f in ${LIBS_BASE}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
uninstall_pkg:
for f in ${LIST_IMPORT}; do rm -f $(DESTDIR)$(SYSCONFDIR)/artools/import.list.d/$$f; done
for f in ${BIN_PKG}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/find-libprovides
rm -f $(DESTDIR)$(PREFIX)/bin/buildpkg-testing
for l in ${COMMITPKG_SYMS}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$l; done
for f in ${SHARED_PKG}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${PATCHES}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/patches/$$f; done
for f in ${LIBS_PKG}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done
@@ -194,7 +201,7 @@ uninstall_isobase:
uninstall_iso:
for f in ${BIN_ISO}; do rm -f $(DESTDIR)$(PREFIX)/bin/$$f; done
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-testing
rm -f $(DESTDIR)$(PREFIX)/bin/buildiso-gremlins
for f in ${SHARED_ISO}; do rm -f $(DESTDIR)$(PREFIX)/share/artools/$$f; done
for f in ${LIBS_ISO}; do rm -f $(DESTDIR)$(PREFIX)/lib/artools/$$f; done

View File

@@ -32,7 +32,6 @@ usage() {
echo "usage: ${0##*/} [options] root [packages...]"
echo " -C <config> Use an alternate config file for pacman"
echo " -c Use the package cache on the host, rather than the target"
echo " -d Allow installation to a non-mountpoint directory"
echo " -G Avoid copying the host's pacman keyring to the target"
echo " -i Avoid auto-confirmation of package selections"
echo " -M Avoid copying the host's mirrorlist to the target"
@@ -47,12 +46,11 @@ usage() {
orig_argv=("$0" "$@")
opts=':C:cdGiM'
opts=':C:cGiM'
while getopts ${opts} arg; do
case "${arg}" in
C) pacman_conf=$OPTARG ;;
d) directory=true ;;
c) hostcache=true ;;
i) interactive=true ;;
G) copykeyring=false ;;
@@ -77,10 +75,6 @@ ${interactive} || pacman_args+=(--noconfirm)
[[ -d $newroot ]] || die "%s is not a directory" "$newroot"
if ! mountpoint -q "$newroot" && ! ${directory}; then
die '%s is not a mountpoint!' "$newroot"
fi
# create obligatory directories
create_min_fs "$newroot"

View File

@@ -26,24 +26,21 @@ prepare_build(){
netgroups=${netgroups_url}/netgroups-${initsys}.yaml
local pac_arch='default' pacman_conf pac_conf
[[ "${target_arch}" == 'x86_64' ]] && pac_arch='lib32'
local pacman_conf pac_file="pacman-default.conf"
if [[ ${stablility} == 'buildiso' ]];then
pac_conf=$pac_arch
else
pac_conf=$pac_arch-${stablility}
fi
case "${stablility}" in
'gremlins') pac_file="pacman-${stablility}.conf" ;;
esac
pacman_conf="${DATADIR}/pacman-$pac_conf.conf"
[[ -f $AT_USERCONFDIR/pacman-$pac_conf.conf ]] && pacman_conf="$AT_USERCONFDIR/pacman-$pac_conf.conf"
pacman_conf="${DATADIR}/$pac_file"
[[ -f $AT_USERCONFDIR/$pac_file ]] && pacman_conf="$AT_USERCONFDIR/$pac_file"
iso_file=$(gen_iso_fn).iso
mkchroot_args+=(-C ${pacman_conf})
work_dir=${chroots_iso}/${profile}/${target_arch}
iso_dir="${cache_dir_iso}/${profile}"
iso_dir="${iso_pool}/${profile}"
iso_root=${chroots_iso}/${profile}/iso
mnt_dir=${chroots_iso}/${profile}/mnt
@@ -63,9 +60,8 @@ show_profile(){
msg2 "password: %s" "${password}"
msg2 "addgroups: %s" "${addgroups}"
msg2 "enable_live: %s" "${enable_live[*]}"
msg2 "openrc_boot: %s" "${openrc_boot[*]}"
msg2 "openrc_default: %s" "${openrc_default[*]}"
msg2 "services_live: %s" "${services_live[*]}"
msg2 "services: %s" "${services[*]}"
fi
}
@@ -75,10 +71,10 @@ display_settings(){
msg "OPTIONS:"
msg2 "profile: %s" "${profile}"
msg2 "arch: %s" "${target_arch}"
msg2 "initsys: %s" "${initsys}"
msg2 "kernel: %s" "${kernel}"
[[ -n ${gpgkey} ]] && msg2 "gpgkey: %s" "${gpgkey}"
msg2 "stablility: %s" "${stablility}"
msg "ARGS:"
msg2 "clean_first: %s" "${clean_first}"
@@ -146,11 +142,10 @@ stablility=${cmd##*-}
usage() {
echo "Usage: ${0##*/} [options]"
echo " -p <profile> Profile [default: ${profile}]"
echo " -a <arch> Arch [default: ${target_arch}]"
echo ' -r <dir> Chroots directory'
echo " [default: ${chroots_iso}]"
echo ' -t <dir> Target directory'
echo " [default: ${cache_dir_iso}]"
echo " [default: ${iso_pool}]"
echo ' -k <name> Kernel to use'
echo " [default: ${kernel}]"
echo ' -i <name> Init system to use'
@@ -172,14 +167,13 @@ usage() {
orig_argv=("$0" "$@")
opts='p:a:r:t:k:i:g:czxmvqh'
opts='p:r:t:k:i:g:czxmvqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) profile="$OPTARG" ;;
a) target_arch="$OPTARG" ;;
r) chroots_iso="$OPTARG" ;;
t) cache_dir_iso="$OPTARG" ;;
t) iso_pool="$OPTARG" ;;
k) kernel="$OPTARG" ;;
i) initsys="$OPTARG" ;;
g) gpgkey="$OPTARG" ;;

View File

@@ -20,16 +20,12 @@ SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-chroot.sh
import ${LIBDIR}/util-pkg.sh
show_pkg(){
check_build "$1"
cd $1
source PKGBUILD
for n in ${pkgname[@]}; do
msg2 "%s" "$n"
done
cd ..
source PKGBUILD
for n in ${pkgname[@]}; do
msg2 "%s" "$n"
done
}
display_settings(){
@@ -37,18 +33,16 @@ display_settings(){
show_config
msg "OPTIONS:"
msg2 "arch: %s" "${target_arch}"
msg2 "chroots_pkg: %s" "${chroots_pkg}"
msg2 "repository: %s" "${repository}"
msg2 "stablility: %s" "${stablility}"
msg "ARGS:"
msg2 "create_first: %s" "${create_first}"
msg2 "makepkg_args: %s" "${makepkg_args[*]}"
msg2 "mkchrootpkg_args: %s" "${mkchrootpkg_args[*]}"
msg "BUILD:"
show_pkg "${package}"
show_pkg
}
load_user_info
@@ -61,62 +55,43 @@ pretend=false
mkchroot_args=()
mkchrootpkg_args=(-c -n)
install_pkgs=()
package=''
cmd=${0##*/}
stablility=${cmd##*-}
repository=${PWD##*/}
base_devel=('base-devel')
repository='default'
prepare_build(){
local pac_arch='default' pac_conf=
local pac_file= mp_file='makepkg.conf'
base_devel=('base-devel')
case ${repository} in
'system'|'world'|'galaxy') repository='default' ;;
lib32*) base_devel+=('multilib-devel') ;;
galaxy-gremlins|galaxy-goblins) repository=${repository#*-} ;;
esac
local pac_file="pacman-${repository}.conf"
if [[ "${target_arch}" == 'lib32' ]];then
pac_arch='lib32'
base_devel+=('multilib-devel')
fi
local pacman_conf="${DATADIR}/$pac_file"
[[ -f $AT_USERCONFDIR/$pac_file ]] && pacman_conf="$AT_USERCONFDIR/$pac_file"
if [[ ${stablility} == 'buildpkg' ]];then
pac_conf=$pac_arch
else
pac_conf=$pac_arch-${stablility}
fi
[[ "$pac_arch" == 'lib32' ]] && target_arch='x86_64'
local pacman_conf="${DATADIR}/pacman-$pac_conf.conf"
[[ -f $AT_USERCONFDIR/pacman-$pac_conf.conf ]] && pacman_conf="$AT_USERCONFDIR/pacman-$pac_conf.conf"
work_dir="${chroots_pkg}/${repository}-${target_arch}"
local makepkg_conf="${DATADIR}/makepkg-${target_arch}.conf"
[[ -f $AT_USERCONFDIR/makepkg-${target_arch}.conf ]] && makepkg_conf="$AT_USERCONFDIR/makepkg-${target_arch}.conf"
local makepkg_conf="${DATADIR}/$mp_file"
[[ -f $AT_USERCONFDIR/$mp_file ]] && makepkg_conf="$AT_USERCONFDIR/$mp_file"
mkchroot_args+=(-C "${pacman_conf}" -M "${makepkg_conf}" "${work_dir}/root")
mkchrootpkg_args+=(-r "${work_dir}" "${makepkg_args[@]}")
timer_start=$(get_timer)
}
build(){
local timer_start=$(get_timer)
if [[ -f ${package}/PKGBUILD ]];then
cd ${package}
else
die "Directory must contain a PKGBUILD!"
fi
msg "Start building [%s] (%s)" "${package}" "${repository}"
local timer_start=$(get_timer)
exec mkchrootpkg "${mkchrootpkg_args[@]}"
show_elapsed_time "${FUNCNAME}" "${timer_start}"
}
usage() {
echo "Usage: ${0##*/} [options] -- [makepkg_args]"
echo " -p <pkg> Package to build [default: ${package}]"
echo " -a <arch> Arch [default: ${target_arch}]"
echo " -r <dir> Chroots directory [default: ${chroots_pkg}]"
echo ' -z <repo> Repo name'
echo " -r <dir> Repository [default: ${repository}]"
echo ' -c Create root chroot'
echo ' -q Query settings and pretend build'
echo ' -h This help'
@@ -128,14 +103,11 @@ usage() {
orig_argv=("$0" "$@")
opts='p:a:r:z:cqh'
opts='r:cqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) package="$OPTARG" ;;
a) target_arch="$OPTARG" ;;
r) chroots_pkg="$OPTARG" ;;
z) repository="$OPTARG" ;;
r) repository="$OPTARG" ;;
c) create_first=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
@@ -143,7 +115,6 @@ while getopts "${opts}" arg; do
esac
done
# shift $(($OPTIND - 1))
makepkg_args+=("${@:$OPTIND}")
check_root
@@ -176,4 +147,4 @@ else
pacman -Syu --noconfirm || abort
fi
build "${package}"
build

View File

@@ -18,49 +18,212 @@ DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh
pull_tree_arch(){
cd ${tree_dir_arch}
for tree in packages community;do
if [[ -d ${tree} ]];then
cd ${tree}
msg "Checking (%s)" "${tree}"
pull_tree
cd ..
else
msg "Cloning (%s) ..." "$tree"
clone_tree "${host_tree_arch}/${tree}"
fi
done
}
pull_tree_artix(){
cd ${tree_dir_artix}
for tree in packages packages-galaxy;do
if [[ -d ${tree} ]];then
cd ${tree}
git config --bool pull.rebase true
msg "Checking (%s)" "${tree}"
pull_tree
cd ..
else
msg "Cloning (%s) ..." "$tree"
clone_tree "${host_tree_artix}/${tree}"
fi
done
}
show_version_table(){
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
for tree in packages packages-galaxy;do
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
for pkg_path in ${git[@]}; do
local artixrepo=$(find_repo "$pkg_path")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/trunk/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/trunk/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
${upgrades} && msg_row_upgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
if [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
if [[ -n $archver ]] && [[ -n $archrepo ]];then
${downgrades} && msg_row_downgrade "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
done
}
show_artix_table(){
msg_table_header "%-20s %-20s %-25s %-30s %-30s" "Arch Repo" "Artix Repo" "Package" "Arch version" "Artix version"
for tree in packages packages-galaxy;do
local git=$(find ${tree_dir_artix}/$tree/ -mindepth 1 -maxdepth 1 -type d)
for pkg_path in ${git[@]}; do
local artixrepo=$(find_repo "$pkg_path")
if [[ -d $pkg_path/repos/$artixrepo ]];then
source $pkg_path/repos/$artixrepo/PKGBUILD 2>/dev/null
local pkg=${pkg_path##*/}
local artixver=$(get_full_version $pkg)
local src=$(get_import_path "$tree" "$pkg")
local archrepo=$(find_repo "$src/$pkg")
if [[ -d $src/$pkg/repos/$archrepo ]];then
source $src/$pkg/repos/$archrepo/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
fi
if [ $(vercmp $artixver $archver) -eq 0 ] || [ $(vercmp $artixver $archver) -gt 0 ];then
local ar=$(arch_to_artix_repo "$artixrepo")
case $ar in
*goblins)
if [[ $archrepo == $artixrepo ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
*gremlins)
if [[ $archrepo == $artixrepo ]];then
msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
else
msg_row_notify "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver"
fi
;;
# system|world|galaxy|lib32) msg_row "%-20s %-20s %-25s %-30s %-30s" "${archrepo%-*}" "${ar}" "$pkg" "$archver" "$artixver" ;;
esac
fi
unset pkgver epoch pkgrel artixver archver _package
fi
done
done
}
from_arch(){
local pkg="$1" src= dest=
local git_tree_arch=$(find_tree "${tree_dir_arch}" "$pkg")
[[ -z $git_tree_arch ]] && die "Package '%s' does not exist!" "$pkg"
src=${tree_dir_arch}/$git_tree_arch/$pkg/trunk
local git_tree_artix=$(find_tree "${tree_dir_artix}" "$pkg")
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
cd ${tree_dir_arch}/$git_tree_arch
source $src/PKGBUILD 2>/dev/null
local archver=$(get_full_version $pkg)
msg "Package: %s" "$pkg"
msg2 "Arch Version: %s" "$archver"
[[ -n ${makedepends[@]} ]] && msg2 "makedepends: %s" "${makedepends[*]}"
[[ -n ${checkdepends[@]} ]] && msg2 "depends: %s" "${checkdepends[*]}"
[[ -n ${depends[@]} ]] && msg2 "depends: %s" "${depends[*]}"
if [[ -d $dest ]];then
cd ${tree_dir_artix}/$git_tree_artix
source $dest/PKGBUILD 2>/dev/null
local artixver=$(get_full_version $pkg)
msg2 "Artix Version: %s" "$artixver"
info "Update from archlinux (%s)" "$git_tree_arch"
rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree"
else
[[ $git_tree_arch == 'packages' ]] && git_tree_artix=$git_tree_arch
[[ $git_tree_arch == 'community' ]] && git_tree_artix='packages-galaxy'
cd ${tree_dir_artix}/$git_tree_artix
dest=${tree_dir_artix}/$git_tree_artix/$pkg/trunk
mkdir $pkg
info "Import from archlinux (%s)" "$git_tree_arch"
rsync "${rsync_args[@]}" $src/ $dest/
patch_pkg "$pkg" "$tree"
fi
}
sync_repos(){
${sync_arch} && pull_tree_arch
pull_tree_artix
}
display_settings(){
show_version
show_config
msg "REPOS:"
msg2 "repo_tree_arch: %s" "${repo_tree_arch[*]}"
msg2 "repo_tree_artix: %s" "${repo_tree_artix[*]}"
msg "OPTIONS:"
msg2 "package: %s" "${package}"
msg "ARGS:"
msg2 "artix: %s" "${artix}"
msg2 "arch: %s" "${arch}"
msg2 "sync: %s" "${sync}"
msg2 "sync_arch: %s" "${sync_arch}"
msg2 "compare: %s" "${compare}"
msg2 "import_arch: %s" "${import_arch}"
msg2 "gitpush: %s" "${gitpush}"
msg2 "upgrades: %s" "${upgrades}"
msg2 "downgrades: %s" "${downgrades}"
msg2 "artix: %s" "${artix}"
msg2 "import: %s" "${import}"
msg "PATHS:"
msg2 "tree_dir_artix: %s" "${tree_dir_artix}"
msg2 "tree_dir_arch: %s" "${tree_dir_arch}"
msg2 "patches_dir: %s" "${patches_dir}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
pretend=false
arch=false
artix=false
sync=false
sync_arch=true
compare=false
import_arch=false
gitpush=false
upgrades=true
downgrades=false
artix=false
import=false
package=''
rsync_args=(-aWxv --progress --delete-before --no-R --no-implied-dirs)
rsync_args=(-aWxvci --progress --delete-before --no-R --no-implied-dirs)
usage() {
echo "Usage: ${0##*/} [options]"
echo " -a Sync arch tree"
echo " -s Sync artix tree"
echo " -c Compare artix and arch versions"
echo ' -i Import arch packages'
echo ' -p Push import packages'
echo ' -p <pkg> Package name'
echo " -s Clone or pull repos"
echo " -z Don't clone or pull arch repos"
echo ' -c Compare packages'
echo ' -u Show upgrade packages'
echo ' -d Show downgrade packages'
echo ' -a Show artix specific packages'
echo ' -i Import a package from arch'
echo ' -q Query settings'
echo ' -h This help'
echo ''
@@ -70,15 +233,18 @@ usage() {
orig_argv=("$0" "$@")
opts='aipscqh'
opts='p:csudaizqh'
while getopts "${opts}" arg; do
case "${arg}" in
a) arch=true ;;
s) artix=true ;;
p) package="$OPTARG" ;;
s) sync=true ;;
z) sync_arch=false ;;
c) compare=true ;;
i) import_arch=true ;;
p) gitpush=true ;;
u) upgrades=false ;;
d) downgrades=true ;;
a) artix=true ;;
i) import=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -89,14 +255,13 @@ shift $(($OPTIND - 1))
prepare_dir "${tree_dir_artix}"
prepare_dir "${tree_dir_arch}"
prepare_dir "${patches_dir}"
${pretend} && display_settings && exit 1
${artix} && sync_tree_artix
${arch} && sync_tree_arch
${sync} && sync_repos
${compare} && show_version_table
${import_arch} && import_from_arch ${gitpush}
${artix} && show_artix_table
${import} && from_arch "${package}"

View File

@@ -11,6 +11,8 @@
version=@version@
chroot_version=@chroot_version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
@@ -87,11 +89,12 @@ copy_hostconf () {
cp -T "$file" "$working_dir$file"
done
sed -r "s|^#?\\s*CacheDir.+|CacheDir = $(echo -n ${cache_dirs[@]})|g" -i "$1/etc/pacman.conf"
sed -r "s|^#?\\s*CacheDir.+|CacheDir = ${cache_dirs[*]}|g" -i "$1/etc/pacman.conf"
}
chroot_extra_mount() {
chroot_mount "/etc/resolv.conf" "$1/etc/resolv.conf" -B
chroot_mount "/etc/hosts" "$1/etc/hosts" -B
chroot_mount_conditional "[[ -e $1/etc/machine-id ]]" "/etc/machine-id" "$1/etc/machine-id" -B
chroot_mount "${cache_dirs[0]}" "$1${cache_dirs[0]}" -B
@@ -113,8 +116,8 @@ umask 0022
# Sanity check
if [[ ! -f "$working_dir/.artools" ]]; then
die "'%s' does not appear to be an artix chroot." "$working_dir"
elif [[ $(cat "$working_dir/.artools") != $version ]]; then
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$version"
elif [[ $(cat "$working_dir/.artools") != $chroot_version ]]; then
die "chroot '%s' is not at version %s. Please rebuild." "$working_dir" "$chroot_version"
fi
chroot_api_mount "${working_dir}" || die "failed to setup API filesystems in chroot %s" "${working_dir}"

170
bin/commitpkg.in Normal file
View File

@@ -0,0 +1,170 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
version=@version@
LIBDIR='@libdir@'
SYSCONFDIR='@sysconfdir@'
DATADIR='@datadir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
commit_pkg(){
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any
local ver=$(get_full_version "${package}")
if ${remove};then
local action='remove'
if [[ "${source_repo}" == 'trunk' ]];then
local pkg=${package}
git rm -r trunk
else
local pkg=${package}-$ver
git rm -r repos/${source_repo}-$CARCH
fi
msg "Action: [%s] '%s' %s" "${source_repo}" "$pkg" "${action}"
git commit -m "[${source_repo}] '$pkg' ${action}"
else
local action='modify'
msg "Action: [%s] '%s' %s" "${source_repo}" "${package}-$ver" "${action}"
git add .
git commit -m "[${source_repo}] '${package}-$ver' ${action}"
fi
if ${push};then
msg "Checking (%s)" "${git_tree}"
git pull origin master
git push origin master
fi
else
error "Package '%s' does not exist!" "${package}"
fi
}
symlink_commit_pkg(){
local git_tree=$(find_tree "${tree_dir_artix}" "${package}")
if [[ -n ${git_tree} ]];then
cd ${tree_dir_artix}/${git_tree}/${package}
source trunk/PKGBUILD
[[ $arch == 'any' ]] && CARCH=any
local ver=$(get_full_version "${package}")
if [[ ${source_repo} == 'trunk' ]];then
local action='add'
local dest=${target_repo}-$CARCH
[[ -d repos/$dest ]] && git rm -r repos/$dest
[[ ! -d repos ]] && mkdir repos
cp -r trunk repos/$dest
else
local action='move'
local dest=${target_repo}-$CARCH
cd repos
[[ -d $dest ]] && git rm -r $dest
git mv ${source_repo}-$CARCH $dest
cd ..
fi
msg "Action: [%s] -> [%s] '%s' %s" "${source_repo}" "${target_repo}" "${package}-$ver" "${action}"
git add .
git commit -m "[${source_repo}] -> [${target_repo}] '${package}-$ver' ${action}"
if ${push};then
msg "Checking (%s)" "${git_tree}"
git pull origin master
git push origin master
fi
else
error "Package '%s' does not exist!" "${package}"
fi
}
display_settings(){
show_version
show_config
msg "OPTIONS:"
msg2 "source_repo: %s" "${source_repo}"
msg2 "target_repo: %s" "${target_repo}"
msg2 "package: %s" "${package}"
msg "ARGS:"
msg2 "remove: %s" "${remove}"
msg2 "push: %s" "${push}"
}
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
source_repo='trunk'
package=''
remove=false
push=false
pretend=false
cmd=${0##*/}
target_repo=${cmd%pkg}
usage() {
echo "Usage: ${0##*/} [options]"
echo " -s <name> Source repository [default:${source_repo}]"
echo ' -p <pkg> Package name'
echo ' -r Delete from repo (commitpkg only)'
echo ' -u Push'
echo ' -q Query settings and pretend'
echo ' -h This help'
echo ''
echo ''
exit $1
}
orig_argv=("$0" "$@")
opts='p:s:urqh'
while getopts "${opts}" arg; do
case "${arg}" in
s) source_repo="$OPTARG" ;;
p) package="$OPTARG" ;;
r) remove=true ;;
u) push=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
esac
done
shift $(($OPTIND - 1))
${pretend} && display_settings && exit 1
if $(is_valid_repo "${source_repo}");then
if [[ "${cmd}" == 'commitpkg' ]];then
commit_pkg
else
symlink_commit_pkg
fi
else
error "source repository '%s' is not valid!" "${source_repo}"
fi

View File

@@ -78,7 +78,7 @@ opts='p:l:uvtqh'
while getopts "${opts}" arg; do
case "${arg}" in
p) profile="$OPTARG" ;;
l) limit="$OPTARG" ;;
l) uplimit="$OPTARG" ;;
u) update=true; rsync_args+=(-u) ;;
t) torrent=true ;;
v) verbose=true; rsync_args+=(-v --stats) ;;

View File

@@ -16,7 +16,44 @@ SYSCONFDIR='@sysconfdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg-publish.sh
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local ver
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH");then
info "pkgfile: %s" "${pkgfile##*/}"
repo-remove -R $repo_path/$repo.db.tar.xz $name
[[ -e $repo_path/${pkgfile##*/} ]] && rm -v $repo_path/${pkgfile##*/}
[[ -e $repo_path/${pkgfile##*/}.sig ]] && rm -v $repo_path/${pkgfile##*/}.sig
fi
done
}
add_to_repo(){
local ver pkgfile=
local repo="$1"
local repo_path=${repos_root}/$repo/os/${target_arch}
source PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if pkgfile=$(find_cached_package "$name" "$ver" "$CARCH"); then
info "pkgfile: %s" "${pkgfile##*/}"
if ${sign_pkg};then
[[ -e ${pkgfile}.sig ]] && rm ${pkgfile}.sig
signfile ${pkgfile}
fi
ln -sf ${pkgfile}{,.sig} $repo_path/
repo-add -R $repo_path/$repo.db.tar.xz $pkgfile
fi
done
}
display_settings(){
show_version
@@ -24,14 +61,11 @@ display_settings(){
msg "OPTIONS:"
msg2 "repository: %s" "${repository}"
msg2 "to_repository: %s" "${to_repository}"
msg2 "package: %s" "${package[@]}"
msg2 "target_arch: %s" "${target_arch}"
msg "ARGS:"
msg2 "add_pkg: %s" "${add_pkg}"
msg2 "del_pkg: %s" "${del_pkg}"
msg2 "move_pkg: %s" "${move_pkg}"
msg2 "sign_pkg: %s" "${sign_pkg}"
}
load_user_info
@@ -43,22 +77,15 @@ load_vars /etc/makepkg.conf
pretend=false
add_pkg=false
del_pkg=false
move_pkg=false
package=''
repository=${PWD##*/}
to_repository=${PWD##*/}
rsync_args=(-rtxisP --progress --delete -e ssh)
repository=
sign_pkg=false
usage() {
echo "Usage: ${0##*/} [options]"
echo " -a Repository arch [default:${target_arch}]"
echo " -r Repository [default:${repository}]"
echo " -t Repository to move to [default:${to_repository}]"
echo " -p Package name to add/delete"
echo ' -x Add package to repository'
echo ' -y Delete package from repository'
echo ' -m Move packages from source to destination repository'
echo " -d Destination repository [default:${repository}]"
echo ' -a Add package to repository'
echo ' -r Remove package from repository'
echo ' -s Sign package'
echo ' -q Query settings and pretend upload'
echo ' -h This help'
echo ''
@@ -68,17 +95,14 @@ usage() {
orig_argv=("$0" "$@")
opts='p:a:r:t:xymqh'
opts='d:arsqh'
while getopts "${opts}" arg; do
case "${arg}" in
a) target_arch="$OPTARG" ;;
r) repository="$OPTARG" ;;
p) package="$OPTARG" ;;
t) to_repository="$OPTARG" ;;
m) move_pkg=true ;;
x) add_pkg=true ;;
y) del_pkg=true ;;
d) repository="$OPTARG" ;;
a) add_pkg=true ;;
r) del_pkg=true ;;
s) sign_pkg=true ;;
q) pretend=true ;;
h|?) usage 0 ;;
*) echo "invalid argument '${arg}'"; usage 1 ;;
@@ -87,16 +111,12 @@ done
shift $(($OPTIND - 1))
timer_start=$(get_timer)
prepare_dir "${repos_root}"
${pretend} && display_settings && exit 1
${move_pkg} && move_to_repo "${repository}" "${to_repository}" "${target_arch}"
${del_pkg} && del_from_repo "${repository}"
${del_pkg} && del_from_repo "${repository}" "${target_arch}" "${package}"
${add_pkg} && add_to_repo "${repository}" "${target_arch}" "${package}"
${add_pkg} && add_to_repo "${repository}"
exit 0

View File

@@ -1,53 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
version=@version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
import ${LIBDIR}/util-pkg.sh
import ${LIBDIR}/util-pkg-tree.sh
load_user_info
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for repo in ${repo_tree_artix[@]}; do
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
set_import_path "$repo" "$package"
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$src/PKGBUILD $pkg/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
else
msg_row "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
done
for upd in "${!UPDATES[@]}"; do
msg "Diff: %s" "$upd"
diff -u ${UPDATES[$upd]}
done

View File

@@ -64,6 +64,13 @@ optstring_apply_quirks() {
# one might install Arch from a Fedora environment), so let's remove it.
optstring_remove_option "$varname" seclabel
# Prune 'relatime' option for any pseudofs. This seems to be a rampant
# default which the kernel often exports even if the underlying filesystem
# doesn't support it. Example: https://bugs.archlinux.org/task/54554.
if awk -v fstype="$fstype" '$1 == fstype { exit 1 }' /proc/filesystems; then
optstring_remove_option "$varname" relatime
fi
case $fstype in
f2fs)
# These are Kconfig options for f2fs. Kernels supporting the options will

View File

@@ -11,6 +11,8 @@
version=@version@
chroot_version=@chroot_version@
LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
@@ -71,7 +73,7 @@ else
cache_dirs=(${cache_dir})
fi
basestrap_args=(-Gcd ${pacman_conf:+-C "$pacman_conf"})
basestrap_args=(-Gc ${pacman_conf:+-C "$pacman_conf"})
[[ -n ${mirror} ]] && basestrap_args+=(-M)
umask 0022
@@ -104,7 +106,7 @@ done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$')
env -i "${_env[@]}" \
basestrap "${basestrap_args[@]}" "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
echo "$version" > "$working_dir/.artools"
echo "$chroot_version" > "$working_dir/.artools"
default_locale "set" "$working_dir"

View File

@@ -19,29 +19,6 @@ import ${LIBDIR}/util-chroot.sh
shopt -s nullglob
init_variables() {
default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg)
makepkg_args=("${default_makepkg_args[@]}")
keepbuilddir=false
update_first=false
clean_first=false
run_namcap=false
temp_chroot=false
chrootdir=
passeddir=
makepkg_user=
declare -ga install_pkgs
declare -gi ret=0
bindmounts_ro=()
bindmounts_rw=()
copy=$USER
[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER
[[ -z "$copy" || $copy = root ]] && copy=copy
src_owner=${SUDO_USER:-$USER}
}
usage() {
echo "Usage: ${0##*/} [options] -r <chrootdir> [--] [makepkg args]"
echo ' Run this script in a PKGBUILD dir to build a package inside a'
@@ -169,7 +146,7 @@ prepare_chroot() {
local keepbuilddir=$3
local run_namcap=$4
$keepbuilddir || rm -rf "$copydir/build"
[[ $keepbuilddir = true ]] || rm -rf "$copydir/build"
local builduser_uid="${SUDO_UID:-$UID}"
local builduser_gid="$(id -g "$builduser_uid")"
@@ -208,9 +185,10 @@ EOF
{
printf '#!/bin/bash\n'
declare -f _chrootbuild
declare -p SOURCE_DATE_EPOCH 2>/dev/null || true
printf '_chrootbuild "$@" || exit\n'
if $run_namcap; then
if [[ $run_namcap = true ]]; then
declare -f _chrootnamcap
printf '_chrootnamcap || exit\n'
fi
@@ -221,10 +199,21 @@ EOF
# These functions aren't run in makechrootpkg,
# so no global variables
_chrootbuild() {
exec </dev/console
export LANG=en_US.UTF-8
# No coredumps
ulimit -c 0
# Work around chroot-run not giving a ctty
# exec </dev/console
. /etc/profile
sudo -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
export LANG=en_US.UTF-8
# workaround meson locale errors
# supposedly fixed with coming python-3.7
locale-gen &> /dev/null
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
}
_chrootnamcap() {
@@ -241,17 +230,16 @@ _chrootnamcap() {
# - USER
download_sources() {
local copydir=$1
local src_owner=$2
local makepkg_user=$2
local builddir="$(mktemp -d)"
local builddir
builddir="$(mktemp -d)"
chmod 1777 "$builddir"
# Ensure sources are downloaded
makepkg_user=${makepkg_user:-$SUDO_USER}
sudo -u "$makepkg_user" env SRCDEST="$SRCDEST" BUILDDIR="$builddir" \
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o ||
die "Could not download sources."
(( $? != 0 )) && die "Could not download sources."
makepkg --config="$copydir/etc/makepkg.conf" --verifysource -o ||
die "Could not download sources."
# Clean up garbage from verifysource
rm -rf "$builddir"
@@ -286,6 +274,11 @@ move_products() {
for s in "$copydir"/srcpkgdest/*; do
chown "$src_owner" "$s"
mv "$s" "$SRCPKGDEST"
# Fix broken symlink because of temporary chroot SRCPKGDEST /srcpkgdest
if [[ "$PWD" != "$SRCPKGDEST" && -L "$PWD/${s##*/}" ]]; then
ln -sf "$SRCPKGDEST/${s##*/}"
fi
done
}
# }}}
@@ -293,7 +286,26 @@ move_products() {
orig_argv=("$0" "$@")
main() {
init_variables
default_makepkg_args=(--syncdeps --noconfirm --log --holdver --skipinteg)
makepkg_args=("${default_makepkg_args[@]}")
keepbuilddir=false
update_first=false
clean_first=false
run_namcap=false
temp_chroot=false
chrootdir=
passeddir=
makepkg_user=
declare -ga install_pkgs
declare -gi ret=0
bindmounts_ro=()
bindmounts_rw=()
copy=$USER
[[ -n ${SUDO_USER:-} ]] && copy=$SUDO_USER
[[ -z "$copy" || $copy = root ]] && copy=copy
src_owner=${SUDO_USER:-$USER}
local opts='hcur:I:l:nTD:d:U:'
@@ -380,7 +392,7 @@ main() {
download_sources "$copydir" "$src_owner"
prepare_chroot "$copydir" "$USER_HOME" "$keepbuilddir"
prepare_chroot "$copydir" "$USER_HOME" "$keepbuilddir" "$run_namcap"
bindmounts_rw+=("${PWD}:/startdir" "${SRCDEST}:/srcdest")

View File

@@ -16,6 +16,8 @@ LIBDIR='@libdir@'
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
import ${LIBDIR}/util.sh
load_user_info
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
load_vars /etc/makepkg.conf
@@ -30,9 +32,5 @@ msg2 "Signing [%s] with key %s" "${file_to_sign##*/}" "${GPGKEY}..."
if [[ -n "${BUILDBOT_GPGP}" ]]; then
gpg --batch --passphrase "${BUILDBOT_GPGP}" --detach-sign "$file_to_sign"
else
if [[ -f /usr/bin/hellhound ]]; then
gpg --batch --passphrase $(hellhound retrieve) --detach-sign "$file_to_sign"
else
gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign"
fi
gpg --detach-sign --use-agent -u "${GPGKEY}" "$file_to_sign"
fi

View File

@@ -2,9 +2,6 @@
################ artools-base ###############
#############################################
# default taget arch: auto detect
# target_arch=$(uname -m)
# build dir where buildpkg or buildiso chroots are created
# chroots_dir=/var/lib/artools
@@ -15,14 +12,8 @@
################ artools-pkg ################
#############################################
# artix package tree
# repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
# host_tree_artix='https://github.com/artix-linux'
# archlinux package tree
# repo_tree_arch=('packages' 'community')
# host_tree_arch=git://projects.archlinux.org/svntogit
# default repos root
@@ -32,6 +23,9 @@
################ artools-iso ################
#############################################
# the iso storage directory
# iso_pool="${workspace_dir}/iso"
# the dist release; default: auto
# iso_version=$(date +%Y%m%d)
@@ -39,13 +33,16 @@
# initsys="openrc"
# unset defaults to given value
# kernel="linux-lts"
# kernel="linux"
# custom additional kernel args
# kernel_args=""
# gpg key; leave empty or commented to skip sfs signing
# gpgkey=""
# set upload bandwidth limit in kB/s
# limit=100
# uplimit=100
# the torrent tracker urls, comma separated
# tracker_url='udp://mirror.strits.dk:6969'

View File

@@ -6,4 +6,3 @@ artix-live-portable-efi
virtualbox-guest-modules-artix
virtualbox-guest-utils
linux-lts-headers

View File

@@ -59,6 +59,7 @@ ntfs-3g
>openrc nfs-utils-openrc
>openrc rsync-openrc
>openrc wpa_supplicant-openrc
>openrc opentmpfiles
os-prober
pacman
pciutils
@@ -77,7 +78,7 @@ texinfo
usbutils
util-linux
which
>x86_64 efibootmgr
efibootmgr
xfsprogs
zd1211-firmware
zsh

View File

@@ -8,8 +8,7 @@
# autologin="true"
# service runlevels
# openrc_boot=('elogind')
# openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# default values
# addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"

View File

@@ -1,12 +0,0 @@
autoconf-archive
confuse
libappindicator
libdbusmenu
libftdi
libindicator
libdbi
libpgm
libsodium
zeromq
jansson
libnewt

View File

@@ -1,3 +0,0 @@
lib32-glibc
gcc-multilib
llvm

View File

@@ -1,151 +0,0 @@
tzdata
iana-etc
linux-api-headers
binutils
glibc
gcc
attr
acl
ncurses
readline
bash
sed
diffutils
expat
db
lz4
lzo
bzip2
gmp
mpfr
m4
gdbm
xz
zlib
file
icu
perl
openssl
openssl-1.0
autoconf
automake
dash
bison
ldns
less
libaio
libarchive
libassuan
libcap
libedit
libevent
libffi
libgcrypt
libgpg-error
libgssglue
libidn
libksba
libmnl
libmpc
libnftnl
libnghttp2
libnl
libpcap
libpipeline
libpsl
librpcsecgss
libseccomp
libsecret
libssh2
libtasn1
libtirpc
libtool
libunistring
pcre
glib2
grep
gzip
bridge-utils
ca-certificates
ca-certificates-cacert
coreutils
cracklib
dialog
ding-libs
dnssec-anchors
dosfstools
e2fsprogs
ed
efibootmgr
efivar
elfutils
fakeroot
findutils
flex
gawk
gettext
gnutls
gpgme
groff
hdparm
hwids
ifenslave
iproute2
iputils
iw
jfsutils
kbd
keyutils
licenses
links
linux-atm
linux-firmware
make
man-pages
mkinitcpio-busybox
mkinitcpio-nfs-utils
nano
nettle
net-tools
nfsidmap
nilfs-utils
npth
nspr
nss
p11-kit
patch
pciutils
pinentry
pkcs11-helper
pkg-config
popt
pptpclient
procinfo-ng
psmisc
pth
reiserfsprogs
run-parts
sdparm
s-nail
sqlite
sysfsutils
syslinux
tar
texinfo
thin-provisioning-tools
traceroute
usbutils
vi
which
wireless-regdb
wireless_tools
wpa_actiond
xfsprogs
zd1211-firmware
archlinux-keyring
b43-fwcutter
ipw2100-fw
ipw2200-fw
isdn4k-utils
curl
sudo

View File

@@ -1,232 +0,0 @@
libasyncns
libblockdev
libbytesize
libcap-ng
libcroco
libdaemon
libdatrie
libdrm
libepoxy
libexif
libfontenc
libglvnd
libgphoto2
libical
libice
libieee1284
libimobiledevice
libiscsi
libjpeg-turbo
libomxil-bellagio
libpaper
libpciaccess
libplist
libpng
libproxy
librsvg
libsm
libthai
libtiff
libtxc_dxtn
libunwind
libusb-compat
libusbmuxd
libwebp
libx11
libxau
libxaw
libxcb
libxcomposite
libxcursor
libxdamage
libxdmcp
libxext
libxfixes
libxfont
libxfont2
libxft
libxi
libxinerama
libxkbcommon
libxkbfile
libxml2
libxmu
libxpm
libxrandr
libxrender
libxshmfence
libxslt
libxt
libxtst
libxxf86vm
libgusb
liblouis
libraqm
liblqr
libuv
libqmi
glib-networking
gsettings-desktop-schemas
slang
dhcp
dbus-python
lirc
qt5-3d
qt5-canvas3d
qt5-charts
qt5-connectivity
qt5-datavis3d
qt5-declarative
qt5-doc
qt5-examples
qt5-gamepad
qt5-graphicaleffects
qt5-imageformats
qt5-location
qt5-multimedia
qt5-networkauth
qt5-quickcontrols
qt5-quickcontrols2
qt5-remoteobjects
qt5-script
qt5-scxml
qt5-sensors
qt5-serialbus
qt5-serialport
qt5-speech
qt5-svg
qt5-tools
qt5-translations
qt5-virtualkeyboard
qt5-wayland
qt5-webchannel
qt5-webengine
qt5-webkit
qt5-websockets
qt5-webview
qt5-x11extras
qt5-xmlpatterns
adwaita-icon-theme
alsa-lib
apr
apr-util
atk
at-spi2-atk
at-spi2-core
boost
cairo
cantarell-fonts
check
compositeproto
damageproto
dbus-glib
dconf
desktop-file-utils
docbook-dsssl
docbook-sgml31
docbook-utils
docbook-xml
docbook-xsl
double-conversion
doxygen
eventlog
fixesproto
fontconfig
fontsproto
freetype2
gd
gdk-pixbuf2
ghostscript
giflib
gnome-common
gobject-introspection
gptfdisk
graphite
graphviz
gsfonts
gtk3
gtk-doc
gts
harfbuzz
hicolor-icon-theme
ijs
inputproto
intltool
itstool
jasper
jbig2dec
json-glib
kbproto
lcms2
mesa
mtdev
net-snmp
openjade
opensp
pango
parted
pcre2
perl-error
perl-xml-parser
perl-yaml
pixman
python2
python
python-appdirs
python-beaker
python-mako
python-markupsafe
python-packaging
python-pyparsing
python-setuptools
python-six
randrproto
recordproto
renderproto
serf
sgml-common
shared-mime-info
source-highlight
speexdsp
tslib
v4l-utils
vala
valgrind
volume_key
vte3
vte
wayland
wayland-protocols
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xextproto
xf86vidmodeproto
xineramaproto
xkeyboard-config
xorg-bdftopcf
xorg-fonts-alias
xorg-fonts-encodings
xorg-fonts-misc
xorg-font-util
xorg-font-utils
xorg-mkfontdir
xorg-mkfontscale
xorg-setxkbmap
xorg-xkbcomp
xproto
yelp-tools
yelp-xsl
cmake
jemalloc
jsoncpp
fribidi
js
imagemagick
poppler
bc
xdg-utils
xf86-input-libinput

View File

@@ -1,14 +0,0 @@
# mkinitcpio preset file for the 'linux' package
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-@kernel@-@arch@"
PRESETS=('default' 'fallback')
#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-@kernel@-@arch@.img"
#default_options=""
#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-@kernel@-@arch@-fallback.img"
fallback_options="-S autodetect"

View File

@@ -1,147 +0,0 @@
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="i686"
CHOST="i686-pc-linux-gnu"
#-- Compiler and Linker Flags
# -march (or -mcpu) builds exclusively for an architecture
# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
#-- optipng: Optimize PNG images with optipng
#-- debug: Add debugging flags as specified in DEBUG_* variables
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
# WARNING: Do NOT modify these variables unless you know what you are
# doing.
#
PKGEXT='.pkg.tar.xz'
SRCEXT='.src.tar.gz'
# vim: set ft=sh ts=2 sw=2 et:

View File

@@ -34,7 +34,7 @@ Architecture = auto
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -73,11 +73,9 @@ Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX
#
[extra]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -34,7 +34,7 @@ Architecture = auto
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -64,29 +64,33 @@ LocalFileSigLevel = Optional
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[system-testing]
[goblins]
Include = /etc/pacman.d/mirrorlist
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-testing]
[galaxy-goblins]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX
#
[staging]
Include = /etc/pacman.d/mirrorlist-arch
[testing]
Include = /etc/pacman.d/mirrorlist-arch
@@ -94,6 +98,9 @@ Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-staging]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch

96
data/pacman-gremlins.conf Normal file
View File

@@ -0,0 +1,96 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
#
# ARCHLINUX
#
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -34,7 +34,7 @@ Architecture = auto
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -64,38 +64,42 @@ LocalFileSigLevel = Optional
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[system-testing]
[goblins]
Include = /etc/pacman.d/mirrorlist
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world-testing]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-testing]
[galaxy-goblins]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32-goblins]
Include = /etc/pacman.d/mirrorlist
[lib32-testing]
[lib32-gremlins]
Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX
#
[staging]
Include = /etc/pacman.d/mirrorlist-arch
[testing]
Include = /etc/pacman.d/mirrorlist-arch
@@ -103,12 +107,18 @@ Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-staging]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-staging]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -0,0 +1,108 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Artix Linux
# packagers with `pacman-key --populate archlinux cromnix`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
[gremlins]
Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy-gremlins]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
[lib32-gremlins]
Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist
#
# ARCHLINUX
#
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -34,7 +34,7 @@ Architecture = auto
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists
VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -73,17 +73,12 @@ Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
[lib32]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
#
# ARCHLINUX
#
[extra]
Include = /etc/pacman.d/mirrorlist-arch

View File

@@ -1,5 +1,5 @@
--- /dev/null
+++ b/bash/artix.bashrc
+++ b/artix.bashrc
@@ -0,0 +1,46 @@
+use_color=true
+
@@ -47,3 +47,41 @@
+fi
+
+unset use_color safe_term match_lhs sh
--- a/dot.bashrc
+++ b/dot.bashrc
@@ -5,5 +5,5 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+# alias ls='ls --color=auto'
+# PS1='[\u@\h \W]\$ '
--- a/system.bashrc
+++ a/system.bashrc
@@ -1,5 +1,5 @@
#
-# /etc/bash.bashrc
+# /etc/bash/bashrc
#
# If not running interactively, don't do anything
@@ -19,4 +19,8 @@
;;
esac
+for sh in /etc/bash/bashrc.d/*.bashrc ; do
+ [[ -r ${sh} ]] && source "${sh}"
+done
+
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
--- a/system.bash_logout
+++ a/system.bash_logout
@@ -1,3 +1,3 @@
#
-# /etc/bash.bash_logout
+# /etc/bash/bash_logout
#

View File

@@ -1,11 +0,0 @@
--- a/bash/dot.bashrc
+++ b/bash/dot.bashrc
@@ -5,5 +5,5 @@
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
-alias ls='ls --color=auto'
-PS1='[\u@\h \W]\$ '
+# alias ls='ls --color=auto'
+# PS1='[\u@\h \W]\$ '

View File

@@ -1,19 +0,0 @@
--- a/bash/system.bashrc
+++ a/bash/system.bashrc
@@ -1,5 +1,5 @@
#
-# /etc/bash.bashrc
+# /etc/bash/bashrc
#
# If not running interactively, don't do anything
@@ -19,4 +19,8 @@
;;
esac
+for sh in /etc/bash/bashrc.d/*.bashrc ; do
+ [[ -r ${sh} ]] && source "${sh}"
+done
+
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion

View File

@@ -1,8 +0,0 @@
--- a/bash/system.bash_logout
+++ a/bash/system.bash_logout
@@ -1,3 +1,3 @@
#
-# /etc/bash.bash_logout
+# /etc/bash/bash_logout
#

View File

@@ -102,7 +102,7 @@ _mnt_dev() {
_verify_checksum() {
local _status
cd "/run/artix/bootmnt/${artixbasedir}/${arch}"
md5sum -c $1.md5 > /tmp/checksum.log 2>&1
sha512sum -c $1.sha512 > /tmp/checksum.log 2>&1
_status=$?
cd "${OLDPWD}"
return ${_status}
@@ -160,7 +160,7 @@ artix_mount_handler() {
if [[ "${checksum}" == "y" ]]; then
for fs in rootfs desktopfs livefs;do
if [[ -f "/run/artix/bootmnt/${artixbasedir}/${arch}/${fs}.sfs" ]]; then
if [[ -f "/run/artix/bootmnt/${artixbasedir}/${arch}/${fs}.md5" ]]; then
if [[ -f "/run/artix/bootmnt/${artixbasedir}/${arch}/${fs}.sha512" ]]; then
msg -n ":: Self-test requested, please wait..."
if _verify_checksum "${fs}"; then
msg "done. Checksum is OK, continue booting."
@@ -170,7 +170,7 @@ artix_mount_handler() {
launch_interactive_shell
fi
else
echo "ERROR: checksum=y option specified but ${artixbasedir}/${arch}/${fs}.md5 not found"
echo "ERROR: checksum=y option specified but ${artixbasedir}/${arch}/${fs}.sha512 not found"
launch_interactive_shell
fi
fi

View File

@@ -53,9 +53,8 @@ default_locale(){
if [[ ! -f "$mnt/etc/locale.gen.bak" ]];then
info "Setting locale ..."
mv "$mnt/etc/locale.gen" "$mnt/etc/locale.gen.bak"
printf '%s.UTF-8 UTF-8\n' en_US > "$mnt/etc/locale.gen"
printf 'LANG=%s.UTF-8\n' en_US > "$mnt/etc/locale.conf"
printf 'LC_MESSAGES=C\n' >> "$mnt/etc/locale.conf"
printf '%s.UTF-8 UTF-8\n' en_US de_DE > "$mnt/etc/locale.gen"
echo 'LANG=en_US.UTF-8.UTF-8' > "$mnt/etc/locale.conf"
fi
elif [[ $action == "reset" ]];then
if [[ -f "$mnt/etc/locale.gen.bak" ]];then

View File

@@ -13,6 +13,7 @@ declare -A pseudofs_types=([anon_inodefs]=1
[bdev]=1
[binfmt_misc]=1
[cgroup]=1
[cgroup2]=1
[configfs]=1
[cpuset]=1
[debugfs]=1
@@ -72,7 +73,7 @@ valid_number_of_base() {
mangle() {
local i= chr= out=
unset {a..f} {A..F}
local {a..f}= {A..F}=
for (( i = 0; i < ${#1}; i++ )); do
chr=${1:i:1}
@@ -91,7 +92,7 @@ mangle() {
unmangle() {
local i= chr= out= len=$(( ${#1} - 4 ))
unset {a..f} {A..F}
local {a..f}= {A..F}=
for (( i = 0; i < len; i++ )); do
chr=${1:i:1}

View File

@@ -52,6 +52,7 @@ configure_grub(){
sed -e "s|@arch@|${target_arch}|g" \
-e "s|@iso_label@|${iso_label}|" \
-e "s|@iso_name@|${iso_name}|g" \
-e "s|@kernel_args@|${kernel_args}|g" \
-i $conf
}

View File

@@ -44,21 +44,19 @@ load_profile(){
[[ -z ${password} ]] && password="artix"
if [[ -z ${addgroups} ]];then
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users"
addgroups="video,power,storage,optical,network,lp,scanner,wheel,users,audio"
fi
if [[ -z ${openrc_boot[@]} ]];then
openrc_boot=('elogind')
if [[ -z ${services[@]} ]];then
services=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
fi
if [[ -z ${openrc_default[@]} ]];then
openrc_default=('acpid' 'bluetooth' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
[[ ${displaymanager} != "none" ]] && services+=('xdm')
if [[ -z ${services_live[@]} ]];then
services_live=('artix-live' 'pacman-init')
fi
[[ ${displaymanager} != "none" ]] && openrc_default+=('xdm')
enable_live=('artix-live' 'pacman-init')
[[ -z ${netgroups_url} ]] && netgroups_url="https://raw.githubusercontent.com/artix-linux/netgroups/master"
return 0
@@ -84,9 +82,8 @@ write_live_session_conf(){
echo "addgroups='${addgroups}'" >> ${conf}
}
# $1: file name
load_pkgs(){
local pkglist="$1" arch="$2" init="$3" _kv="$4"
local pkglist="$1" init="$2" _kv="$3"
info "Loading Packages: [%s] ..." "${pkglist##*/}"
local _init="s|>$init||g"
@@ -96,13 +93,6 @@ load_pkgs(){
'runit') _init_rm1="s|>s6.*||g"; _init_rm2="s|>openrc.*||g" ;;
esac
local _arch="s|>x86_64||g" _arch_rm="s|>i686.*||g"
if [[ "$arch" == 'i686' ]];then
_arch="s|>i686||g"
_arch_rm="s|>x86_64.*||g"
fi
local _blacklist="s|>blacklist.*||g" \
_kernel="s|KERNEL|$_kv|g" \
_space="s| ||g" \
@@ -116,8 +106,6 @@ load_pkgs(){
| sed "$_init" \
| sed "$_init_rm1" \
| sed "$_init_rm2" \
| sed "$_arch" \
| sed "$_arch_rm" \
| sed "$_kernel" \
| sed "$_clean"))
}

View File

@@ -17,7 +17,7 @@ connect(){
gen_webseed(){
local webseed seed="$1"
for mirror in ${host_mirrors[@]};do
webseed=${webseed:-}${webseed:+,}"http://${mirror}.dl.${seed}"
webseed=${webseed:-}${webseed:+,}"https://${mirror}.dl.${seed}"
done
echo ${webseed}
}
@@ -27,9 +27,10 @@ make_torrent(){
if [[ -n $(find ${src_dir} -type f -name "*.iso") ]]; then
for iso in $(ls ${src_dir}/*.iso);do
local seed=${file_host}/project/${project}/${target_dir}/${iso##*/}
local seed=${file_host}/project/${project}${target_dir}${iso##*/}
local mktorrent_args=(-c "${torrent_meta}" -p -l ${piece_size} -a ${tracker_url} -w $(gen_webseed ${seed}))
${verbose} && mktorrent_args+=(-v)
info "mktorrent_args: %s" "${mktorrent_args[@]}"
msg2 "Creating (%s) ..." "${iso##*/}.torrent"
mktorrent ${mktorrent_args[*]} -o ${iso}.torrent ${iso}
done
@@ -38,7 +39,7 @@ make_torrent(){
prepare_transfer(){
target_dir="/iso/${profile}/"
src_dir="${cache_dir_iso}/${profile}/"
src_dir="${iso_pool}/${profile}/"
${torrent} && make_torrent
}

View File

@@ -9,24 +9,14 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
get_preset(){
local p=${tmp_dir}/${kernel}.preset
cp ${DATADIR}/linux.preset $p
sed -e "s|@kernel@|$kernel|g" \
-e "s|@arch@|${target_arch}|g"\
-i $p
echo $p
}
write_bootloader_conf(){
local conf="$1/bootloader.conf" efi_boot_loader='grub'
local conf="$1/bootloader.conf"
msg2 "Writing %s ..." "${conf##*/}"
source "$(get_preset)"
echo '---' > "$conf"
echo "efiBootLoader: \"${efi_boot_loader}\"" >> "$conf"
echo "kernel: \"${ALL_kver#*/boot}\"" >> "$conf"
echo "img: \"${default_image#*/boot}\"" >> "$conf"
echo "fallback: \"${fallback_image#*/boot}\"" >> "$conf"
echo "efiBootLoader: \"grub\"" >> "$conf"
echo "kernel: \"/vmlinuz-$kernel-${target_arch}\"" >> "$conf"
echo "img: \"/initramfs-$kernel-${target_arch}.img\"" >> "$conf"
echo "fallback: \"/initramfs-$kernel-${target_arch}-fallback.img\"" >> "$conf"
echo 'timeout: "10"' >> "$conf"
echo "kernelLine: \", with ${kernel}\"" >> "$conf"
echo "fallbackKernelLine: \", with ${kernel} (fallback initramfs)\"" >> "$conf"
@@ -43,11 +33,7 @@ write_servicescfg_conf(){
echo '' >> "$conf"
echo 'services:' >> "$conf"
echo ' enabled:' >> "$conf"
for s in ${openrc_boot[@]};do
echo " - name: $s" >> "$conf"
echo ' runlevel: boot' >> "$conf"
done
for s in ${openrc_default[@]};do
for s in ${services[@]};do
echo " - name: $s" >> "$conf"
echo ' runlevel: default' >> "$conf"
done
@@ -86,17 +72,33 @@ write_netinstall_conf(){
echo "groupsUrl: ${netgroups}" >> "$conf"
}
write_unpack_conf(){
local conf="$1/unpackfs.conf"
msg2 "Writing %s ..." "${conf##*/}"
echo "---" > "$conf"
echo "unpack:" >> "$conf"
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/rootfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
if [[ -f "${desktop_list}" ]] ; then
echo " - source: \"/run/${iso_name}/bootmnt/${iso_name}/${target_arch}/desktopfs.sfs\"" >> "$conf"
echo " sourcefs: \"squashfs\"" >> "$conf"
echo " destination: \"\"" >> "$conf"
fi
}
configure_calamares(){
local modules_dir="$1"
if [[ -d $modules_dir ]];then
local dest="$1" mods="$1/etc/calamares/modules"
if [[ -d $dest/etc/calamares/modules ]];then
info "Configuring [Calamares]"
write_users_conf "$modules_dir"
write_netinstall_conf "$modules_dir"
write_initcpio_conf "$modules_dir"
write_netinstall_conf "$mods"
write_unpack_conf "$mods"
write_users_conf "$mods"
write_initcpio_conf "$mods"
case ${initsys} in
'openrc') write_servicescfg_conf "$modules_dir" ;;
'openrc') write_servicescfg_conf "$mods" ;;
esac
write_bootloader_conf "$modules_dir"
write_bootloader_conf "$mods"
info "Done configuring [Calamares]"
fi
}

View File

@@ -86,9 +86,9 @@ error_function() {
# $1: function
run_log(){
local func="$1"
local func="$1" log_dir='/var/log/artools'
local logfile=${log_dir}/$(gen_iso_fn).$func.log
logpipe=$(mktemp -u "${tmp_dir}/$func.pipe.XXXXXXXX")
logpipe=$(mktemp -u "/tmp/$func.pipe.XXXXXXXX")
mkfifo "$logpipe"
tee "$logfile" < "$logpipe" &
local teepid=$!
@@ -165,14 +165,11 @@ configure_services(){
info "Configuring [%s]" "${initsys}"
case ${initsys} in
'openrc')
for svc in ${openrc_boot[@]}; do
add_svc_rc "$mnt" "$svc" "boot"
done
for svc in ${openrc_default[@]}; do
for svc in ${services[@]}; do
[[ $svc == "xdm" ]] && set_xdm "$mnt"
add_svc_rc "$mnt" "$svc" "default"
done
for svc in ${enable_live[@]}; do
for svc in ${services_live[@]}; do
add_svc_rc "$mnt" "$svc" "default"
done
;;
@@ -245,7 +242,7 @@ configure_live_image(){
configure_hosts "$fs"
configure_system "$fs"
configure_services "$fs"
configure_calamares "$fs/etc/calamares/modules"
configure_calamares "$fs"
write_live_session_conf "$fs"
msg "Done configuring [livefs]"
}
@@ -262,9 +259,9 @@ make_sig () {
make_checksum(){
local idir="$1" file="$2"
msg2 "Creating md5sum ..."
msg2 "Creating sha512sum ..."
cd $idir
md5sum $file.sfs > $file.md5
sha512sum $file.sfs > $file.sha512
cd ${OLDPWD}
}
@@ -282,8 +279,8 @@ make_sfs() {
msg "Generating SquashFS image for %s" "${src}"
if [[ -f "${sfs}" ]]; then
local has_changed_dir=$(find ${src} -newer ${sfs})
msg2 "Possible changes for %s ..." "${src}" >> ${tmp_dir}/buildiso.debug
msg2 "%s" "${has_changed_dir}" >> ${tmp_dir}/buildiso.debug
msg2 "Possible changes for %s ..." "${src}" >> /tmp/buildiso.debug
msg2 "%s" "${has_changed_dir}" >> /tmp/buildiso.debug
if [[ -n "${has_changed_dir}" ]]; then
msg2 "SquashFS image %s is not up to date, rebuilding..." "${sfs}"
rm "${sfs}"
@@ -524,14 +521,14 @@ compress_images(){
prepare_images(){
local timer=$(get_timer)
load_pkgs "${root_list}" "${target_arch}" "${initsys}" "${kernel}"
load_pkgs "${root_list}" "${initsys}" "${kernel}"
run_safe "make_rootfs"
if [[ -f "${desktop_list}" ]] ; then
load_pkgs "${desktop_list}" "${target_arch}" "${initsys}" "${kernel}"
load_pkgs "${desktop_list}" "${initsys}" "${kernel}"
run_safe "make_desktopfs"
fi
if [[ -f ${live_list} ]]; then
load_pkgs "${live_list}" "${target_arch}" "${initsys}" "${kernel}"
load_pkgs "${live_list}" "${initsys}" "${kernel}"
run_safe "make_livefs"
fi
run_safe "make_bootfs"

View File

@@ -8,61 +8,22 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
export LC_MESSAGES=C
# export LC_MESSAGES=C
export LANG=C
declare ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
source /usr/share/makepkg/util.sh
if [[ -t 2 ]]; then
# prefer terminal safe colored and bold text when tput is supported
if tput setaf 0 &>/dev/null; then
ALL_OFF="$(tput sgr0)"
BOLD="$(tput bold)"
RED="${BOLD}$(tput setaf 1)"
GREEN="${BOLD}$(tput setaf 2)"
YELLOW="${BOLD}$(tput setaf 3)"
BLUE="${BOLD}$(tput setaf 4)"
else
ALL_OFF="\e[0m"
BOLD="\e[1m"
RED="${BOLD}\e[31m"
GREEN="${BOLD}\e[32m"
YELLOW="${BOLD}\e[33m"
BLUE="${BOLD}\e[34m"
fi
colorize
else
declare -gr ALL_OFF='' BOLD='' BLUE='' GREEN='' RED='' YELLOW=''
fi
readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
plain() {
local mesg=$1; shift
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg() {
local mesg=$1; shift
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg2() {
local mesg=$1; shift
printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
info() {
local mesg=$1; shift
printf "${YELLOW} -->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
warning() {
local mesg=$1; shift
printf "${YELLOW}==> WARNING:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
error() {
local mesg=$1; shift
printf "${RED}==> ERROR:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
stat_busy() {
local mesg=$1; shift
printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}...${ALL_OFF}" "$@" >&2
@@ -117,7 +78,17 @@ die() {
msg_table_header(){
local mesg=$1; shift
printf "${GREEN} ${mesg} ${ALL_OFF}\n" "$@" >&2
printf "${BLUE} ${mesg} ${ALL_OFF}\n" "$@" >&2
}
msg_row_downgrade(){
local mesg=$1; shift
printf "${YELLOW} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg_row_notify(){
local mesg=$1; shift
printf "${GREEN} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg_row(){
@@ -125,9 +96,9 @@ msg_row(){
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
}
msg_row_update(){
msg_row_upgrade(){
local mesg=$1; shift
printf "${RED}${BOLD} ${mesg} ${ALL_OFF}\n" "$@" >&2
printf "${RED}${RED} ${mesg} ${ALL_OFF}\n" "$@" >&2
}
import(){

View File

@@ -1,71 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
import ${LIBDIR}/util-pkg.sh
del_from_repo(){
local repo="$1" destarch="$2" pkg="$3" ver result
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if ! result=$(find_cached_package "$name" "$ver" "$CARCH");then
cd $repo_path
repo-remove -R $repo.db.tar.xz $name
fi
done
}
move_to_repo(){
local repo_src="$1" repo_dest="$2" repo_arch="$3"
local repo_path=${repos_root}/$repo_src/os/$repo_arch
local src=$PWD
local filelist=${workspace_dir}/$repo_src.files.txt
local pkglist=${workspace_dir}/$repo_src.pkgs.txt
[[ -n ${PKGDEST} ]] && src=${PKGDEST}
cd $repo_path
msg "Writing repo lists [%s]" "$repo_src"
ls *.pkg.tar.xz{,.sig} > $filelist
ls *.pkg.tar.xz > $pkglist
# uncomment for local test run
# rsync -v --files-from="$filelist" $repo_path "$src"
rm -v *
repo-add $repo_src.db.tar.xz
repo_path=${repos_root}/$repo_dest/os/$repo_arch
local move=$(cat $filelist) pkgs=$(cat $pkglist)
msg "Reading repo lists [%s]" "$repo_dest"
for f in ${move[@]};do
ln -sfv $src/$f $repo_path/
done
cd $repo_path
repo-add -R $repo_dest.db.tar.xz ${pkgs[@]}
}
add_to_repo(){
local repo="$1" destarch="$2" pkg="$3" ver pkgfile result
local repo_path=${repos_root}/$repo/os/$destarch
source $pkg/PKGBUILD
local dest=$pkg
for name in ${pkgname[@]};do
[[ $arch == any ]] && CARCH=any
ver=$(get_full_version $name)
if ! result=$(find_cached_package "$name" "$ver" "$CARCH"); then
pkgfile=$name-$ver-$CARCH.pkg.tar.xz
[[ -n ${PKGDEST} ]] && dest=${PKGDEST}/$pkgfile
[[ -e $dest.sig ]] && rm $dest.sig
signfile $dest
ln -sf $dest{,.sig} $repo_path/
cd $repo_path
repo-add -R $repo.db.tar.xz $pkgfile
fi
done
}

View File

@@ -1,236 +0,0 @@
#!/bin/bash
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
get_local_head(){
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
}
get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
show_version_table(){
declare -A UPDATES
msg_table_header "%-30s %-30s %-30s %-30s" "Repository" "Package" "Artix version" "Arch version"
for repo in ${repo_tree_artix[@]}; do
for pkg in ${tree_dir_artix}/$repo/*; do
if [[ -f $pkg/PKGBUILD ]];then
source $pkg/PKGBUILD 2>/dev/null
package=${pkg##*/}
artixver=$(get_full_version $package)
set_import_path "$repo" "$package"
if [[ -f $src/PKGBUILD ]];then
source $src/PKGBUILD 2>/dev/null
archver=$(get_full_version $package)
fi
if [ $(vercmp $artixver $archver) -lt 0 ];then
UPDATES[$package]="$pkg/PKGBUILD $src/PKGBUILD"
msg_row_update "%-30s %-30s %-30s %-30s" "$repo" "$package" "$artixver" "$archver"
fi
fi
unset pkgver epoch pkgrel artixver archver package
done
done
rm ${patches_dir}/*.patch
for upd in "${!UPDATES[@]}"; do
msg "Writing %s update patch ..." "$upd"
diff -u ${UPDATES[$upd]} > ${patches_dir}/"$upd"-archlinux.patch
done
}
sync_tree(){
local branch="master" repo="$1"
git checkout $branch
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
local timer=$(get_timer)
msg "Checking [%s] ..." "$repo"
msg2 "local: %s" "${local_head}"
msg2 "remote: %s" "${remote_head}"
if [[ "${local_head}" == "${remote_head}" ]]; then
info "nothing to do"
else
info "needs sync"
git pull origin $branch
fi
msg "Done [%s]" "$repo"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
clone_tree(){
local timer=$(get_timer) repo="$1" host_tree="$2"
msg "Preparing [%s] ..." "$repo"
info "clone"
git clone $host_tree.git
msg "Done [%s]" "$repo"
show_elapsed_time "${FUNCNAME}" "${timer}"
}
sync_tree_arch(){
cd ${tree_dir_arch}
for repo in ${repo_tree_arch[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_arch}/${repo}"
fi
done
cd ..
}
sync_tree_artix(){
cd ${tree_dir_artix}
for repo in ${repo_tree_artix[@]};do
if [[ -d ${repo} ]];then
cd ${repo}
sync_tree "${repo}"
cd ..
else
clone_tree "${repo}" "${host_tree_artix}/${repo}"
fi
done
cd ..
}
read_import_list(){
local repo="$1"
local _space="s| ||g" _clean=':a;N;$!ba;s/\n/ /g' _com_rm="s|#.*||g"
import_list=$(sed "$_com_rm" "${list_dir_import}/$repo.list" | sed "$_space" | sed "$_clean")
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
patch_pkg(){
local pkg="$1"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/PKGBUILD
;;
'bash')
sed -e 's|system.bash_logout)|system.bash_logout\n artix.bashrc)|' \
-e 's|etc/bash.|etc/bash/|g' \
-e 's|install -dm755 "$pkgdir"/etc/skel/|install -dm755 "$pkgdir"/etc/{skel,bash/bashrc.d}/|' \
-e 's|/etc/skel/.bash_logout|/etc/skel/.bash_logout\n install -m644 artix.bashrc "$pkgdir"/etc/bash/bashrc.d/artix.bashrc|' \
-i $pkg/PKGBUILD
patch -p1 -i $DATADIR/patches/dot-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc.patch
patch -p1 -i $DATADIR/patches/system-bashrc_logout.patch
patch -p1 -i $DATADIR/patches/artix-bashrc.patch
cd $pkg
updpkgsums
cd ..
;;
esac
}
set_import_path(){
local arch_dir arch_repo import_path
local repo="$1" pkg="$2"
case $repo in
system|world)
if [[ "$repo" == 'system' ]];then
arch_repo=core
arch_dir=packages
fi
if [[ "$repo" == 'world' ]];then
arch_repo=extra
arch_dir=packages
fi
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
if [[ -d $import_path/$arch_repo-any ]];then
src=$import_path/$arch_repo-any
elif [[ -d $import_path/testing-x86_64 ]];then
src=$import_path/testing-x86_64
elif [[ -d $import_path/testing-any ]];then
src=$import_path/testing-any
fi
;;
galaxy)
arch_repo=community
arch_dir=$arch_repo
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos/$arch_repo
src=$import_path-x86_64
if [[ -d $import_path-any ]];then
src=$import_path-any
elif [[ -d $import_path-testing-x86_64 ]];then
src=$import_path-testing-x86_64
elif [[ -d $import_path-testing-any ]];then
src=$import_path-testing-any
fi
;;
lib32)
if [[ "$pkg" == 'llvm' ]];then
arch_repo=extra
arch_dir=packages
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/extra-x86_64
if [[ -d $import_path/testing-x86_64 ]];then
src=$import_path/testing-x86_64
fi
else
arch_repo=multilib
arch_dir=community
import_path=${tree_dir_arch}/$arch_dir/$pkg/repos
src=$import_path/$arch_repo-x86_64
if [[ -d $import_path/$arch_repo-testing-x86_64 ]];then
src=$import_path/$arch_repo-testing-x86_64
fi
fi
;;
esac
}
import_from_arch(){
local timer=$(get_timer) branch='testing' push="$1"
for repo in ${repo_tree_artix[@]};do
read_import_list "$repo"
if [[ -n ${import_list[@]} ]];then
cd ${tree_dir_artix}/$repo
git checkout $branch &> /dev/null
$(is_dirty) && die "[%s] has uncommited changes!" "${repo}"
git pull origin "$branch"
msg "Import into [%s]" "$repo"
for pkg in ${import_list[@]};do
source $pkg/PKGBUILD 2>/dev/null
local ver=$(get_full_version $pkg)
msg2 "package: %s-%s" "$pkg" "$ver"
set_import_path "$repo" "$pkg"
rsync "${rsync_args[@]}" $src/ ${tree_dir_artix}/$repo/$pkg/
if $(is_dirty) || $(is_untracked); then
patch_pkg "$pkg"
${push} && git add "$pkg"
msg2 "Archlinux import: [%s]" "$pkg-$ver"
if ${push};then
git commit -m "Archlinux import: $pkg-$ver"
sleep 10
git push origin "$branch"
fi
fi
unset pkgver epoch pkgrel ver
done
fi
done
show_elapsed_time "${FUNCNAME}" "${timer}"
}

View File

@@ -9,13 +9,190 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
in_array() {
local needle=$1; shift
local item
for item in "$@"; do
[[ $item = $needle ]] && return 0 # Found
done
return 1 # Not Found
get_local_head(){
echo $(git log --pretty=%H ...refs/heads/$1^ | head -n 1)
}
get_remote_head(){
echo $(git ls-remote origin -h refs/heads/$1 | cut -f1)
}
is_dirty() {
[[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]] || return 1
return 0
}
is_untracked(){
[[ $(git ls-files --others --exclude-standard) != "" ]] || return 1
return 0
}
patch_pkg(){
local pkg="$1" repo="$2"
case $pkg in
'glibc')
sed -e 's|{locale,systemd/system,tmpfiles.d}|{locale,tmpfiles.d}|' \
-e '/nscd.service/d' \
-i $pkg/trunk/PKGBUILD
;;
'tp_smapi'|'acpi_call'|'r8168'|'bbswitch')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
;;
'nvidia')
sed -e 's|-ARCH|-ARTIX|g' -e 's|for Arch kernel|for Artix kernel|g' \
-e 's|for LTS Arch kernel|for LTS Artix kernel|g' \
-i $pkg/trunk/PKGBUILD
;;
'linux')
sed -e 's|-ARCH|-ARTIX|g' -i $pkg/trunk/PKGBUILD
sed -e 's|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION="-ARTIX"|' \
-e 's|CONFIG_DEFAULT_HOSTNAME=.*|CONFIG_DEFAULT_HOSTNAME="artixlinux"|' \
-i $pkg/trunk/config
cd $pkg/trunk
updpkgsums
cd ../..
;;
'licenses')
sed -e 's|https://www.archlinux.org/|https://www.artixlinux.org/|' -i $pkg/trunk/PKGBUILD
;;
'bash')
sed -e 's|system.bash_logout)|system.bash_logout artix.bashrc)|' \
-e "s|etc/bash.|etc/bash/|g" \
-e 's|"$pkgdir/etc/skel/.bash_logout"|"$pkgdir/etc/skel/.bash_logout"\n install -Dm644 artix.bashrc $pkgdir/etc/bash/bashrc.d/artix.bashrc|' \
-i $pkg/trunk/PKGBUILD
cd $pkg/trunk
patch -Np 1 -i ${DATADIR}/patches/artix-bash.patch
updpkgsums
cd ../..
;;
esac
}
find_tree(){
local tree="$1" pkg="$2"
local result=$(find $tree -mindepth 2 -maxdepth 2 -type d -name "$pkg")
result=${result%/*}
echo ${result##*/}
}
clone_tree(){
local timer=$(get_timer) host_tree="$1"
git clone $host_tree.git
show_elapsed_time "${FUNCNAME}" "${timer}"
}
pull_tree(){
local branch="master"
local local_head=$(get_local_head "$branch")
local remote_head=$(get_remote_head "$branch")
if [[ "${local_head}" == "${remote_head}" ]]; then
msg2 "remote changes: no"
else
msg2 "remote changes: yes"
git pull origin "$branch"
fi
}
push_tree(){
local branch="master"
git push origin "$branch"
}
get_import_path(){
local tree="$1" import_path=
case $tree in
packages) import_path=${tree_dir_arch}/packages ;;
packages-galaxy) import_path=${tree_dir_arch}/community ;;
esac
echo $import_path
}
is_valid_repo(){
local src="$1"
case $src in
core|extra|community|multilib|testing|staging|community-testing|community-staging|multilib-testing|multilib-staging|trunk) return 0 ;;
*) return 1 ;;
esac
}
find_repo(){
local pkg="$1" repo=
if [[ -d $pkg/repos/core-x86_64 ]];then
repo=core-x86_64
elif [[ -d $pkg/repos/core-any ]];then
repo=core-any
fi
if [[ -d $pkg/repos/extra-x86_64 ]];then
repo=extra-x86_64
elif [[ -d $pkg/repos/extra-any ]];then
repo=extra-any
fi
if [[ -d $pkg/repos/testing-x86_64 ]];then
repo=testing-x86_64
elif [[ -d $pkg/repos/testing-any ]];then
repo=testing-any
fi
if [[ -d $pkg/repos/staging-x86_64 ]];then
repo=staging-x86_64
elif [[ -d $pkg/repos/staging-any ]];then
repo=staging-any
fi
if [[ -d $pkg/repos/community-x86_64 ]];then
repo=community-x86_64
elif [[ -d $pkg/repos/community-any ]];then
repo=community-any
fi
if [[ -d $pkg/repos/community-testing-x86_64 ]];then
repo=community-testing-x86_64
elif [[ -d $pkg/repos/community-testing-any ]];then
repo=community-testing-any
fi
if [[ -d $pkg/repos/community-staging-x86_64 ]];then
repo=community-staging-x86_64
elif [[ -d $pkg/repos/community-staging-any ]];then
repo=community-staging-any
fi
if [[ -d $pkg/repos/multilib-x86_64 ]];then
repo=multilib-x86_64
fi
if [[ -d $pkg/repos/multilib-testing-x86_64 ]];then
repo=multilib-testing-x86_64
fi
if [[ -d $pkg/repos/multilib-staging-x86_64 ]];then
repo=multilib-staging-x86_64
fi
echo $repo
}
arch_to_artix_repo(){
local repo="$1"
case $repo in
core-*) repo=system ;;
extra-*) repo=world ;;
community-x86_64|community-any) repo=galaxy ;;
multilib-x86_64) repo=lib32 ;;
testing-*) repo=gremlins ;;
staging-*) repo=goblins ;;
multilib-testing-x86_64) repo=lib32-gremlins ;;
multilib-staging-x86_64) repo=lib32-goblins ;;
community-testing-*) repo=galaxy-gremlins ;;
community-staging-*) repo=galaxy-goblins ;;
esac
echo $repo
}
# $1: sofile
@@ -45,39 +222,15 @@ pkgver_equal() {
fi
}
get_full_version() {
# set defaults if they weren't specified in buildfile
pkgbase=${pkgbase:-${pkgname[0]}}
epoch=${epoch:-0}
if [[ -z $1 ]]; then
if [[ $epoch ]] && (( ! $epoch )); then
echo $pkgver-$pkgrel
else
echo $epoch:$pkgver-$pkgrel
fi
else
for i in pkgver pkgrel epoch; do
local indirect="${i}_override"
eval $(declare -f package_$1 | sed -n "s/\(^[[:space:]]*$i=\)/${i}_override=/p")
[[ -z ${!indirect} ]] && eval ${indirect}=\"${!i}\"
done
if (( ! $epoch_override )); then
echo $pkgver_override-$pkgrel_override
else
echo $epoch_override:$pkgver_override-$pkgrel_override
fi
fi
}
find_cached_package() {
local searchdirs=("$PWD" "$PKGDEST") results=()
local searchdirs=("$PKGDEST" "$PWD") results=()
local targetname=$1 targetver=$2 targetarch=$3
local dir pkg pkgbasename name ver rel arch r results
for dir in "${searchdirs[@]}"; do
[[ -d $dir ]] || continue
for pkg in "$dir"/*.pkg.tar.xz; do
for pkg in "$dir"/*.pkg.tar.?z; do
[[ -f $pkg ]] || continue
# avoid adding duplicates of the same inode
@@ -87,7 +240,7 @@ find_cached_package() {
# split apart package filename into parts
pkgbasename=${pkg##*/}
pkgbasename=${pkgbasename%.pkg.tar?(.?z)}
pkgbasename=${pkgbasename%.pkg.tar.?z}
arch=${pkgbasename##*-}
pkgbasename=${pkgbasename%-"$arch"}
@@ -110,7 +263,7 @@ find_cached_package() {
return 1
;;
1)
printf '%s\n' "$results"
printf '%s\n' "${results[0]}"
return 0
;;
*)

View File

@@ -27,7 +27,7 @@ load_vars() {
[[ -f $1 ]] || return 1
for var in {SRC,SRCPKG,PKG,LOG}DEST MAKEFLAGS PACKAGER CARCH GPGKEY; do
[[ -z ${!var} ]] && eval $(grep -a "^${var}=" "$1")
[[ -z ${!var:-} ]] && eval "$(grep -a "^${var}=" "$1")"
done
return 0
@@ -54,14 +54,10 @@ get_osid(){
init_artools_base(){
[[ -z ${target_arch} ]] && target_arch=$(uname -m)
target_arch=$(uname -m)
[[ -z ${chroots_dir} ]] && chroots_dir='/var/lib/artools'
log_dir='/var/log/artools'
tmp_dir='/tmp'
[[ -z ${workspace_dir} ]] && workspace_dir=/home/${OWNER}/artools-workspace
prepare_dir "${workspace_dir}"
@@ -71,33 +67,23 @@ init_artools_pkg(){
[[ -z ${tree_dir_artix} ]] && tree_dir_artix=${workspace_dir}/artix
[[ -z ${repo_tree_artix[@]} ]] && repo_tree_artix=('system' 'world' 'galaxy' 'lib32')
[[ -z ${host_tree_artix} ]] && host_tree_artix='https://github.com/artix-linux'
[[ -z ${tree_dir_arch} ]] && tree_dir_arch=${workspace_dir}/archlinux
[[ -z ${repo_tree_arch} ]] && repo_tree_arch=('packages' 'community')
[[ -z ${host_tree_arch} ]] && host_tree_arch='git://projects.archlinux.org/svntogit'
list_dir_import="${SYSCONFDIR}/import.list.d"
[[ -d ${AT_USERCONFDIR}/import.list.d ]] && list_dir_import=${AT_USERCONFDIR}/import.list.d
chroots_pkg="${chroots_dir}/buildpkg"
[[ -z ${patches_dir} ]] && patches_dir=${workspace_dir}/archlinux-patches
[[ -z ${repos_root} ]] && repos_root="${workspace_dir}/repos"
}
init_artools_iso(){
chroots_iso="${chroots_dir}/buildiso"
cache_dir_iso="${workspace_dir}/iso"
[[ -z ${iso_pool} ]] && iso_pool="${workspace_dir}/iso"
prepare_dir "${cache_dir_iso}"
prepare_dir "${iso_pool}"
profile='base'
@@ -109,7 +95,9 @@ init_artools_iso(){
[[ -z ${initsys} ]] && initsys="openrc"
[[ -z ${kernel} ]] && kernel="linux-lts"
[[ -z ${kernel} ]] && kernel="linux"
[[ -z ${kernel_args} ]] && kernel_args=""
[[ -z ${gpgkey} ]] && gpgkey=''