summaryrefslogtreecommitdiff
path: root/configs/releng/build.sh
AgeCommit message (Collapse)Author
2012-06-24Use a default pacman.conf to build releng imagesPierre Schmitz
This ensures we do not pick up any testing or third party repos from the host. Signed-off-by: Pierre Schmitz <pierre@archlinux.de> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-06-24Fix creation of [core] repositoryPierre Schmitz
* Download and add package signatures to the repository database * Support any number of configured package caches Signed-off-by: Pierre Schmitz <pierre@archlinux.de> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-06-24Use pci.ids from the root image instead of downloading it every timePierre Schmitz
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-06-24Use mirror_status to rank mirrorsPierre Schmitz
Signed-off-by: Pierre Schmitz <pierre@archlinux.de> Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-10[configs/releng] Add UEFI boot support via Linux >= 3.3 EFI boot stub on x86_64Gerardo Exequiel Pozzi
Makes an efiboot.img (FAT16) for "El Torito" (additional). Under an EFI-system, implies that this .ISO works only if is used as "CD-ROM/DVD-ROM" not in ISO-HYBRID-MBR mode. If you want, an EFI-ready USB-key, just unpack this "<ISO>/EFI/efiboot.img" (FAT16) to "<USB-key-FAT-formatted>/EFI" then copy "<ISO>/arch" and setup the filesystem label. An aditional EFI shell is provided with an startup script for automatic booting until EFI_STUB supports "linux.conf" to pass boot parms to kernel. Anyway I think that is a good idea to keep this shell, so can customize boot parms, or for doing other tasks on systems without an EFI-shell. RFCv1: Initial efiboot.img build with vmlinuz.efi (Linux with EFI_STUB enabled) and archiso.img (initramfs). RFCv2: Use an startup.nsh with EFI-Shell 2.0 (generated from build.sh) for automatic boot. RFCv3: Use and older EFI-Shell 1.0 instead of 2.0, since not all UEFI-systems are compatible with 2.3+ specs. RFCv4: The script "startup.nsh" improved by Keshav P R, using a for-loop (see notes below from original commit), now that has more than 1-line, I moved it to an independent file and is parsed by build.sh. ---- About startup.nsh: Author: Keshav P R <the.ridikulus.rat@gmail.com> Date: Thu Apr 5 10:33:20 2012 +0530 [configs/releng] Search in all existing UEFI FS mountpoints for archiso efistub kernel file There is no guarantee that the efistub kernel will always be in fs0: (similar to the case inside linux OS where the sda, sdb confusion exists, hence the need for UUIDs), especially when USB (instead os CD/ISO) is used for booting. Hence loop through all possible fs mountpoints (in UEFI) in startup.nsh and try to launch the first mountpoint that contains the archiso files. Cd's into the fs%m:\EFI\archiso directory also may remove future issues with efistub's linux.conf where the efistub might have problems identifying the directory from which the kernel was launched. Also add an helpful echo message showing the user the UEFI PATH to the archiso kernel file being launched by startup.nsh . Hopefully this should work in both CD and USB. Tested in Tianocore UDK/EDK2 DuetPkg X64 UEFI 2.3.1 firmware with EdkShellBinPkg's Shell. ---- Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-10[configs/releng] Remove pkglist.repo-core.* from non core-dual images.Gerardo Exequiel Pozzi
They are present by mistake. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-04-09[configs/releng] Generate list of packages.Gerardo Exequiel Pozzi
* For installed packages on live-enviroment use mkarchiso pkglist command. * For packages in [core] repo in core.iso, make a list of them during repo generation. It uses the same format like done by pkglist command: <repo>/<package>-<version> (anyway repo is always core in this case). Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-17[configs/releng] Use installed locale.gen instead of local copy.Gerardo Exequiel Pozzi
Now we can do this, since nobody touches this file before this step. (previously by mkarchroot) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-17[configs/releng] Add new build mode: allGerardo Exequiel Pozzi
This mode allow to build all 6 ISOs in just one step if build type is <all>. So "build.sh build all all" -> (single-i686, single-x86_64, dual) X (netinstall, core). Note that the <purge> command is executed between each build step to save space, so do not use this mode if you want to keep all temporal files in work_dir. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-16[configs/releng] Use private pacman.db on make_core_repoGerardo Exequiel Pozzi
This allow to execute build.sh in 32-bit-compat without using a chroot and doing tricks. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-16[archiso] Implement own chroot functions in mkarchisoGerardo Exequiel Pozzi
* Remove devtools dependency. * Better control over what files are touched inside chroot (root-image). Now: NONE :) * Two new commands: + init: To install {base} group and other needed packages (syslinux for now) + run: If we want to run some command inside chroot (mkinitcpio, locale-gen, useradd, etc etc...) * Renamed command: "created" to "install", says much better what does. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2012-03-04[archiso] /lib/initcpio -> /usr/lib/initcpioGerardo Exequiel Pozzi
Needs mkinitpcio >= 0.8.4 Next changes will be for mdadm and mkinitcpio-nfs-utils: * /lib/initcpio/udev/11-dm-initramfs.rules * /lib/initcpio/ipconfig , /lib/initcpio/nfsmount Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-12-03[archiso] archiso_pxe_curl rename to archiso_pxe_httpGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-29actually copy the archiso_kms hook to workdirThomas Bächler
2011-11-28[configs/releng] Make all syslinux bootloaders works with the sames configs.Gerardo Exequiel Pozzi
* In that way, we have unified directory scheme among {pxe,sys,ext,iso}linux, sharing the same directory structure and config files. * Also enable IPAPPEND (will show a warning message about unknown directive in non-pxelinux before menu) NEW: * Rename syslinux*.cfg -> archiso*.cfg * Now syslinux.cfg is only a "loadconfig" trick like we are doing for isolinux * All paths are now relative to %INSTALL_DIR% ($archisobasedir) (Default: /arch/) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28[archiso] Add PXE NFS supportGerardo Exequiel Pozzi
It add support for using *.sfs images via NFS. It must be located after archiso_pxe_nbd in mkinitcpio.conf, in that way NBD is the default. New boot parameters: archiso_nfs_srv=IP:/path Set the NFS IP and path. Accepts ${pxeserver} as IP. archiso_nfs_opt= Sets NFS mount opts (comma separated) Defaults to: port = as given by server portmap daemon rsize = 1024 wsize = 1024 timeo = 7 retrans = 3 acregmin = 3 acregmax = 60 acdirmin = 30 acdirmax = 60 flags = hard, nointr, noposix, cto, ac :: Running Hook [archiso_pxe_common] IP-Config: eth0 hardware address 52:54:00:12:34:57 mtu 1500 IP-Config: eth0 guessed broadcast address 192.168.0.255 IP-Config: eth0 guessed nameserver address 192.168.0.218 IP-Config: eth0 complete (from 192.168.0.218): address: 192.168.0.90 broadcast: 192.168.0.255 netmask: 255.255.255.0 gateway: 192.168.0.218 dns0 : 192.168.0.218 dns1 : 0.0.0.0 rootserver: 192.168.0.218 rootpath: filename : :: Running Hook [archiso_pxe_nbd] :: Running Hook [archiso_pxe_curl] :: Running Hook [archiso_pxe_nfs] :: Mounting '192.168.0.77:/mnt/iso' ... 192.168.0.77:/mnt/iso/ on /run/archiso/bootmnt type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nolock,proto=tcp,port=65535,timeo=7,retrans=3,sec=sys,local_lock=all,addr=192.168.0.77) ... My /etc/exports /mnt/iso 192.168.0.90(ro,no_subtree_check,no_root_squash)
2011-11-28[archiso] Add archiso_pxe_curl hookGerardo Exequiel Pozzi
Its add support for downloading the ISO image via HTTP/FTP with curl or download *.sfs files. The files are downloaded on /run/archiso/curlspace (tmpfs) and setup a loop dev from it (like in archiso_loop_mnt) in the ISO case, or just do a bind mount to /run/archiso/bootmnt in the other case. This hook must be located after archiso_pxe_nbd in mkinitcpio.conf, in that way NBD is the default. New bootparm: * archiso_curl_url=(first form) archiso_curl_url=http://192.168.0.7/archlinux/iso/archlinux.iso (absolute form) Use an absolute URL. Fetch the entire ISO archiso_curl_url=ftp://${pxeserver}/archlinux/iso/archlinux.iso (relative form) Use the as IP the same server where PXE reside. Fetch the entire ISO * archiso_curl_url=(second form) archiso_curl_url=http://192.168.0.7/archlinux/iso/unpacked (absolute form) Use an absolute URL. Where unpacked (an example name) is a directory where ${archisobasedir} ("arch" by default) is located with all *.sfs. This fetch only needed files. archiso_curl_url=ftp://${pxeserver}/archlinux/iso/unpacked (relative form) Use the as IP the same server where PXE reside. Where unpacked (an example name) is a directory where ${archisobasedir} ("arch" by default) is located with all *.sfs. This fetch only needed files. * curlspace_size= Set a size for a tmpfs filesystem where files are downloaded. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28[archiso] Split archiso_pxe_nbd in two hooks.Gerardo Exequiel Pozzi
One hook only setup the network device (archiso_pxe_common) the other setup the NBD client (archiso_pxe_nbd). New bootparam: archiso_pxe_srv=IP Allow to set an IP different from the PXE server. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-11-28[configs/*] chroot to root-image for initramfs buildGerardo Exequiel Pozzi
Avoid issues with -b BASEDIR (*). We became independent of the mkinitcpio version of the build environment. (*) For example of a recent issue: http://mailman.archlinux.org/pipermail/arch-projects/2011-November/002202.html http://mailman.archlinux.org/pipermail/arch-projects/2011-November/002205.html Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-23[archiso] Add archiso_shutdown hook.Gerardo Exequiel Pozzi
STATUS: Working (std boot, loop_mnt, pxe) with copytoram=[y|n]. NEEDS: initscript > 2011.07.3, mkinitcpio > 0.7.2, mkinitcpio-busybox > 1.18.5-1 Purpose: we need this for propertly unmount $cow_device, used for persistent dm-snapshot devices. This hook is based on work from Tom Gundersen[#1], but adapted for archiso things (specially the shutdown script) [#1] http://mailman.archlinux.org/pipermail/arch-projects/2011-July/001549.html [#2] http://projects.archlinux.org/initscripts.git/commit/?id=1fa7b4b453e96533ae1db3630031285e5fc302b3 [#3] http://mailman.archlinux.org/pipermail/arch-projects/2011-August/001749.html Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-10-22[configs/releng] Disable pacman progress bar during core-repo downloadGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-30[configs/releng] Replace wget with pacman for make_core_repo()Gerardo Exequiel Pozzi
Fix: FS#18959 - download_repos.sh does not report tcp timeouts and such * Always use pacman cache. Previously pacman cache was used if package already exists on it, now is also used to download pkg on it. Finally copy all packages from cache with cp and make core.db. * Using pacman, we can sure that package integrity is right. * Always get a [core] package, in case of [testing] enabled. * Now works when mirror is: Server = file:// ;) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29[archiso] Integrate omit_kill_nbd_client logic in hook.Gerardo Exequiel Pozzi
This makes archiso_pxe_nbd functionallity full-independient from archiso profiles (configs/*). Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29[archiso] Switch from cdrkit to libisoburnGerardo Exequiel Pozzi
* Preparing terrain for UEFI support. * Also make isohybrid hack in one step. * Removed UDF layer, since xorriso does not support it. * Removed unsupported options by xorriso (-uid/-gid/-allow-limited-size) * Removed option already default in xorriso (-input-charset utf-8) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29[configs/releng] Support configurable build options via command lineGerardo Exequiel Pozzi
usage ./build.sh [options] command <command options> General options: -N <iso_name> Set an iso filename (prefix) Default: archlinux -V <iso_version> Set an iso version (in filename) Default: 2011.08.18 -L <iso_label> Set an iso label (disk label) Default: ARCH_201108 -D <install_dir> Set an install_dir (directory inside iso) Default: arch -w <work_dir> Set the working directory Default: work -o <out_dir> Set the output directory Default: out -v Enable verbose output -h This help message Commands: build <mode> <type> Build selected .iso by <mode> and <type> purge <mode> Clean working directory except iso/ directory of build <mode> clean <mode> Clean working directory and .iso file in output directory of build <mode> Command options: <mode> Valid values 'single' or 'dual' <type> Valid values 'netinstall', 'core' or 'all' Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29[archiso] Use -w <work_dir> instead of cmd <work>, add -o <out_dir>Gerardo Exequiel Pozzi
Default (if not specified) -w work -o out. -o <out_dir> is only used by 'iso' command. Adjust build.sh of releng and baseline profile to reflect this change. <project> - work <- $work_dir - out <- $out_dir Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-29[configs/*] Rename $name -> $iso_name, $version -> $iso_versionGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-18[configs/releng] Add missing -D param to checksum commandGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-15[archiso] Add checksum= boot paramGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-15[configs/releng] Add purge_* commandsGerardo Exequiel Pozzi
purge_single command can be usefull to save space during build. It removes all files in working directory except "iso/" and *.iso. Workflow can be: (32) ./build.sh all_iso_single -> i686 *.iso are ready. (32) ./build.sh purge_single -> safe cleanup. (64) ./build.sh all_iso_single -> x86_64 *.iso are ready. (64) ./build.sh purge_single -> safe cleanup. (any) ./build.sh all_iso_dual -> dual *.iso are ready. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-15[configs/*] Use $script_path for "source" files.Gerardo Exequiel Pozzi
Allows to execute directly build.sh from any directory, using it as working dir. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-08-11[configs/releng] Rename core pkgs images and mountpoint.Gerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-24[archiso] Update kernel image name for linux-3.0Gerardo Exequiel Pozzi
Also rename kernel from vmlinuz-linux to vmlinuz to make filename ISO9660 friendly. Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09[configs/releng] Make user "arch" at build time.Gerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09[configs/releng] Re-generate locales only if needed.Gerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09[archiso] Update for mkinitcpio >= 0.7Gerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-07-09[archiso] Delete etc/mtab on _cleanup stepGerardo Exequiel Pozzi
Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2011-06-18[archiso] Use dm-snapshot instead of aufs2 (A.K.A. "The Big Commit")Gerardo Exequiel Pozzi
* Use device mapper + snapshot module, instead union layer filesystem. * A block-level approach vs vfs-level. * No more unofficial (Linux) things. * More memory is needed. * Refactor mkarchiso. * Refactor hooks/archiso. * Fix install/archiso_pxe_nbd (due recent change in mkinitcpio-0.6.15 on checked_modules()/all_modules()) [Thanks Dave for the improved workaround] * New configs/releng to build official images. * Works with a Bash script instead of Makefile. (better control and easy to maintain) * Remove configs/syslinux-iso. * Remove archiso2dual script. Integrate functionality in configs/releng. * New configs/baseline to build the most basic live medium or use as template. * New README (draft). [Thanks Dieter for fixing english grammar] Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>