diff --git a/Makefile b/Makefile index 478497e2ee4456a489abc12479151532cdfde8f8..e138b86277f1a2aa1d380c9aece31ad08c45dcfd 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,15 @@ ISO_IMAGE_DEST=$(WORKSPACE)/$(ARCH)/iso ISO_IMAGE=$(ISO_IMAGE_DEST)/image.iso ISO_NAME=$(ISO_FLAVOR)-$(ISO_VERSION)-desktop-$(ALTARCH).iso ISO_URL=$(ISO_BASE_URL)/$(ISO_RELEASE)/release +ISO_CONTENT=$(ISO_IMAGE_DEST)/content + +CASPER_SOURCE_DIR=$(ISO_CONTENT)/casper +INITRD_SOURCE=$(CASPER_SOURCE_DIR)/initrd.lz +SQUASHFS_SOURCE=$(CASPER_SOURCE_DIR)/filesystem.squashfs + +ROOTFS=$(WORKSPACE)/$(ARCH)/rootfs +INITRD=$(WORKSPACE)/$(ARCH)/initrd +INITRD_TARGET=$(WORKSPACE)/$(ARCH)/initrd.lz $(info Architecture: $(ARCH) ($(ALTARCH))) $(info Workspace: $(WORKSPACE)) @@ -31,7 +40,7 @@ workspace : $(WORKSPACE) $(WORKSPACE) : mkdir -p $(WORKSPACE) -iso_download $(ISO_IMAGE) : $(WORKSPACE) +iso_download $(ISO_IMAGE) : | $(WORKSPACE) mkdir -p "$(ISO_IMAGE_DEST)" wget -O "$(ISO_IMAGE_DEST)/$(ISO_NAME)" -c "$(ISO_URL)/$(ISO_NAME)" wget -O "$(ISO_IMAGE_DEST)/SHA256SUMS.temp" -c "$(ISO_URL)/SHA256SUMS" @@ -40,22 +49,41 @@ iso_download $(ISO_IMAGE) : $(WORKSPACE) cd "$(ISO_IMAGE_DEST)" && sha256sum -c SHA256SUMS mv "$(ISO_IMAGE_DEST)/$(ISO_NAME)" "$(ISO_IMAGE)" -iso_files : $(ISO_IMAGE) - mkdir -p "$(ISO_IMAGE_DEST)/content" - 7z -x -o"$(ISO_IMAGE_DEST)/content" "$(ISO_IMAGE)" +iso_content $(INITRD_SOURCE) $(SQUASHFS_SOURCE) : $(ISO_IMAGE) + mkdir -p "$(ISO_CONTENT)" + 7z x -o"$(ISO_CONTENT)" -aos "$(ISO_IMAGE)" iso_clean : $(RM) "$(ISO_IMAGE)" $(RM) -r "$(ISO_IMAGE_DEST)" +#TODO: generic unsquash/squash with magic make variables ($@ etc.) +rootfs_unsquash : | $(SQUASHFS_SOURCE) + $(RM) -r "$(ROOTFS)" + unsquashfs -f -d "$(ROOTFS)" "$(SQUASHFS_SOURCE)" + +initrd_unpack : | $(INITRD_SOURCE) + mkdir -p "$(INITRD)" + cd "$(INITRD)" && lzma -d < "$(INITRD_SOURCE)" | cpio -i + +initrd_clean : + $(RM) -r "$(INITRD)" + $(RM) "$(INITRD_TARGET)" + +initrd_remaster : + $(CURDIR)/scripts/remaster_initrd.sh "$(CURDIR)" "$(INITRD)" + +initrd_pack : + cd "$(INITRD)" && find | cpio -H newc -o | lzma -z > "$(INITRD_TARGET)" + config $(CONFIG_FILE) : $(info Generating configuration $(CONFIG_FILE)) echo -n "" > $(CONFIG_FILE) - echo "PRIMARY_ARCH=\"$(PRIMARY_ARCH)\"" >> "$(CONFIG_FILE)" - echo "SECONDARY_ARCH=\"$(SECONDARY_ARCH)\"" >> "$(CONFIG_FILE)" - echo "WORKSPACE=\"$(WORKSPACE)\"" >> "$(CONFIG_FILE)" + echo "PRIMARY_ARCH=$(PRIMARY_ARCH)" >> "$(CONFIG_FILE)" + echo "SECONDARY_ARCH=$(SECONDARY_ARCH)" >> "$(CONFIG_FILE)" + echo "WORKSPACE=$(WORKSPACE)" >> "$(CONFIG_FILE)" config_clean : $(RM) $(CONFIG_FILE) -.PHONY : config config_clean iso_clean +.PHONY : config config_clean iso_clean initrd_clean diff --git a/legacy_scripts/customize_common b/scripts/common_functions.sh similarity index 100% rename from legacy_scripts/customize_common rename to scripts/common_functions.sh diff --git a/scripts/remaster_initrd.sh b/scripts/remaster_initrd.sh new file mode 100755 index 0000000000000000000000000000000000000000..41fd2c14ed63be86ce13f27037bdd2a68117648c --- /dev/null +++ b/scripts/remaster_initrd.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +################################################################################### +# UCK - Ubuntu Customization Kit # +# Copyright (C) 2006-2010 UCK Team # +# # +# UCK 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, either version 3 of the License, or # +# (at your option) any later version. # +# # +# UCK 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. # +# # +# You should have received a copy of the GNU General Public License # +# along with UCK. If not, see <http://www.gnu.org/licenses/>. # +################################################################################### + +SCRIPT_DIR="$1" +IRD="$2" + +if [ ! -d "$SCRIPT_DIR" ]; then + echo "Expected lipck base path as first argument!" + exit 1 +fi + +if [ ! -d "$IRD" ]; then + echo "Expected initrd root directory as second argument!" + exit 2 +fi + +CONTRIB_DIR="$SCRIPT_DIR/contrib/initrd" + +if [ -e "$SCRIPT_DIR/scripts/common_functions.sh" ]; then + source "$SCRIPT_DIR/scripts/common_functions.sh" +fi + +function install_nmtelekinese() +{ + mkdir -p "$IRD/lip/nm" + cp "$CONTRIB_DIR/nmtelekinese/nmtelekinese.desktop" "$IRD/lip/nm" + cp "$CONTRIB_DIR/nmtelekinese/nmtelekinese.py" "$IRD/lip/nm" + cp "$CONTRIB_DIR/nmtelekinese/26mopsmops" "$IRD/scripts/casper-bottom/" + chmod +x "$IRD/scripts/casper-bottom/26mopsmops" +} + +function install_libnsa() +{ + mkdir -p "$IRD/lip/libnsa" + cp "$CONTRIB_DIR/libnsa/libnsa.desktop" "$IRD/lip/libnsa" + cp "$CONTRIB_DIR/libnsa/libnsa.sh" "$IRD/lip/libnsa" + cp "$CONTRIB_DIR/libnsa/26libnsa" "$IRD/scripts/casper-bottom/" + chmod +x "$IRD/lip/libnsa/libnsa.sh" + chmod +x "$IRD/scripts/casper-bottom/26libnsa" +} + +function add_no_bootloader_icon() +{ + mkdir -p "$IRD/lip/no-bootloader-icon" + cp "$CONTRIB_DIR/no-bootloader-icon/ubiquity-kdeui.desktop" "$IRD/lip/no-bootloader-icon/" +# cp "$SCRIPT_DIR/no-bootloader-icon/ubiquity-kdeui-no-bootloader.desktop" "$IRD/lip/no-bootloader-icon/" + + cp "$CONTRIB_DIR/no-bootloader-icon/25adduser" "$IRD/scripts/casper-bottom/" + chmod +x "$IRD/scripts/casper-bottom/25adduser" +} + +function install_liphook() +{ + cp "$CONTRIB_DIR/initrd_hook/24liphook" "$IRD/scripts/casper-bottom/" + chmod +x "$IRD/scripts/casper-bottom/24liphook" + cp "$CONTRIB_DIR/initrd_hook/ORDER" "$IRD/scripts/casper-bottom/" +} + +mkdir -p "$IRD/lip" +install_nmtelekinese +#install_libnsa +add_no_bootloader_icon +install_liphook + +patch_all "$SCRIPT_DIR/patches/initrd" "$IRD"