{
  "schemaVersion": "1.0",
  "item": {
    "slug": "rose-docker-build-skill",
    "name": "Rose Docker Build",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/chunhualiao/rose-docker-build-skill",
    "canonicalUrl": "https://clawhub.ai/chunhualiao/rose-docker-build-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/rose-docker-build-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=rose-docker-build-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/rose-docker-build-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/rose-docker-build-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ROSE Docker Build",
        "body": "Build the ROSE source-to-source compiler in an isolated Docker container."
      },
      {
        "title": "Why Docker?",
        "body": "ROSE requires GCC 7-10. Modern systems have GCC 11+, causing build failures. Docker provides:\n\nCorrect GCC version (9.x recommended)\nAll dependencies pre-installed\nReproducible builds\nEdit on host, build in container"
      },
      {
        "title": "Quick Start (Autotools)",
        "body": "# 1. Clone ROSE\ngit clone git@github.com:rose-compiler/rose.git\ncd rose && git checkout weekly\n\n# 2. Create Docker environment\nmkdir ../rose-docker && cd ../rose-docker\n\n# 3. Build and run container (see Dockerfile below)\ndocker build -t rose-dev .\ndocker run -d --name rose-dev -v $(pwd)/../rose:/rose/src rose-dev\n\n# 4. Build ROSE inside container\ndocker exec rose-dev bash -c 'cd /rose/src && ./build'\ndocker exec rose-dev bash -c 'mkdir -p /rose/build && cd /rose/build && \\\n  /rose/src/configure --prefix=/rose/install \\\n    --enable-languages=c,c++ \\\n    --with-boost=/usr \\\n    --with-boost-libdir=/usr/lib/x86_64-linux-gnu \\\n    --disable-binary-analysis \\\n    --disable-java'\ndocker exec rose-dev bash -c 'cd /rose/build && make core -j$(nproc)'\ndocker exec rose-dev bash -c 'cd /rose/build && make install-core'"
      },
      {
        "title": "Quick Start (CMake)",
        "body": "CMake builds require CMake 4.x (3.16 fails at ROSETTA generation).\n\n# 1. Clone ROSE\ngit clone git@github.com:rose-compiler/rose.git\ncd rose && git checkout weekly\n\n# 2. Create Docker environment and build container\nmkdir ../rose-docker && cd ../rose-docker\ndocker build -t rose-dev -f Dockerfile.cmake .\ndocker run -d --name rose-cmake -v $(pwd)/../rose:/rose/src:ro rose-dev\n\n# 3. Configure with CMake\ndocker exec -w /rose/build rose-cmake cmake /rose/src \\\n  -DCMAKE_INSTALL_PREFIX=/rose/install \\\n  -DENABLE_C=ON \\\n  -DENABLE_TESTS=OFF \\\n  -DCMAKE_BUILD_TYPE=Release\n\n# 4. Build (use -j4 to avoid OOM on 16GB systems)\ndocker exec -w /rose/build rose-cmake make -j4\n\n# 5. Test\ndocker exec rose-cmake /rose/build/bin/rose-compiler --version"
      },
      {
        "title": "CMake Options",
        "body": "OptionDescriptionENABLE_C=ONEnable C/C++ analysis (uses EDG frontend)ENABLE_BINARY_ANALYSIS=ONEnable binary analysis (no EDG needed)ENABLE_TESTS=OFFSkip test compilation (faster build)CMAKE_BUILD_TYPE=ReleaseOptimized build"
      },
      {
        "title": "CMake vs Autotools",
        "body": "FeatureAutotoolsCMakeStability✅ Mature⚠️ NewerC/C++ analysis✅ Works✅ Works (with fixes)Build targetmake coremake (full build)Incremental buildsSlowerFasterIDE integrationLimitedExcellent"
      },
      {
        "title": "Dockerfile (Autotools)",
        "body": "FROM ubuntu:20.04\nENV DEBIAN_FRONTEND=noninteractive\nENV TZ=America/Los_Angeles\n\nRUN apt-get update && apt-get install -y \\\n    build-essential g++ gcc gfortran \\\n    automake autoconf libtool flex bison \\\n    libboost-all-dev libxml2-dev \\\n    git wget curl vim \\\n    && rm -rf /var/lib/apt/lists/*\n\nRUN useradd -m -s /bin/bash developer\nRUN mkdir -p /rose/src /rose/build /rose/install && chown -R developer:developer /rose\nUSER developer\nWORKDIR /rose\nCMD [\"tail\", \"-f\", \"/dev/null\"]"
      },
      {
        "title": "Dockerfile.cmake (CMake)",
        "body": "FROM ubuntu:20.04\nENV DEBIAN_FRONTEND=noninteractive\nENV TZ=America/Los_Angeles\n\n# Install build dependencies\nRUN apt-get update && apt-get install -y \\\n    build-essential g++ gcc gfortran \\\n    flex bison \\\n    libboost-all-dev libxml2-dev libreadline-dev \\\n    zlib1g-dev libsqlite3-dev libpq-dev libyaml-dev \\\n    libgmp-dev libmpc-dev libmpfr-dev \\\n    git wget curl vim \\\n    gnupg software-properties-common \\\n    && rm -rf /var/lib/apt/lists/*\n\n# Install CMake 4.x from Kitware (Ubuntu 20.04 has 3.16 which is too old)\nRUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add - \\\n    && echo 'deb https://apt.kitware.com/ubuntu/ focal main' > /etc/apt/sources.list.d/kitware.list \\\n    && apt-get update && apt-get install -y cmake \\\n    && rm -rf /var/lib/apt/lists/*\n\nRUN useradd -m -s /bin/bash developer\nRUN mkdir -p /rose/src /rose/build /rose/install && chown -R developer:developer /rose\nUSER developer\nWORKDIR /rose\nCMD [\"tail\", \"-f\", \"/dev/null\"]"
      },
      {
        "title": "EDG Binary Handling",
        "body": "EDG (C++ frontend) binaries are required for C/C++ analysis. The build checks:"
      },
      {
        "title": "Autotools",
        "body": "Build directory for existing tarball\nSource tree at src/frontend/CxxFrontend/roseBinaryEDG-*.tar.gz\nNetwork download from edg-binaries.rosecompiler.org"
      },
      {
        "title": "CMake",
        "body": "Source tree at src/frontend/CxxFrontend/roseBinaryEDG-*.tar.gz (auto-detected)\nExtracts matching tarball based on GCC version at build time\nLinks libroseEDG.a to librose.so automatically\n\nIf server is down, ensure source tree has EDG binaries (included in weekly branch)."
      },
      {
        "title": "Autotools",
        "body": "# Rebuild after source changes\ndocker exec rose-dev bash -c 'cd /rose/build && make core -j8'\n\n# Install\ndocker exec rose-dev bash -c 'cd /rose/build && make install-core'"
      },
      {
        "title": "CMake",
        "body": "# Rebuild after source changes  \ndocker exec -w /rose/build rose-cmake make -j4\n\n# Install\ndocker exec -w /rose/build rose-cmake make install"
      },
      {
        "title": "Both",
        "body": "# Test ROSE compiler\ndocker exec rose-dev /rose/install/bin/rose-compiler --version\ndocker exec rose-cmake /rose/build/bin/rose-compiler --version\n\n# Source-to-source test\ndocker exec rose-dev bash -c 'echo \"int main(){return 0;}\" > /tmp/test.c && \\\n  /rose/install/bin/rose-compiler -c /tmp/test.c && cat rose_test.c'\n\n# Enter container shell\ndocker exec -it rose-dev bash\ndocker exec -it rose-cmake bash"
      },
      {
        "title": "Build Time",
        "body": "Build SystemFirst BuildIncrementalAutotools (make core -j8)~60-90 minseconds-minutesCMake (make -j4)~35 minseconds-minutes\n\nlibrose.so: ~200 MB (CMake) to ~1.3 GB (autotools with debug)\nMemory: Use -j4 on 16GB systems to avoid OOM"
      },
      {
        "title": "Troubleshooting",
        "body": "IssueSolutionEDG download failsUse weekly branch (has EDG binaries in source tree)CMake: ROSETTA failsUpgrade to CMake 4.xCMake: EDG link errorsEnsure using latest CMake fixes (PR #250)CMake: quadmath errorsAdd -lquadmath or use latest fixesPermission deniedCheck volume mount permissionsOut of memoryReduce -j parallelismBoost not foundVerify boost paths in configure/cmake"
      },
      {
        "title": "Testing with Sample Code",
        "body": "# Create factorial test\ncat << 'EOF' | docker exec -i rose-cmake tee /tmp/factorial.cpp\n#include <iostream>\nint factorial(int n) { return n <= 1 ? 1 : n * factorial(n-1); }\nint main() {\n    for(int i = 0; i <= 10; i++)\n        std::cout << \"factorial(\" << i << \") = \" << factorial(i) << std::endl;\n    return 0;\n}\nEOF\n\n# Run through ROSE (source-to-source transformation)\ndocker exec -w /tmp rose-cmake /rose/build/bin/rose-compiler factorial.cpp\n\n# Compile and run the transformed code\ndocker exec -w /tmp rose-cmake g++ rose_factorial.cpp -o factorial_test\ndocker exec -w /tmp rose-cmake ./factorial_test\n\nExpected output:\n\nfactorial(0) = 1\nfactorial(1) = 1\n...\nfactorial(10) = 3628800"
      }
    ],
    "body": "ROSE Docker Build\n\nBuild the ROSE source-to-source compiler in an isolated Docker container.\n\nWhy Docker?\n\nROSE requires GCC 7-10. Modern systems have GCC 11+, causing build failures. Docker provides:\n\nCorrect GCC version (9.x recommended)\nAll dependencies pre-installed\nReproducible builds\nEdit on host, build in container\nQuick Start (Autotools)\n# 1. Clone ROSE\ngit clone git@github.com:rose-compiler/rose.git\ncd rose && git checkout weekly\n\n# 2. Create Docker environment\nmkdir ../rose-docker && cd ../rose-docker\n\n# 3. Build and run container (see Dockerfile below)\ndocker build -t rose-dev .\ndocker run -d --name rose-dev -v $(pwd)/../rose:/rose/src rose-dev\n\n# 4. Build ROSE inside container\ndocker exec rose-dev bash -c 'cd /rose/src && ./build'\ndocker exec rose-dev bash -c 'mkdir -p /rose/build && cd /rose/build && \\\n  /rose/src/configure --prefix=/rose/install \\\n    --enable-languages=c,c++ \\\n    --with-boost=/usr \\\n    --with-boost-libdir=/usr/lib/x86_64-linux-gnu \\\n    --disable-binary-analysis \\\n    --disable-java'\ndocker exec rose-dev bash -c 'cd /rose/build && make core -j$(nproc)'\ndocker exec rose-dev bash -c 'cd /rose/build && make install-core'\n\nQuick Start (CMake)\n\nCMake builds require CMake 4.x (3.16 fails at ROSETTA generation).\n\n# 1. Clone ROSE\ngit clone git@github.com:rose-compiler/rose.git\ncd rose && git checkout weekly\n\n# 2. Create Docker environment and build container\nmkdir ../rose-docker && cd ../rose-docker\ndocker build -t rose-dev -f Dockerfile.cmake .\ndocker run -d --name rose-cmake -v $(pwd)/../rose:/rose/src:ro rose-dev\n\n# 3. Configure with CMake\ndocker exec -w /rose/build rose-cmake cmake /rose/src \\\n  -DCMAKE_INSTALL_PREFIX=/rose/install \\\n  -DENABLE_C=ON \\\n  -DENABLE_TESTS=OFF \\\n  -DCMAKE_BUILD_TYPE=Release\n\n# 4. Build (use -j4 to avoid OOM on 16GB systems)\ndocker exec -w /rose/build rose-cmake make -j4\n\n# 5. Test\ndocker exec rose-cmake /rose/build/bin/rose-compiler --version\n\nCMake Options\nOption\tDescription\nENABLE_C=ON\tEnable C/C++ analysis (uses EDG frontend)\nENABLE_BINARY_ANALYSIS=ON\tEnable binary analysis (no EDG needed)\nENABLE_TESTS=OFF\tSkip test compilation (faster build)\nCMAKE_BUILD_TYPE=Release\tOptimized build\nCMake vs Autotools\nFeature\tAutotools\tCMake\nStability\t✅ Mature\t⚠️ Newer\nC/C++ analysis\t✅ Works\t✅ Works (with fixes)\nBuild target\tmake core\tmake (full build)\nIncremental builds\tSlower\tFaster\nIDE integration\tLimited\tExcellent\nDockerfiles\nDockerfile (Autotools)\nFROM ubuntu:20.04\nENV DEBIAN_FRONTEND=noninteractive\nENV TZ=America/Los_Angeles\n\nRUN apt-get update && apt-get install -y \\\n    build-essential g++ gcc gfortran \\\n    automake autoconf libtool flex bison \\\n    libboost-all-dev libxml2-dev \\\n    git wget curl vim \\\n    && rm -rf /var/lib/apt/lists/*\n\nRUN useradd -m -s /bin/bash developer\nRUN mkdir -p /rose/src /rose/build /rose/install && chown -R developer:developer /rose\nUSER developer\nWORKDIR /rose\nCMD [\"tail\", \"-f\", \"/dev/null\"]\n\nDockerfile.cmake (CMake)\nFROM ubuntu:20.04\nENV DEBIAN_FRONTEND=noninteractive\nENV TZ=America/Los_Angeles\n\n# Install build dependencies\nRUN apt-get update && apt-get install -y \\\n    build-essential g++ gcc gfortran \\\n    flex bison \\\n    libboost-all-dev libxml2-dev libreadline-dev \\\n    zlib1g-dev libsqlite3-dev libpq-dev libyaml-dev \\\n    libgmp-dev libmpc-dev libmpfr-dev \\\n    git wget curl vim \\\n    gnupg software-properties-common \\\n    && rm -rf /var/lib/apt/lists/*\n\n# Install CMake 4.x from Kitware (Ubuntu 20.04 has 3.16 which is too old)\nRUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add - \\\n    && echo 'deb https://apt.kitware.com/ubuntu/ focal main' > /etc/apt/sources.list.d/kitware.list \\\n    && apt-get update && apt-get install -y cmake \\\n    && rm -rf /var/lib/apt/lists/*\n\nRUN useradd -m -s /bin/bash developer\nRUN mkdir -p /rose/src /rose/build /rose/install && chown -R developer:developer /rose\nUSER developer\nWORKDIR /rose\nCMD [\"tail\", \"-f\", \"/dev/null\"]\n\nEDG Binary Handling\n\nEDG (C++ frontend) binaries are required for C/C++ analysis. The build checks:\n\nAutotools\nBuild directory for existing tarball\nSource tree at src/frontend/CxxFrontend/roseBinaryEDG-*.tar.gz\nNetwork download from edg-binaries.rosecompiler.org\nCMake\nSource tree at src/frontend/CxxFrontend/roseBinaryEDG-*.tar.gz (auto-detected)\nExtracts matching tarball based on GCC version at build time\nLinks libroseEDG.a to librose.so automatically\n\nIf server is down, ensure source tree has EDG binaries (included in weekly branch).\n\nCommon Commands\nAutotools\n# Rebuild after source changes\ndocker exec rose-dev bash -c 'cd /rose/build && make core -j8'\n\n# Install\ndocker exec rose-dev bash -c 'cd /rose/build && make install-core'\n\nCMake\n# Rebuild after source changes  \ndocker exec -w /rose/build rose-cmake make -j4\n\n# Install\ndocker exec -w /rose/build rose-cmake make install\n\nBoth\n# Test ROSE compiler\ndocker exec rose-dev /rose/install/bin/rose-compiler --version\ndocker exec rose-cmake /rose/build/bin/rose-compiler --version\n\n# Source-to-source test\ndocker exec rose-dev bash -c 'echo \"int main(){return 0;}\" > /tmp/test.c && \\\n  /rose/install/bin/rose-compiler -c /tmp/test.c && cat rose_test.c'\n\n# Enter container shell\ndocker exec -it rose-dev bash\ndocker exec -it rose-cmake bash\n\nBuild Time\nBuild System\tFirst Build\tIncremental\nAutotools (make core -j8)\t~60-90 min\tseconds-minutes\nCMake (make -j4)\t~35 min\tseconds-minutes\nlibrose.so: ~200 MB (CMake) to ~1.3 GB (autotools with debug)\nMemory: Use -j4 on 16GB systems to avoid OOM\nTroubleshooting\nIssue\tSolution\nEDG download fails\tUse weekly branch (has EDG binaries in source tree)\nCMake: ROSETTA fails\tUpgrade to CMake 4.x\nCMake: EDG link errors\tEnsure using latest CMake fixes (PR #250)\nCMake: quadmath errors\tAdd -lquadmath or use latest fixes\nPermission denied\tCheck volume mount permissions\nOut of memory\tReduce -j parallelism\nBoost not found\tVerify boost paths in configure/cmake\nTesting with Sample Code\n# Create factorial test\ncat << 'EOF' | docker exec -i rose-cmake tee /tmp/factorial.cpp\n#include <iostream>\nint factorial(int n) { return n <= 1 ? 1 : n * factorial(n-1); }\nint main() {\n    for(int i = 0; i <= 10; i++)\n        std::cout << \"factorial(\" << i << \") = \" << factorial(i) << std::endl;\n    return 0;\n}\nEOF\n\n# Run through ROSE (source-to-source transformation)\ndocker exec -w /tmp rose-cmake /rose/build/bin/rose-compiler factorial.cpp\n\n# Compile and run the transformed code\ndocker exec -w /tmp rose-cmake g++ rose_factorial.cpp -o factorial_test\ndocker exec -w /tmp rose-cmake ./factorial_test\n\n\nExpected output:\n\nfactorial(0) = 1\nfactorial(1) = 1\n...\nfactorial(10) = 3628800"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/chunhualiao/rose-docker-build-skill",
    "publisherUrl": "https://clawhub.ai/chunhualiao/rose-docker-build-skill",
    "owner": "chunhualiao",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/rose-docker-build-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/rose-docker-build-skill",
    "agentUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/rose-docker-build-skill/agent.md"
  }
}